hadoop-常用命令操作

环境:centos、hadoop

1、hadoop常用命令示例

./bin/hdfs dfs -mkdir /check                              #创建目录check到根目录
./bin/hdfs dfs -put file /check                           #将本地目录文件file放到创建的check目录中
./bin/hdfs dfs -cat /check/file                           #查看file文件信息
./bin/hdfs dfs -get /check/file                           #下载文件到本地目录
./bin/hdfs dfs -get hdfs://10.64.39.211:8020/sxcl         #远程下载某个hdfs的目录
./bin/hdfs dfs cp hdfs://10.64.39.211:8020/sxcl hdfs://10.64.39.140:8020/  #从一个hdfs集群拷贝文件夹到另一个hdfs集群
./bin/hadoop fs -du -h /5100                              #查看5100下各个文件的大小
./bin/hadoop fs -count -q -h /5100                        #查看5100目录总的大小
./bin/hadoop fs -ls /5100                                 #查看5100目录下的文件
./bin/hdfs dfs -ls /5100                                  #查看5100目录下的文件
./hadoop fs -rm -r /5101/20180101                         #删除目录
./hdfs dfs -rm -r -f /5101/20180101                       #删除目录
./hdfs dfs -rm /5101/20180101/a.txt                       #删除文件
./hdfs dfs -cat /5101/20180101/a.txt                      #查看文件内容
./hdfs dfs -cat hdfs://10.64.39.211:8020/5101/20180101/a.txt #查看文件内容 

2、hadoop常用命令

第一部分:hdfs文件系统命令

第一类:文件路径增删改查系列:

hdfs dfs -mkdir dir                            创建文件夹
hdfs dfs -rmr dir                              删除文件夹dir
hdfs dfs -ls                                   查看目录文件信息
hdfs dfs -lsr                                  递归查看文件目录信息
hdfs dfs -stat path                            返回指定路径的信息

第二类:空间大小查看系列命令:
hdfs dfs -du -h dir                            按照适合阅读的形式人性化显示文件大小
hdfs dfs -dus uri                              递归显示目标文件的大小
hdfs dfs -du path/file                         显示目标文件file的大小

第三类:权限管理类:

hdfs dfs -chgrp  group path                    改变文件所属组
hdfs dfs -chgrp -R /dir                        递归更改dir目录的所属组
hdfs dfs -chmod [-R] 权限 -path                 改变文件的权限
hdfs dfs -chown owner[-group] /dir             改变文件的所有者
hdfs dfs -chown -R  owner[-group] /dir         递归更改dir目录的所属用户

第四类:文件操作(上传下载复制)系列:

hdfs dfs -touchz a.txt                         创建长度为0的空文件a.txt
hdfs dfs -rm file                              删除文件file
hdfs dfs -put file dir                         向dir文件上传file文件
hdfs dfs -put filea dir/fileb                  向dir上传文件filea并且把filea改名为fileb
hdfs dfs -get file dir                         下载file到本地文件夹
hdfs dfs -getmerge hdfs://Master:9000/data/SogouResult.txt CombinedResult  把hdfs里面的多个文件合并成一个文件,合并后文件位于本地系统
hdfs dfs -cat file                             查看文件file
hdfs fs -text /dir/a.txt                       如果文件是文本格式,相当于cat,如果文件是压缩格式,则会先解压,再查看
hdfs fs -tail /dir/a.txt                       查看dir目录下面a.txt文件的最后1000字节
hdfs dfs -copyFromLocal localsrc path          从本地复制文件
hdfs dfs -copyToLocal /hdfs/a.txt /local/a.txt 从hdfs拷贝到本地
hdfs dfs -copyFromLocal /dir/source /dir/target把文件从原路径拷贝到目标路径
hdfs dfs -mv /path/a.txt /path/b.txt           把文件从a目录移动到b目录,可用于回收站恢复文件

第五类:判断系列:

hdfs fs -test -e /dir/a.txt                    判断文件是否存在,正0负1
hdfs fs -test -d /dir                          判断dir是否为目录,正0负1
hdfs fs -test -z /dir/a.txt                    判断文件是否为空,正0负1

第六类:系统功能管理类:
 
hdfs dfs -expunge                              清空回收站
hdfs dfsadmin -safemode enter                  进入安全模式
hdfs dfsadmin -sfaemode leave                  离开安全模式
hdfs dfsadmin -decommission datanodename       关闭某个datanode节点
hdfs dfsadmin -finalizeUpgrade                 终结升级操作
hdfs dfsadmin -upgradeProcess status           查看升级操作状态
hdfs version                                   查看hdfs版本
hdfs daemonlog -getlevel <host:port> <name>    打印运行在<host:port>的守护进程的日志级别
hdfs daemonlog -setlevel <host:port> <name> <level> 设置运行在<host:port>的守护进程的日志级别
hdfs dfs -setrep -w 副本数 -R path             设置文件的副本数

第二部分:运维命令

start-dfs.sh                                   启动namenode,datanode,启动文件系统
stop-dfs.sh                                    关闭文件系统
start-yarn.sh                                  启动resourcemanager,nodemanager
stop-yarn.sh                                   关闭resourcemanager,nodemanager
start-all.sh                                   启动hdfs,yarn
stop-all.sh                                    关闭hdfs,yarn
hdfs-daemon.sh start datanode                  单独启动datanode
start-balancer.sh -t 10%                       启动负载均衡,尽量不要在namenode节点使用
hdfs namenode -format                          格式化文件系统
hdfs namenode -upgrade                         分发新的hdfs版本之后,namenode应以upgrade选项启动
hdfs namenode -rollback                        将namenode回滚到前一版本,这个选项要在停止集群,分发老的hdfs版本之后执行
hdfs namenode -finalize                        finalize会删除文件系统的前一状态。最近的升级会被持久化,rollback选项将再不可用,升级终结操作之后,它会停掉namenode,分发老的hdfs版本后使用
hdfs namenode importCheckpoint                 从检查点目录装载镜像并保存到当前检查点目录,检查点目录由fs.checkpoint.dir指定

第三部分:mapreduce命令

hdfs jar file.jar                              执行jar包程序
hdfs job -kill job_201005310937_0053           杀死正在执行的jar包程序
hdfs job -submit <job-file>                    提交作业
hdfs job -status <job-id>                      打印map和reduce完成百分比和所有计数器。
hdfs job -counter <job-id> <group-name> <counter-name>  打印计数器的值。
hdfs job -kill <job-id>                        杀死指定作业。
hdfs job -events <job-id> <from-event-#> <#-of-events> 打印给定范围内jobtracker接收到的事件细节。
hdfs job -history [all] <jobOutputDir>     
hdfs job -history <jobOutputDir>               打印作业的细节、失败及被杀死原因的细节。更多的关于一个作业的细节比如成功的任务,做过的任务尝试等信息可以通过指定[all]选项查看。
hdfs job -list [all]                           显示所有作业。-list只显示将要完成的作业。
hdfs job -kill -task <task-id>                 杀死任务。被杀死的任务不会不利于失败尝试。
hdfs job -fail -task <task-id>                 使任务失败。被失败的任务会对失败尝试不利。

第四部分:hdfs系统检查工具fsck

hdfs fsck <path> -move                         移动受损文件到/lost+found
hdfs fsck <path> -delete                       删除受损文件。
hdfs fsck <path> -openforwrite                 打印出写打开的文件。
hdfs fsck <path> -files                        打印出正被检查的文件。
hdfs fsck <path> -blocks                       打印出块信息报告。
hdfs fsck <path> -locations                    打印出每个块的位置信息。
hdfs fsck <path> -racks                        打印出data-node的网络拓扑结构。

第五部分:运行pipies作业

hdfs pipes -conf <path>                        作业的配置
hdfs pipes -jobconf <key=value>, <key=value>, ...  增加/覆盖作业的配置项
hdfs pipes -input <path>                       输入目录
hdfs pipes -output <path>                      输出目录
hdfs pipes -jar <jar file>                     Jar文件名
hdfs pipes -inputformat <class>                InputFormat类
hdfs pipes -map <class>                        Java Map类
hdfs pipes -partitioner <class>                Java Partitioner
hdfs pipes -reduce <class>                     Java Reduce类
hdfs pipes -writer <class>                     Java RecordWriter
hdfs pipes -program <executable>               可执行程序的URI
hdfs pipes -reduces <num>                      reduce个数

  

做一个决定,并不难,难的是付诸行动,并且坚持到底。
原文地址:https://www.cnblogs.com/wukc/p/13356212.html