HDFS - Shell命令
最近学习比较忙,本来想做一个搭建集群笔记,今天先记录HDFS-shell命令,明天,最迟明天下午我一定会做一个搭建集群的笔记。。
介绍一个我的集群搭建:
3个虚拟机:
1. hadoop1:主+从 namenode+datanode+resourceMarager
2.hadoop2:从+日志记录 datanode+secondarynamenode+datamanager
3.hadoop3:从 datanode+datamanager
1.启动集群:
2.查看网页运行:
1)创建一个文件夹:
hadoop fs -mkdir /in 或者 hadoop fs -mkdir hdfs//hadoop1:8020/out
2) 上传一个文件或者多个
hadoop fs -put 3 /in 或者 hadoop fs -put * /in(大数据不能修改文件,多个文件上次递归上传)
3)删除文件
hadoop fs -rm -R /in/*(删除多个,递归删除)
4)多个文件上传
hadoop fs -put f1.txt log.txt testfiles /in或者hadoop fs- -put *.jpeg *.txt(该目录下所有以*.jpeg和.ext结尾的都上传)
5)查看一个文本
hadoop fs -cat /in/文件名 或者hadoop fs -cat /in/文件名(文件大时,优先使用text)
6)修改Group所属人
useradd lich --> passwd lich -->lich-->lich -->hadoop fs -chgrp lich /in/文件名
7)修改所属主Owner
hadoop fs -chown lich:lich /in/文件名
8)lich删除root所属组的文件:(阻止好人做坏事)
hadoop -rm /in/log.txt(如果dfs:permissions:true则删除失败)
9)更改属性
hadoop fs -put 文件名 /in/文件名(前文件名:要上传的文件的log.txt文件名,后者:如果里面已经有相同的文件名则改问后者,反之为前者)
10)上传并从命名:
hadoop fs -copyFromLocal ./log.txt /in/新的文件名
11)下载一个文件(下载到本地Linux上)
hadoop fs -get /in/hehe.txt ./或者hadoop fs -copyToLocal /in/hehe.txt ./(如果下载的名字相同则报错)
12)hadoop将目录/in下的hehe.txt复制到/out下
hadoop fs -cp /in/hehe.txt /out
13)查看文件大小
hadoop fs -du
14)合并下载
hadoop fs -getmerge /in/* ./biubiu.txt
15)合并上传(hadoop不支持合并上传)
cat log.txt >> lalal.txt cat testfile >> lalal.txt cat f1.txt >>lalaltxt 合并文件
hadoop fs -put lalal.txt /in 上传
16)查看目录
hadoop fs -lsr/ 或者hadoop fs ls -R
17)保存目录
hadoop fs -lsr / >7.txt(将目录保存到文件7.txt下)
18)将本地的文件移动到hadoop上
hadoop fs -moveFromLocal 文件名 /in
19)将Hadoop上的文件以到hadoop的其他文件下
hadoop fs -mv /in/文件名 /out/new文件名