hdfs Shell操作
原创
©著作权归作者所有:来自51CTO博客作者塞上江南o的原创作品,请联系作者获取转载授权,否则将追究法律责任
目录
- 查看hdfs上lzo、gz、bz压缩格式的文件
- 查看目录
- 创建目录
- 上传文件
- 删除指定文件
- 删除指定目录下有共性的所有文件
- 删除文件夹及内容
查看hdfs上lzo、gz、bz压缩格式的文件
# 查看第一行
hadoop fs -cat /Data/Logs/2018-08-22/2018-08-22_log.lzo | lzop -dc | head -1
hadoop fs -cat /shining/temp.txt.gz | gzip -d
或
hadoop fs -cat /shining/temp.txt.gz | zcat
hadoop fs -cat /temp/b.bz2 | bzip2 -d
查看目录
创建目录
上传文件
hdfs dfs -put word.txt /input
删除指定文件
hadoop fs -rm /user/hive/warehouse/emp/emp.txt
删除指定目录下有共性的所有文件
# /origin_data/gmall/db目录下存放了,文件名含_inv的文件
hadoop fs -ls /origin_data/gmall/db | grep _inc | awk '{print $8}' | xargs hadoop fs -rm -r -f
删除文件夹及内容
假设我的warehouse有2个目录,并且2个目录下各有多个文件,我想把warehouse目录下的所有内容都给删除
hadoop fs -rmr /user/hive/warehouse/*
假设我的warehouse有2个目录,并且2个目录下各有多个文件,我只想把2个目录中的一个给删除
hadoop fs -rmr /user/hive/warehouse/emp
有这么一种情况,我们知道hive表中的数据是在hdfs上存储的。
当我们在操作hive时,想把表给删除了,
虽然可以用以上命令进行删除表,但是这样操作后,尽管把表给删除了,但是存储在mysql中的元数据(描述原始数据的数据)并没有删除
,所以不提倡这样的做法。除非原始数据与其它没有任何关联。