环境: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个数