熟悉常用的HDFS *** 作

熟悉常用的HDFS *** 作,第1张

熟悉常用的HDFS *** 作 一、HDFS shell命令

首先启动Hadoop,命令如下:

cd /usr/local/hadoop/sbin
start-dfs.sh

在终端输入如下命令,查看hdfs dfs总共支持哪些 *** 作:

cd /usr/local/hadoop/bin
hdfs dfs

上述命令执行后,会显示如下的结果:


如果显示WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable,说明环境变量JAVA_LIBRARY_PATH并未定义,首先进入配置界面

vim ~/.bashrc

按`i``进入编辑模式,在文件中添加一行:

export JAVA_LIBRARY_PATH=/usr/local/hadoop/lib/native

添加完成后按esc退出编辑模式,输入:wq保存并退出,然后输入指令使配置立刻生效

source ~/.bashrc

可以看出,hdfs dfs命令的统一格式是类似hdfs dfs -ls这种形式,即在“-”后面跟上具体的 *** 作。
可以查看某个命令的作用,比如,当需要查询put命令的具体用法时,可以采用如下命令:

hdfs dfs -help put

输出的结果如下:

二、HDFS目录 *** 作

需要注意的是,Hadoop系统安装好以后,第一次使用HDFS时,需要首先在HDFS中创建用户目录。本教程全部采用hadoop用户登录Linux系统,因此,需要在HDFS中为hadoop用户创建一个用户目录,命令如下:

cd /usr/local/hadoop/bin
hdfs dfs -mkdir -p /user/hadoop

该命令中表示在HDFS中创建一个/user/hadoop目录,–mkdir是创建目录的 *** 作,-p表示如果是多级目录,则父目录和子目录一起创建,这里/user/hadoop就是一个多级目录,因此必须使用参数-p,否则会出错。
/user/hadoop目录就成为hadoop用户对应的用户目录,可以使用如下命令显示HDFS中与当前用户hadoop对应的用户目录下的内容:

hdfs dfs –ls .

该命令中,-ls表示列出HDFS某个目录下的所有内容,.表示HDFS中的当前用户目录,也就是/user/hadoop目录,因此,上面的命令和下面的命令是等价的:

hdfs dfs –ls /user/hadoop

如果要列出HDFS上的所有目录,可以使用如下命令:

hdfs dfs –ls

下面,可以使用如下命令创建一个input目录:

hdfs dfs -mkdir input

在创建这个input目录时,采用了相对路径形式,实际上,这个input目录创建成功以后,它在HDFS中的完整路径是/user/hadoop/input。如果要在HDFS的根目录下创建一个名称为input的目录,则需要使用如下命令:

hdfs dfs -mkdir /input

可以使用rm命令删除一个目录,比如,可以使用如下命令删除刚才在HDFS中创建的/input目录(不是/user/hadoop/input目录):

hdfs dfs -rm -r /input

上面命令中,-r参数表示如果删除/input目录及其子目录下的所有内容,如果要删除的一个目录包含了子目录,则必须使用-r参数,否则会执行失败。

三、HDFS文件 *** 作

在实际应用中,经常需要从本地文件系统向HDFS中上传文件,或者把HDFS中的文件下载到本地文件系统中。
首先,使用vim编辑器,在本地Linux文件系统的/home/hadoop/目录下创建一个文件myLocalFile.txt

cd /home/hadoop
vim myLocalFile.txt

里面可以随意输入一些单词,比如,输入如下三行:

Hadoop
Spark
XMU DBLAB

然后,可以使用如下命令把本地文件系统的/home/hadoop/myLocalFile.txt上传到HDFS中的当前用户目录的input目录下,也就是上传到HDFS的/user/hadoop/input/目录下:

cd /usr/local/hadoop/bin
hdfs dfs -put /home/hadoop/myLocalFile.txt input

可以使用ls命令查看一下文件是否成功上传到HDFS中,具体如下:

hdfs dfs -ls input

该命令执行后会显示类似如下的信息:

Found 1 items
-rw-r--r--   1 hadoop supergroup         23 2021-10-19 13:04 input/myLocalFile.txt

下面使用如下命令查看HDFS中的myLocalFile.txt这个文件的内容:

hdfs dfs -cat input/myLocalFile.txt

下面把HDFS中的myLocalFile.txt文件下载到本地文件系统中的/home/hadoop/download/这个目录下,命令如下:

cd /home/hadoop
mkdir download
cd /usr/local/hadoop/bin
hdfs dfs -get input/myLocalFile.txt /home/hadoop/download

可以使用如下命令,到本地文件系统查看下载下来的文件myLocalFile.txt:

cd /home/hadoop/download
ls
cat myLocalFile.txt

最后,了解一下如何把文件从HDFS中的一个目录拷贝到HDFS中的另外一个目录。比如,如果要把HDFS的/user/hadoop/input/myLocalFile.txt文件,拷贝到HDFS的另外一个目录/input中(注意,这个input目录位于HDFS根目录下),可以使用如下命令:

cd /usr/local/hadoop/bin
hdfs dfs -cp input/myLocalFile.txt /input

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4665450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存