HDFS处理文件的命令和Linux命令差不多,但注意区分大小写。
(Linux区分大小写,Windows不区分大小写)
一、fs命令
键入命令“./bin/hadoop fs”将输出能够支持的命令列表。
Usage: java FsShell
[-ls <path>]
[-lsr <path>]
[-df <path>]
[-du [-s] [-h] <path>]
[-dus <path>]
[-count [-q] <path>]
[-mv <src> <dst>]
[-cp <src> <dst>]
[-rm [-skipTrash] <path>]
[-rmr [-skipTrash] <path>]
[-expunge]
[-put <localsrc> … <dst>]
[-copyFromLocal <localsrc> … <dst>]
[-moveFromLocal <localsrc> … <dst>]
[-get [-ignoreCrc] [-crc] <src> <localdst>]
[-getmerge <src> <localdst> [addnl]]
[-cat <src>]
[-text <src>]
[-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]
[-moveToLocal [-crc] <src> <localdst>]
[-mkdir <path>]
[-setrep [-R] [-w] <rep> <path/file>]
[-touchz <path>]
[-test –[ezd] <path>]
[-stat [format] <path>]
[-tail [-f] <file>]
[-chmod [-R] <MODE[, MODE] … | OCTALMODE> PATH…]
[-chown [-R] [OWNER] [: [GROUP]] PATH…]
[-chmod [-R] GROUP PATH…]
[-help [cmd]]
下面说说最主要的几个命令。
1. 创建文件夹
HDFS上的文件目录结构类似Linux,根目录使用/表示。下面的命令在/user/hadoop目录下建立input。
denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –mkdir /user/hadoop/input
denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –ls /user/hadoop
Found1 items
drwxr-xr-x - denny supergroup 0 2014-09-21 23:38 /user/hadoop/input
2. 上传文件test.txt到input下。
denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –put test.txt /user/hadoop/input
denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –ls /user/hadoop/input
Found1 items
-rw-r--r--1 denny supergroup 75 2014-09-21 23:45 /user/hadoop/input/test.txt
还可以用-copyFromLocal命令。
3.查看test.txt文件内容
denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –text /user/hadoop/input/test.txt
helloworld
helloworld…
还可以用-cat、-tail命令查看文件内容,但是对于压缩文件只能用-text参数查看,否则是乱码。
4.把test.txt文件复制到本地(下载,导出)
denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –get /user/hadoop/input/test.txt
还可以用-copyToLocal命令。
5.删除test.txt文件
denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –rm /user/hadoop/input/test.txt
二、namenode命令
运行namenode进行格式化、升级、回滚等操作。
命令选项 | 功能描述 |
-format | 格式化NameNode,启动NameNode,格式化NameNode,之后关闭NameNode |
-upgrade | 分发新版本的Hadoop后,NameNode应以upgrade选项启动 |
-rollback | 将NameNode回滚到前一版本。此选项要在停止集群、分发Hadoop旧版本后使用 |
-finalize | 删除文件系统的前一状态。最近的升级会被持久化,rollback选项将再不可用升级终结操作之后,会停掉NameNode |
-importCheckPoint | 从检查点目录装在镜像并保存到当前检查点目录,检查点目录由fs.checkpoint.dir指定 |
(注:Hadoop集群第一次启动时一定要格式化NameNode,否则NameNode会报错)
三、job命令
命令选项 | 功能描述 |
-submit <job file> | 提交作业 |
-status <job-id> | 打印Map和Reduce完成百分比和所计数器 |
-counter <job-id> <group-name> <counter-name> | 打印计数器的值 |
-kill <job-id> | 杀死指定作业 |
-events <job-id> <from-event-#> <#-of-events> | 打印给定范围内的JobTracker接收到的事件细节 |
-history [all] <jobOutputDir> | -history <jobOutputDir>用于打印作业细节,失败及被杀死原因细节。更多关于一个作业细节(如成功的任务、做过的任务尝试等信息)可以通过指定[all]选项查看 |
-list [all] | 显示所有作业。-list只显示将要完成的作业 |
-kill-task <task-id> | 杀死任务,被杀死的任务不会不利于失败尝试 |
-fail-task <task-id> | 使任务失败,被失败的任务会对失败尝试不利 |
四、fsck命令
显示块的信息,列出文件系统中各文件由那些块构成。用于和MapReduce作业交互和命令。
命令选项 | 描述信息 |
<path> | 检查起始的目录 |
-move | 移动受损文件到/lost+found |
-delete | 删除受损文件 |
openforwrite | 打印写打开的文件 |
-files | 打印正在被检查的文件 |
-blocks | 打印块信息报告 |
-locations | 打印每个块的位置信息 |
-racks | 打印datanode的网络拓扑结构 |
五、pipe命令
该命令用于运行pipe作业。
命令选项 | 描述信息 |
-conf <path> | 作业的配置 |
-jobconf <key=value>, <key=value>, … | 增加/覆盖作业的配置项 |
-input <path> | 输入目录 |
-output <path> | 输出目录 |
-jar<jar file> | JAR文件名 |
-inputformat <class> | InputFormat类 |
-map <class> | Java Map类 |
-partitioner <class> | Java Partitioner |
-reduce <class> | Java Reduce类 |
-write <class> | Java RecordWriter |
-program <executable> | 可执行程序的URI |
-reduces <num> | Reduce个数 |