hdfs的shell操作

1.shell的操作命令

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

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

  1)查看子命令

    hadoop fs、hdfs dfs

    

   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:模糊匹配

    

  14)总结:

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

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

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

 2.hdfs与getconf结合使用

  

  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结合使用

  

  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结合

  

  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

posted @ 2020-04-06 23:14  _蒲公英_  阅读(904)  评论(0编辑  收藏  举报