Hadoop之shell命令

 Hadoop之shell命令

一、启动命令

启动hadoop:start-dfs.sh,start-yarn.sh

关闭hadoop:stop-dfs.sh,stop-yarn.sh

启动hdfs时可在任意节点,启动yarn得在相应yarn的主节点上执行

      hadoop fs -命令(hadoop1.0的时候用的)

      hdfs dfs -命令(hadoop2.0的时候用的)

      hadoop/hdfs 启动hadoop的客户端,连接hadoop集群

      fs/dfs 连接hadoop的文件系统的,filesystem的客户端

二、查看hdfs的目录结构

      hadoop fs -ls -R hdfs的目录(查看给定的hdfs的目录的子目录)

      -R 级联查看

      hadoop fs -ls -R /

      hadoop fs -lsr /

      注意:在hdfs中所有的路径只有绝对路径的访问形式必须从/开始

三、创建文件夹

      hadoop fs -mkdir -p 需要创建的目录

      -p   级联创建

      hadoop fs -mkdir -p /aa/bb/cc

      hadoop fs -mkdir /testin

四、文件上传

      hdfs不支持文件修改的,在hdfs不能先创建一个空文件在进行编辑,只能本地编辑完成文件再上传到hdfs存储或者将本地的文件进行直接存储在hdfs上。

      文件上传:将本地的文件传到hdfs存储进行分布式存储的。

      hadoop fs -copyFromLocal 本地文件路径 hdfs路径

      将本地文件拷贝到hdfs上,对应API

      hadoop fs -moveFromLocal 本地文件路径 hdfs路径

      将本地文件移动到hdfs上

      hadoop fs -put 本地文件路径 hdfs路径

      同  -copyFromLocal    提倡

      hadoop fs -put hadoop-2.7.7.tar.gz /testin

      hadoop fs -moveFromLocal hadoop-2.7.7.tar.gz /  剪切|移动

      注意: 本地路径指的是客户端所在本地

      文件上传的时候如果给定的是hdfs的目录,将本地文件传到hdfs的给定目录下,如果给的是一个hdfs不存在的文件|目录,将本地文件传到hdfs上,但是会重命名,命名为给定的文件名。

五、文件下载

hadoop fs -copyToLocal|moveToLocal|get  hdfs路径  本地路径 

      将hdfs文件下载到本地

      hadoop fs -copyToLocal|get   将hdfs拷贝到本地

      -get 推荐

      hadoop fs -get /hadoop-2.7.7.tar.gz .

      hadoop fs -moveToLocal  将hdfs的移动到本地(这个命令目前还是不支持的)

六、查看文件内容

hadoop fs -cat hdfs文件路径

hadoop fs -cat /hdfs-site.xml

查看hdfs文件的所有内容

hadoop fs -tail hdfs文件路径

hadoop fs -tail /hdfs-site.xml

查看hdfs给定文件的末尾1kb的数据

七、创建文件

hadoop fs -touchz hdfs文件名  创建空文件

hadoop fs -touchz /test_bd1901

注意:在hdfs中大小为0kb的文件不进行实际存储的datanode中不存储的,只在namenode中进行元数据存储。

八、删除文件或目录

hadoop fs -rm -f -r 需要删除hdfs的目录或文件

-f  force 强制删除

-r  级联删除用于删除目录的时候

删除文件

hadoop fs -rm -f /hadoop-2.7.7.tar.gz

删除目录

hadoop fs -rm -r -f /aa

九、修改hdfs文件或目录的读写权限

chmod -R 777 文件或目录

-R 级联修改目录下的所有子文件的权限的

hadoop fs -chmod -R 777 /testin

十、修改文件所属用户和组

chown -R 用户:组 文件或目录

hadoop fs -chown -R 用户:组 文件或目录

hadoop fs -chown -R hadoop:hadoop /testin

十一、修改hdfs文件的副本个数

hdfs配置文件 hdfs-site中设置的副本个数 2。

      假如有一个文件很重要,需要将这个文件的副本改成3个:

-setrep [-R] [-w]  (set replication 修改副本的)

-R 级联修改目录下的所有文件

-w wait   等待新副本的复制完成|删除完成(阻塞方法)

hadoop fs -setrep 3 /hadoop6

      只能修改hdfs上已经存在的文件或目录(对于上面的例子只修改hadoop6这个文件),对于新上传的文件副本个数 hdfs-site 配置文件中的作用的。

      hdfs的存储文件的副本的修改:

(1)配置文件  全局

hdfs-default.xml    3

hdfs-site.xml    2

(2)命令单个文件或目录的

hadoop fs -setrep

(3)加载:

hdfs-default 3

---> hdfs-site  2

--->setrep  3

最后加载的最终生效

十二、查看磁盘占有情况

du df

hadoop fs -du -h hdfs目录

hadoop fs -du -h /

统计hdfs的每一个文件夹|文件的大小

hadoop fs -df -h hdfs目录

hadoop fs -df -h /

查看指定路径的磁盘占有率

十三、其他

(1)-appendToFile 追加  了解

hadoop fs -appendToFile 本地文件 hdfs文件

将本地文件  追加到指定的hdfs文件的末尾

hadoop fs -appendToFile hdfs-site.xml /slaves  不建议使用的

(2)-cp|-mv  

用法:

hadoop fs -cp|-mv hdfs路径  hdfs路径

将hdfs的(目录)文件 拷贝 | 移动  hdfs另一个文件路径中

hadoop fs -cp /slaves /sl01  了解

hadoop fs -mv /slaves /sl02  重命名  掌握

(3)-getmerge  合并下载  归并下载

      将hdfs上的多个文件  合并为一个文件下载

hadoop fs -getmerge  hdfs路径1  hdfs路径2 … 本地路径

将hdfs的多个路径合并下载到本地

hadoop fs -getmerge /sl01 /sl02 /home/hadoop/testmetge

这个命令 默认将最后一个目录识别为本地路径

      (4)-count  文件统计

      (5)-text  将文件以文本显示

      hadoop fs -text /hadoop6

十四、hdfs的所有路径权限定名

namenode的访问路径+需要访问的路径

core-site.xml

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp01:9000</value>

</property>

hdfs://hdp01:9000/

简写  /

全写:hadoop fs -ls hdfs://hdp01:9000/

hdfs  --》  协议

hdp01  namenode 主节点

hdfs有两个端口:

9000:datanode和namenode通信访问的端口内部rpc协议的

50070:客户端访问web界面的http协议端口

原文地址:https://www.cnblogs.com/lizm166/p/13354858.html