大数据学习
bigdata learning
Toggle navigation
大数据学习
主页
openGauss数据库
Flume
MongoDB
Hadoop
数据库实验
Kafka
Zookeeper
Hbase
Manual
Spark
Neo4j
InfluxDB
RabbitMQ
Flink
About Me
归档
标签
03-Hadoop-HDFS-Shell命令
Hadoop
HDFS
2022-10-13 13:21:43
278
0
0
bigdata
Hadoop
HDFS
Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)是 Hadoop 核心组件之一,如果已经安装了 Hadoop,其中就已经包含了 HDFS 组件,不需要另外安装。 接下来介绍 Linux 操作系统中关于 HDFS 文件操作的常用 Shell 命令,利用 Web 界面查看和管理 Hadoop 文件系统,以及利用 Hadoop 提供的 Java API 进行基本的文件操作。 在学习 HDFS 编程实践前,我们需要启动 Hadoop。执行如下命令 ```shell nbu@ecs:~$ cd /usr/local/hadoop ./sbin/start-dfs.sh #启动hadoop ``` # 一、利用 Shell 命令与 HDFS 进行交互 Hadoop 有三种 shell 命令方式。 > 1. **hadoop fs** 适用于任何不同的文件系统,比如本地文件系统和 HDFS 文件系统 > 2. **hadoop dfs** 只能适用于 HDFS 文件系统 > 3. **hdfs dfs** 跟 hadoop dfs 的命令作用一样,也只能适用于 HDFS 文件系统 我们可以在终端输入如下命令,查看 fs 总共支持了哪些命令 ```shell nbu@ecs:/usr/local/hadoop$ hadoop fs ```  在终端输入如下命令,可以查看具体某个命令的作用 例如:我们查看 put 命令如何使用,可以输入如下命令 ```shell nbu@ecs:/usr/local/hadoop$ hadoop fs -help put ```  ## 1.目录操作 需要注意的是,Hadoop 系统安装好以后,第一次使用 HDFS 时,需要首先在 HDFS 中创建用户目录。本教程全部采用 hadoop 用户登录 Linux 系统,因此,需要在 HDFS 中为 hadoop 用户创建一个用户目录,命令如下: ```shell nbu@ecs:~$cd /usr/local/hadoop nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -mkdir -p /user/nbu/test ```  该命令中表示在 HDFS 中创建一个“/user/nbu/test”目录,“-mkdir”是创建目录的操作,“-p”表示如果是多级目录,则父目录和子目录一起创建,这里“/user/nbu/test”就是一个多级目录,因此必须使用参数“-p”,否则会出错。 “/user/nbu”目录就成为 nbu 用户对应的用户目录,可以使用如下命令显示 HDFS 中与当前用户 nbu 对应的用户目录下的内容: ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -ls . ```  该命令中,“-ls”表示列出 HDFS 某个目录下的所有内容,“.”表示 HDFS 中的当前用户目录,也就是“/user/nbu”目录,因此,上面的命令和下面的命令是等价的: ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -ls /user/nbu ``` 如果要列出 HDFS 上的所有目录,可以使用如下命令: ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -ls ``` 下面,可以使用如下命令创建一个 input 目录: ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -mkdir input ``` 在创建个 input 目录时,采用了相对路径形式,实际上,这个 input 目录创建成功以后,它在 HDFS 中的完整路径是“/user/nbu/input”。如果要在 HDFS 的根目录下创建一个名称为 input 的目录,则需要使用如下命令: ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -mkdir /input ``` 可以使用 rm 命令删除一个目录,比如,可以使用如下命令删除刚才在 HDFS 中创建的“/input”目录(不是“/user/hadoop/input”目录): ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -rm -r /input ``` 上面命令中,“-r”参数表示如果删除“/input”目录及其子目录下的所有内容,如果要删除的一个目录包含了子目录,则必须使用“-r”参数,否则会执行失败。 ## 2.文件操作 在实际应用中,经常需要从本地文件系统向 HDFS 中上传文件,或者把 HDFS 中的文件下载到本地文件系统中。 首先,使用 vim 编辑器,在本地 Linux 文件系统的“/home/nbu/”目录下创建一个文件 myLocalFile.txt,里面可以随意输入一些单词,比如,输入如下三行: ``` Hello World NBU Bigdata ``` 然后,可以使用如下命令把本地文件系统的“/home/nbu/myLocalFile.txt”上传到 HDFS 中的当前用户目录的 input 目录下,也就是上传到 HDFS 的“/user/nbu/input/”目录下: ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -put /home/nbu/myLocalFile.txt input ``` 可以使用 ls 命令查看一下文件是否成功上传到 HDFS 中,具体如下: ```shell nbu@ecs:/usr/local/hadoop$ ./bin/hdfs dfs -ls input ``` 该命令执行后会显示类似如下的信息:  下面使用如下命令查看 HDFS 中的 myLocalFile.txt 这个文件的内容: ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -cat input/myLocalFile.txt ```  下面把 HDFS 中的 myLocalFile.txt 文件下载到本地文件系统中的“/home/nbu/”这个目录下,命令如下: ```shell nbu@ecs:/usr/local/hadoop$./bin/hdfs dfs -get input/myLocalFile.txt /home/nbu/ ``` # 二、利用 Web 界面管理 HDFS 打开 Linux 自带的 Firefox 浏览器,点击此链接[HDFS 的 Web 界面](http://localhost:50070/),即可看到 HDFS 的 web 管理界面 
上一篇:
03-HBase-Java编程
下一篇:
03-Hive数据类型
文档导航