您的位置:首页 > 运维架构 > Shell

hdfs常用的Shell操作

2017-10-16 18:21 246 查看


1 shell操作的准备工作

我们需要在.bashrc 文件中配置环境变量,这样hadoop命令才可以方便的直接写,而不用在写全路径去执行
exprot HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.5(这个路劲可以通过pwd命令去查看)
exprot PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
1
2

同时必须明确在这里我们涉及到两种路径:一个是本地(Linux文件系统的路径)是看的见得;一个是HDFS集群的文件路径(虽然HDFS在Linux上,但与本地不一样),在本地Linux是找不到的,他是一个逻辑上的路径.


2、常用的Shell命令

(1)查看帮助手册
hadoop -help
hadoop fs -help      (注:其中的fs表示客户端上执行  )
hadoop fs -help ls
1
2
3

(2)显示hdfs集群中的所有文件——————-查看文件列表
hadoop fs -ls /
1

(3)在hdfs集群上创建目录test2 ——————————创建文件
hadoop fs -mkdir /test2
1

(4)将本地文件上传到(复制到)hdfs集群上—————–上传 

hadoop fs -put ./huangbo.txt /test2


hadoop fs -copyFromLocal  ./huangbo.txt   /test2
1

(5)将hdfs集群的文件下载到(复制到)本地
hadoop fs -get /test2/huangbo.txt  /home/hadoop
1

或 
hadoop fs -copyToLocal /test2/huangbo.txt /home/hadoop
————下载

(6)将本地文件上传到(剪切到)hdfs集群上
hadoop fs -moveFromLocal  ./huangbo.txt   /test2
1

(7) 将hdfs集群上文件上传到(剪切到)本地上
hadoop fs -moveToLocal  /test2/huangbo.txt   /home/hadoop
1

(6)将hdfs集群中的某个文件复制到hdfs集群中的另一个目录中(将huangbo.txt拷贝test3) —–hdfs内部之间文件拷贝
hadoop fs -cp /test2/huangbo.txt   /test3/
1

(7)将hdfs集群中的某个文件剪切到该hdfs集群中的另一个目前中 —–hdfs内部之间文件剪切
hadoop fs -mv /test2/huangbo.txt   /test3/
1

(8)删除hdfs集群中文件或文件夹 - —————————————————文件删除
hadoop fs -rm -r /aaa/bbb
1

清除空目录
hadoop fs -rmdir /aaa
1

(9)将hdfs集群中的两个文件内容进行合并,并下载到本地 ——————文件合并
hadoop fs -getmerge /test2/huangbo.txt    /test3/xuzheng.txt   /home/hadoop/a.txt
1

此时a.txt中内容就是huangbo.txt与xuzheng.txt的内容

(10)追加本地文件的内容到hdfs集群上的指定文件内容中去 ————————–文件追加
hadoop fs -appendToFile  /home/hadoop/a.txt  /test3/hh.txt
1

此时hh.txt中的内容便是两者的结合

(11)展示hdfs集群中指定文件的内容 ——————————查看文件内容
hadoop fs -cat  /test3/a.txt
-tail
-text
1
2
3

(12)统计hdfs集群中指定目录的文件节点的数量 —————————–查看文件数量
hadoop fs -count /test3
1

(13)设置hdfs集群文件备份数量 —————–设置文件备份
hadoop fs -setrep 6 /test3/a.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: