Hadoop的Shell操作
Posted LeoATLiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop的Shell操作相关的知识,希望对你有一定的参考价值。
文章目录
Hadoop的Shell操作
在使用Hadoop的Shell命令前,我们需要启动Hadoop。执行如下命令:
cd /usr/local/hadoop
./sbin/start-all.sh #启动hadoop
Hadoop支持很多Shell命令,其中fs是HDFS最常用的命令,利用fs可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。
实际上有三种shell命令方式:
1、hadoop fs:适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
2、hadoop dfs:只适用于HDFS文件系统
3、hdfs dfs:只适用于HDFS文件系统
我们可以在终端输入如下命令,查看fs总共支持了哪些命令:
./bin/hadoop fs
在终端输入如下命令,可以查看具体某个命令的作用。
例如:我们查看put命令如何使用,可以输入如下命令:
./bin/hadoop fs -help put
1、目录操作
1.1 创建用户目录
需要注意的是,Hadoop系统安装好以后,第一次使用HDFS时,需要首先在HDFS中创建用户目录。因此,需要在HDFS中为hadoop用户创建一个用户目录,命令如下:
cd /usr/local/hadoop
./bin/hdfs dfs -mkdir -p /user/hadoop
该命令中表示在HDFS中创建一个/user/hadoop
目录:
–mkdir
:创建目录的操作-p
:表示如果是多级目录,则父目录和子目录一起创建/user/hadoop
:一个多级目录,因此必须使用参数-p
,否则会出错。
/user/hadoop
目录就成为hadoop用户对应的用户目录。
1.2 创建目录
下面,可以使用如下命令创建一个liang目录:
./bin/hdfs dfs -mkdir liang
在创建个liang目录时,采用了相对路径形式,实际上,这个liang目录创建成功以后,它在HDFS中的完整路是/user/hadoop/liang
。
如果要在HDFS的根目录下创建一个名称为liang的目录,则需要使用如下命令:
./bin/hdfs dfs -mkdir /liang
1.3 删除目录
可以使用rm命令删除一个目录,比如,可以使用如下命令删除刚才在HDFS中创建的/liang
目录(不是/user/hadoop/liang
目录):
./bin/hdfs dfs -rm -r /liang
上面命令中,-r
参数表示如果删除/liang
目录及其子目录下的所有内容,如果要删除的一个目录包含了子目录,则必须使用-r
参数,否则会执行失败。
1.4 查看目录
可以使用如下命令显示HDFS中与当前用户hadoop对应的用户目录下的内容:
./bin/hdfs dfs -ls .
-ls
:列出HDFS某个目录下的所有内容.
:HDFS中的当前用户目录,也就是/user/hadoop
目录,因此,上面的命令和下面的命令是等价的:
./bin/hdfs dfs -ls /user/hadoop
如果要列出HDFS上的所有目录,可以使用如下命令:
./bin/hdfs dfs -ls
2、文件操作
2.1 上传文件
在实际应用中,经常需要从本地文件系统向HDFS中上传文件,或者把HDFS中的文件下载到本地文件系统中。
首先,使用vim编辑器,在本地Linux文件系统的/home/hadoop/
目录下创建一个文件myLocalFile.txt
,里面可以随意输入一些单词,比如,输入如下:
然后,可以使用如下命令把本地文件系统的/home/hadoop/myLocalFile.txt
上传到HDFS中的当前用户目录的liang目录下,也就是上传到HDFS的/user/hadoop/liang/
目录下:
./bin/hdfs dfs -put /home/hadoop/myLocalFile.txt liang
可以使用ls命令查看一下文件是否成功上传到HDFS中,具体如下:
./bin/hdfs dfs -ls liang
该命令执行后会显示类似如下的信息:
Found 1 items
-rw-r--r-- 1 hadoop supergroup 53 2022-10-04 20:42 liang/myLocalFile.txt
2.2 查看文件
下面使用如下命令查看HDFS中的myLocalFile.txt这个文件的内容:
./bin/hdfs dfs -cat liang/myLocalFile.txt
2.3 下载文件
下面把HDFS中的myLocalFile.txt文件下载到本地文件系统中的/home/hadoop/下载/
这个目录下,命令如下:
./bin/hdfs dfs -get liang/myLocalFile.txt /home/hadoop/下载
可以使用如下命令,到本地文件系统查看下载下来的文件myLocalFile.txt:
cd ~
cd 下载
ls
cat myLocalFile.txt
2.4 拷贝文件
最后,了解一下如何把文件从HDFS中的一个目录拷贝到HDFS中的另外一个目录。比如,如果要把HDFS的/user/hadoop/liang/myLocalFile.txt
文件,拷贝到HDFS的另外一个目录/output
中(注意,这个out目录位于HDFS根目录下),可以使用如下命令:
./bin/hdfs dfs -cp liang/myLocalFile.txt /output
以上是关于Hadoop的Shell操作的主要内容,如果未能解决你的问题,请参考以下文章
学习笔记Hadoop—— Hadoop基础操作—— HDFS常用Shell操作