1、shell 创建目录(touch 创建文件)(hdfs dfs -mkdir (-p) /目录)
hdsf dfs -mkdir /test #创建单层文件夹(路径为绝对路径)
hdsf dfs -mkdir -p /test/a/b/c #创建多层文件夹(路径为绝对路径)
2、shell 查看命令
hdfs dfs -ls [-R] / #查看HDFS目录里的内容(-R 递归查看)
hdfs dfs -cat /XX.txt #查看HDFS中指定文件的内容(路径为绝对路径)
hdfs dfs –cat /文件 | head -5 #查看HDFS中指定文件的前几行内容
hdfs dfs –cat /文件 | tail -5 #查看HDFS中指定文件的后几行内容
hdfs dfs -find / -name 要搜索的文件名 # 从根目录下精确搜索文件,返回查找的文件路径
hdfs dfs -find /指定的目录 -name "ex" # 从指定目录下搜索名称中包含ex字符串的文件
3、shell 上传文件(格式 hdfs dfs -put /本地文件路径 /HDFS系统路径)
hdfs dfs -put test/ / #将本地test文件夹上传到HDFS中的根目录(路径为绝对路径)
hdfs dfs -put *.txt / #将本地文件名为txt的上传到HDFS中的根目录
hdfs dfs -copyFromLocal test/ / #将本地test文件夹上传到HDFS中的根目录(路径为绝对路径)
hdfs dfs -removeFromLocal test/ / #将本地test文件夹上传到HDFS中的根目录(路径为绝对路径),将移除本地文件
4、shell 下载
hdfs dfs -get /a.txt /test #将HDFS中的指定文件下载到test目录下(当shell中的目录缺失时,会下载到当前shell所在目录中)
5、合并下载
hdfs dfs -getmerge /A/XX.xml /test/a.txt #将HDFS中的指定文件合并到test目录中的a.txt文件中
6、删除文件
删除后的文件会存储在回收站中(默认不开启)
hdfs dfs -rm [-r|-R] /a #将HDFS中a文件删除(如果是文件夹,则增加-r或者-R )
7、拷贝和移动
hdfs dfs -cp /hdfs路径_1 /hdfs路径_2 #将HDFS中路径1的文件拷贝到路径2
hdfs dfs -mv /源目录 /目标目录 #将HDFS中路径1的文件移动到路径2
8、创建空文件
hdfs dfs touchz /test/a.txt #在test文件夹下创建a.txt
9、追加内容
#HDES的文件系统上的文件,不允许进行文件中的数据入、剧除、修改操作,
#只支持向文件的末尾追加内容例如:删除文件的第10行数据,在第11行播入数据
#修改第12行数据等,这些都是不允许的。
hdfs dfs -appendToFile 本地文件 hdfs上的文件
#注意:不支持在中间随意增删改操作
10、修改文件权限
hdfs dfs -chmod [-R] 777 #递归修改所有文件
11、其他命令
#参数说明:-e:文件是否存在存在,存在返回0 -z:文件是否为空,为空返回0 -d:是否是路径(目录) ,是返回0
#调用格式:hdfs dfs -test -d 文件
hdfs dfs -test-d /shelldata/111.txt && echo "OK" || echo "NO"
#解释:测试当前的内容是否是文件,如果是返回OK,如果不是返回NO
12、回收站
12.1 修改core-site.xm1文件
<!-- 设置检查点删除的时间间隔,单位是分钟。如果设置为8表示不启用回收站。 -->
<property>
<name>fs.trash.interval</name>
<value>1440</vaue>
</property>
<!--这是检查点创建的时间间隔,单位是分钟。-->
<!-- 这个值应该小于或等于fs.trash,interval,如果设置为0,则会将这个值设置为 fs.trash.interval的值。-->
<property>
<name>fs.trash.checkpoint.interval</name>
<value>0</value>
</property>
12.2 基础操作
# 删除文件目录,删除之后会将文件移动到回收站
hdfs dfs -m -r /test
# 清空回收站的数据
hdfs dfs -expunge
#直接删除文件目录,不进入回收站
hdfs dfs -m-r -skipTrash /test2
# 找回文件
hdfs dfs -mv /user/root/.Trash/Current/test /test