hdfs的shell操作

1.shell的操作命令

hdfs命令有两种风格:hadoop fs、hdfs dfs

两种命令均可使用,效果相同。

1)查看子命令

  hadoop fs、hdfs dfs

  hdfs的shell操作

   2)如果查看hdfs或hadoop子命令信息

  hdfs dfs -help shellCmd

  hadoop fs -help shellCmd

  ex:hdfs dfs -help ls 、hadoop fs -help ls

3)查看hdfs文件系统中指定目录文件列表。

  hdfs dfs -ls dir

  hadoop fs -ls dir

  hdfs dfs -ls -R dir #递归显示,显示子文件夹中的文件

  ex:hdfs dfs -ls / #显示根目录下的文件以及文件夹

    hadoop fs -ls -R / #显示根目录了下所有文件件以及所有子文件夹中的文件

    hdfs fs -ls file:/// #列出linux根目录下的文件

   4)创建文件

  hdfs dfs -touchz file

  hadoop fs -touchz file

  ex:hdfs dfs -touchz /edits.txt #根目录下创建edits.txt

5)向hdfs中文件追加内容

  hdfs dfs -appendToFile linuxFile hdfsFile #将本地linuxFile内容追加到Hdfs的hdfsFile中

  hadoop fs -appendToFIle linuxFile hdfsFile

  ex:hadoop dfs -appendToFile edits.xml /edits.txt #本地edits.xml内容追加到hdfs中根目录下的edits.txt

6)查看hdfs文件内容

  hdfs dfs -cat file

  hadoop fs -cat file

  hdfs dfs -cat /edits.txt 查看根目录下 edits.txt内容

7)从本地路径上传文件只HDFS

  hdfs dfs -put linux文件 hdfs路径

  hadoop fs -put linux文件 hdfs路径

  hadoop fs -put /abc.txt / #把linux根目录下的abc.txt上传到hdfs根目录下

  hdfs dfs -copyFromLocal linux文件 hdfs路径

  hadoop fs -copyFromLocal linux文件 hdfs路径

  hdfs dfs -copyFromLocal /acb.txt / #跟put一样  把linux根目录下的abc.txt上传到hdfs根目录下

  hdfs dfs -moveFromLocal linux文件 hdfs路径

  hadoop fs -moveFromLocal linux文件 hdfs路径

  hadoop fs -moveFromLocal /abc.txt / #把linux根目录下的abc.txt上传到hdfs根目录下 与put差异是会把linux的文件删除

8)从文件系统中下载文件

  hdfs dfs -get hdfs文件 linux路径

  hadoop fs -get hdfs文件 linux路径

  hdfs dfs -get /abc.txt / #把hdfs根目录下的abc.txt 下载到linux的根目录下

  hdfs dfs -copyToLocal hdfs文件 linux路径

  hadoop fs -copyToLocal hdfs文件 linux路径

  hadoop fs -copyToLocal /abc.txt / #与-get相同,把hdfs根目录下的abc.txt下载到linux的根目录下

9)在hdfs中创建文件夹

  hdfs dfs -mkdir 文件夹

  hadoop fs -mkdir 文件夹

  hdfs dfs -mkdir /shell #在hdfs根目录下创建shell文件夹

10)删除hdfs中的文件

  hdfs dfs -rm 文件

  hadoop fs -rm 文件

  hdfs dfs -rm /abc.txt #删除hdfs根目下的abc.txt

  hadoop fs -rm -r /shell #删除hdfs根目录下的shell文件夹

11)修改hdfs中文件名称或修改所属目录

  hdfs dfs -mv hdfs目录文件 hdfs目录文件

  hadoop fs -mv hdfs目录文件 hdfs目录文件

  hdfs dfs -mv /abc.txt /abc.txt /abc.md #将hdfs根目录下的abc.txt修改为abc.md

  hadoop fs -mv /abc.md /newdir #将hdfs根目录下的abc.md移动到根目录下的newdir文件夹中 

12)把hdfs中的文件拷贝到新的目录

  hdfs dfs -cp 目录文件 目录

  hadoop fs -cp 目录文件 目录

  hdfs dfs -cp /abc.txt /shell #hdfs根目下的abc.txt 复制一份到hdfs根目录下的shell中

13)查找文件

  hdfs dfs -find path 匹配模式 查找内容

  hadoop fs -find path 匹配模式 查找内容

  hdfs dfs -find / -name user #在hdfs的根目录下查找名称是user的文件,name:完全匹配

  hadoop fs -find / -iname us* #在hdfs的根目录下查找名称中带有us的文件,iname:模糊匹配

  hdfs的shell操作

14)总结:

  a)输入hadoop fs 或 hdfs dfs,回车查看所有的hdfs的HDFS命令

  b)大部分命令和linux命令有很大的相似性,可以举一反三

  c)记得使用help,ex:hadoop fs -help ls,查看ls的使用参数

 2.hdfs与getconf结合使用

hdfs的shell操作

1)获取NameNode的节点名称

  hdfs getconf -namenodes

2)获取hdfs最小快信息

  hdfs getconf -confKey dfs.namenode.fs-limits.min-block-size #也可以获取其他的属性值

3)查找namenode的RPC地址

  hdfs getconf -nnRpcAddresses

3.hdfs与dfsadmin结合使用

hdfs的shell操作

1)查看hdfs dfsadmin的帮助信息

  hdfs dfsadmin

2)使用help查看具体命令的帮助

  hdfs dfsadmin -help 命令

  ex:hdfs dfsadmin -help safemode

3)查看当前模式

  hdfs dfsadmin -safemode get

4)进入、退出安全模式

  hdfs dfsadmin -safemode enter #进入

  hdfs dfsadmin -safemode leave #退出

4.hdfs与fsck结合

hdfs的shell操作

fsck指令显示HDFS块信息

hdfs fsck /abc.txt -files -blocks -locations #查看hdfs根目录下abc.txt的块信息

 5.其他命令

1)检查压缩库本地安装情况

  hadoop checknatice

2)格式化名称节点(慎用:一般只在初次搭建集群使用一次,格式化话成功后不要在使用,多次格式化可能会导致namenode与datanode的clusterID不一致导致datanode无法启动,需要保持一致)

  hadoop namenode -format

3)执行自定义jar包

  hadoop jar /kkb/install/hadoop-2.6.0-cdh5.14.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar pi 10 10

  yarn jar /kkb/install/hadoop-2.6.0-cdh5.14.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar pi 10 10

相关推荐