HDFS常用命令
hdfs 命令最常用的就是: hdfs dfs -[linux的命令]
通过查看Hadoop的命令 与 hdfs 的命令并不相同,且不存在包含关系。仅仅是 hadoop fs 与 hdfs dfs 可以等价。
hadoop 常用命令
查看hadoop 命令所有参数:
hadoop
hadoop checknative // 检查当前版本hadoop内库支持哪些压缩。如果是false,则需要自己编译支持此压缩。如果使用CDH则都支持。
hadoop classpath // 打印当前hadoop的环境
hadoop jar // 等价于 yarn jar ,提交jar 包到yarn
hdfs 常用命令
查看hdfs 命令所有参数:
hdfs
hdfs dfsadmin
hdfs dfsadmin -report // 报告当前集群的情况
hdfs dfsadmin -safemode // 安全模式。
hdfs dfsadmin -safemode leave // leave代表关闭,安全模式关闭才是读写正常的。
hdfs dfsadmin -safemode enter // 进入安全模式。如正在做集群维护时,就可以手动进入安全模式,维护完再离开
>Safemode is On // 安全模式下,能读不能写
// hdfs dfsadmin 还有其他很多参数
hdfs fsck
hdfs fsck // 对hdfs 做检查。如发现 Target Replicas is 3 but 1 live replica(s) 代表有副本丢失。文件权限后的数据就代表当前文件本来需有多少副本
平衡
// hdfs balancer // 集群平衡。DN1 与 DN2 间节点平衡。封装到脚本,每天晚上定执行
hdfs balancer -policy datanode -threshold 10 // 让 每个节点磁盘使用率,减去平均磁盘使用率 < 10%
// hdfs diskbalancer // 磁盘平衡。DN1中 多块磁盘的平衡。需要确保参数dfs.disk.balancer.enabled=true
执行命令: 先生成计划 再执行
hdfs diskbalancer -plan ruozedata001 // 生产后会创建一个同名.plan.json文件,执行它
hdfs diskbalancer -execute ruozedata001.plan.json
回收站
linux 没有回收站,可以自己搞
思路:准备脚本,rm 改mv,移动到指定的目录,很多参考。
hdfs 是有回收站的
有参数控制是否启用:fs.trash.interval // 回收站保留时间min,如果为0,代表不启用回收站功能
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
开启后的删除操作就会移动
hdfs dfs -ls
hadoop fs -ls 是在 /user/liqiang ; hadoop fs -ls / 是在根目录
hdfs dfs -ls # 列出工作主目录-用户名路径下的内容
hdfs dfs -ls / # 列出hdfs 根目录下的内容
hdfs dfs -mkdir
# path可以是绝对路径,也可以是相对路径。
hdfs dfs -mkdir [-p] <path>
hdfs dfs -mkdir tmp # 在hdfs文件系统中/user/liqiang 目录下创建tmp目录
hdfs dfs -mkdir ./tmp #
hdfs dfs -mkdir /tmp # 在hdfs文件系统的根目录下创建一个tmp目录
hdfs dfs -rm -r -f
hdfs dfs -rm [-r] [-f] <uri> # 删除目录或文件,-r -f不能组合成-rf
hdfs dfs -rm -r -f /test # 删除根目录下的test目录
hdfs dfs -rmdir /test # 删除目录:只能删除空目录
hdfs dfs -appendToFile
# appendToFile命令既可以将一个或多个文件添加到HDFS中,也可以将流中的数据读取到HDFS中。最终都是在hdfs中生成一个文件。
hdfs dfs -appendToFile <localSrc> <dst>
# 将本地文件exp.log上传到hdfs中/user/liqiang/tmp目录,并重命名为:exception.log
hdfs dfs -appendToFile ./exp.log ./tmp/exception.log
# 将本地的test目录传到hdfs中,重命名为tst文件【注意这里并不是目录】。
hdfs dfs -appendToFile ./test ./tst
hdfs dfs -cat
hdfs dfs -cat <URI>
# 查看/user/liqiang/tmp/exception.log 文件内容
hdfs dfs -cat ./tmp/exception.log
hdfs dfs -text
hdfs dfs -text
# 查看文件内容,支持压缩文件的查看而不会乱码
hdfs dfs -text ./tmp/exception.log
hdfs dfs -find
# 从根目录下精确搜索exception.log文件
hdfs dfs -find / -name exception.log
# 从/user/liqiang目录下搜索名称中包含ex字符串的文件
hdfs dfs -find /user/liqiang -name '*ex*'
hdfs dfs -put
从本地文件系统拷贝文件到hdfs中。
hdfs dfs -put [-f] [-p] [-l] [-d] [-t <thread count>] [ - | <localsrc1> .. ]. <dst>
# -f 如果已存在就覆盖
# -p 递归拷贝
hdfs dfs -put head.png tmp/head.png # 拷贝文件
hdfs dfs -put txt/ tmp/txt # 将目录txt拷贝到hdfs中的/user/liqiang/tmp/txt
hdfs dfs -get
从hdfs中下载文件到本地文件系统中。
hdfs dfs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
# -p 保留访问权限 修改时间等信息
# -f 如果目标文件已存在,直接覆盖。
hdfs dfs -get ./tmp ./hdfs-temp-dic # 将hdfs中的tmp目录下载到本地并重命名
hdfs dfs -cp
hdfs dfs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
# -f 如果存在,直接覆盖。
hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2
hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
hdfs dfs -cp tmp ./temp # 将tmp拷贝并重命名为temp
hdfs dfs -count
统计目录下文件夹数量 文件数量 目录下文件总字节数。
hadoop fs -count [-q] [-h] [-v] [-x] [-t [<storage type>]] [-u] [-e] [-s] <paths>\
hdfs dfs -count /user/test # 对/user/test 目录进行统计
结果每列含义:目录数 文件数 总大小(字节) 目录名称
hdfs dfs -mv
hdfs dfs -mv URI [URI ...] <dest>
# mv命令只能在hdfs文件系统中使用,不能跨系统。
hdfs dfs -mv tmp /tmp_home
hdfs dfs -chmod
hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
# -R 递归目录授权
hdfs dfs -chmod 700 temp # 给temp目录授权700~
hdfs dfs -chown
hdfs dfs -chown [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
hdfs dfs -chown liqiang:liqiang temp # 更文件改用户组
hdfs dfs -tail
hadoop fs -tail [-f] URI # 输出文件的末尾输出到控制台
# -f 动态输出
hdfs dfs -touch
hdfs dfs -touch [-a] [-m] [-t TIMESTAMP] [-c] URI [URI ...]
hdfs dfs -touchz
hdfs dfs -touchz URI [URI ...] # 创建一个长度为0的文件
版权归原作者 昱东i 所有, 如有侵权,请联系我们删除。