• Hadoop命令手册


    Hadoop 命令手册

     

    1、 用户命令

     

    1.1       archive

    1.1.1         什么是Hadooparchives

    Hadoop的归档文件,每一个文件以块方式存储。块的元数据存储在名称节点的内存里,此时存储一些小的文件,HDFS会较低效。因此。大量的小文件会耗尽名称节点的大部分内存。(注意。相较于存储文件原始内容所须要的磁盘空间,小文件所须要的空间不会很多其它。

    比如,一个1 MB的文件以大小为128 MB的块存储,使用的是1 MB的磁盘空间,而不是128 MB。)

    Hadoop Archives或HAR文件。是一个更高效的将文件放入HDFS块中的文件存档设备,在降低名称节点内存使用的同一时候。仍然同意对文件进行透明的訪问。

    详细说来,Hadoop Archives能够被用作MapReduce的输入。

    1.1.2         怎样使用archive

    Hadoop Archives通过使用archive工具依据一个文件集合创建而来。

    这些工具执行一个MapReduce作业来并行处理输入文件,因此我们须要一个MapReduce集群去执行使用它。HDFS中有一些我们希望归档的文件:

    <p>% hadoop fs -lsr /my/files  </p><p>-rw-r--r--    1 tom supergroup      1 2009-04-09 19:13 /my/files/a </p><p>drwxr-xr-x   - tom supergroup      0 2009-04-09 19:13 /my/files/dir 
    </p><p>-rw-r--r--    1 tom supergroup      1 2009-04-09 19:13 /my/files/dir/b
    </p>


    如今我们能够执行archive指令:

    % hadoop archive -archiveName files.har /my/files /my 

    第一个选项是归档文件名,这里是file.har。HAR文件总是有一个.har扩展名。这是必需的,详细理由见后文描写叙述。

    接下来把文件放入归档文件。

    这里我们仅仅归档一个源树,即HDFS下/my/files中的文件,但其实,该工具接受多个源树。最后一个參数是HAR文件的输出文件夹。

    让我们看看这个归档文件是怎么创建的:

    % hadoop fs -ls /my  
    Found 2 items  
    drwxr-xr-x    - tom supergroup      0 2009-04-09 
    19:13 /my/files  
    drwxr-xr-x    - tom supergroup      0 2009-04-09 
    19:13 /my/files.har  
    % hadoop fs -ls /my/files.har  
    Found 3 items  
    -rw-r--r--    10 tom supergroup    165 2009-04-09
    19:13 /my/files.har/_index  
    -rw-r--r--    10 tom supergroup     23 2009-04-09
    19:13 /my/files.har/_masterindex  
    -rw-r--r--     1 tom supergroup      2 2009-04-09
    19:13 /my/files.har/part-0 
    

    这个文件夹列表展示了一个HAR文件的组成部分:两个索引文件和部分文件的集合(本例中仅仅有一个)。这些部分文件包括已经链接在一起的大量原始文件的内容。而且索引使我们能够查找那些包括归档文件的部分文件,包括它的起始点和长度。但全部这些细节对于使用har URI方案与HAR文件交互的应用都是隐藏的,HAR文件系统是建立在基础文件系统上的(本例中是HDFS)。下面命令以递归方式列出了归档文件里的文件:

    % hadoop fs -lsr har:///my/files.har  
    drw-r--r--    - tom supergroup       0 2009-04-09
    19:13 /my/files.har/my  
    drw-r--r--    - tom supergroup       0 2009-04-09 
    19:13 /my/files.har/my/files  
    -rw-r--r--   10 tom supergroup       1 2009-04-09 
    19:13 /my/files.har/my/files/a  
    drw-r--r--    - tom supergroup       0 2009-04-09 
    19:13 /my/files.har/my/files/dir  
    -rw-r--r--   10 tom supergroup       1 2009-04-09 
    19:13 /my/files.har/my/files/dir/b 
    

    假设HAR文件所在的文件系统是默认的文件系统。这就很直观易懂。

    但假设想使用在其它文件系统中的HAR文件。就须要使用一个不同于正常情况的URI路径格式。

    下面两个指令作用同样,比如:

    % hadoop fs -lsr har:///my/files.har/my/files/dir  
    % hadoop fs -lsr har://hdfs-localhost:8020/my/files.har/my/files/dir 
    


    注意第二个格式,仍以har方案表示一个HAR文件系统,可是是由hdfs指定基础的文件系统方案,后面加上一个横杠和HDFS host(localhost)和port(8020)。我们如今算是明确为什么HAR文件必需要有.har扩展名了。通过查看权限和路径及.har扩展名的组成,HAR文件系统将har URI转换成为一个基础文件系统的URI。在本例中是hdfs://localhost:8020/user/tom/files.har。

    路径的剩余部 分是文件在归档文件里的路径:/user/tom/files/dir。

    要想删除一个HAR文件,须要使用删除的递归格式。由于对于基础文件系统来说,HAR文件是一个文件夹。

    % hadoop fs -rmr /my/files.har 


    1.2       Distcp

    递归地复制文件或文件夹。

    參考http://hadoop.apache.org/docs/r1.0.4/cn/distcp.html

    1.3       fs

    1.3.1         cat

    查看hadoop某一个文件内容

    [hadoop@hmaster input]$ hadoop fs -cat /user/hadoop/input/example1/file2
    2012-3-1 b
    2012-3-2 a
    2012-3-3 b
    

    1.3.2         chgrp

    改变文件所属的组

    [hadoop@hmaster input]$ 
    hadoop fs -chgrp hadoop /user/hadoop/input/example1/file2

    1.3.3         chmod

    改动文件的权限

    [hadoop@hmaster input]$
    hadoop fs -chmod -R 667 /user/hadoop/input/example1/file2
    

    1.3.4         chown

    改动文件的所属用户和所属组

    [hadoop@hmaster input]$
    hadoop fs -chown hadoop:hadoop/user/hadoop/input/example1/file2

    1.3.5         copyFromLocal

    将本地文件拷贝到HDFS中

    [hadoop@hmaster input]$
    hadoop fs -copyFromLocal empty.txt/user/hadoop/input/example1/empty.txt

    1.3.6         copyToLocal

    将HDFS中的文件拷贝到本地

    [hadoop@hmaster input]$ 
    hadoop fs -copyToLocal
    /user/hadoop/input/example1/file1 /home/hadoop/file1
    

    1.3.7         du

    显示全部文件大小或一个文件大小

    [hadoop@hmaster input]$
    hadoop fs –du /user/hadoop/input/example1/file1
    

    1.3.8         dus

    显示目录大小

    [hadoop@hmaster input]$
    hadoop fs –dus /user/hadoop/input/example1/file1

    1.3.9         expunge

    清空回收站

    [hadoop@hmaster input]$
    hadoop fs –expunge

    1.3.10      get

    拷贝文件到本地文件系统, 可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项拷贝文件以及CRC信息

    [hadoop@hmaster input]$ 
    hadoop fs –get
    /user/hadoop/input/example1/file1 /home/hadoop/file1<a target=_blank target="_blank" name="OLE_LINK18"></a>

    1.3.11      getmerge

    用法:hadoop fs -getmerge <src> <localdst> [addnl]

    接受一个源文件夹和一个目标文件作为输入,而且将源文件夹中全部的文件连接成本地目标文件。

    addnl是可选的,用于指定在每一个文件结尾加入一个换行符。

    [hadoop@hmaster input]$
    Hadoop fs -getmerge
    /user/hadoop/input/example1/ /home/hadoop/view.txt
    

    1.3.12      ls

    用法:hadoop fs -ls <args>

    假设是文件,则依照例如以下格式返回文件信息:
    文件名称 <副本数> 文件大小改动日期 改动时间 权限 用户ID 组ID
    假设是文件夹。则返回它直接子文件的一个列表。就像在Unix中一样。文件夹返回列表的信息例如以下:
    文件夹名 <dir> 改动日期改动时间 权限 用户ID 组ID

    [hadoop@hmaster input]$
    Hadoop fs –ls /user/hadoop/input/example1/file1
    

    1.3.13      lsr

    用法:hadoop fs -lsr <args>
    ls命令的递归版本号。

    类似于Unix中的ls -R。

    [hadoop@hmaster input]$
    hadoop fs –lsr /user/hadoop/input/

    1.3.14      mkdir

    用法:hadoop fs -mkdir <paths>

    接受路径指定的uri作为參数,创建这些文件夹。其行为类似于Unix的mkdir -p。它会创建路径中的各级父文件夹。

    [hadoop@hmaster input]$
    hadoop fs –mkdir /user/hadoop/input/testdir/testfold/

    1.3.15      moveFromLocal

    和copyFromLocal一样的意思,将本地文件拷贝到HDFS中

    [hadoop@hmaster input]$
    hadoop fs –moveFromLocal local.txt /user/hadoop/input/example/
    

    1.3.16      mv

    用法:hadoop fs -mv URI [URI …] <dest>

    将文件从源路径移动到目标路径。这个命令同意有多个源路径,此时目标路径必须是一个文件夹。不同意在不同的文件系统间移动文件。

    [hadoop@hmaster input]$
    hadoop fs –mv 
    /user/hadoop/input/example1/file1 /user/hadoop/input/example2/file1
    

    1.3.17      put

    用法:hadoop fs -put <localsrc> ... <dst>

    从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。

    [hadoop@hmaster input]$
    hadoop fs -put localfile /user/hadoop/hadoopfile
    

    1.3.18      rm

    用法:hadoop fs -rm URI [URI …]

    删除指定的文件。仅仅删除非空文件夹和文件。

    [hadoop@hmaster input]$
    hadoop fs -rm localfile /user/hadoop/hadoopfile
    

    1.3.19      rmr

    用法:hadoop fs -rmr URI [URI …]

    delete的递归版本号。

    [hadoop@hmaster input]$
    hadoop fs -rmr /user/hadoop/dir
    

    1.3.20      setrep

    用法:hadoop fs -setrep [-R] <path>

    改变一个文件的副本系数。-R选项用于递归改变文件夹下全部文件的副本系数。

    [hadoop@hmaster input]$
    hadoop fs –setrep –w 3 –R /user/hadoop/input/example1
    

    1.3.21      stat

    用法:hadoop fs -stat URI [URI …]

    返回指定路径的统计信息。

    返回该目录或者文件的创建时间

    [hadoop@hmaster input]$
    hadoop fs –stat /user/hadoop/input/example1
    

    1.3.22      tail

    用法:hadoop fs -tail [-f] URI

    将文件尾部1K字节的内容输出到stdout。支持-f选项(动态监控文件增长数据),行为和Unix中一致。

    [hadoop@hmaster input]$
    hadoop fs –tail /user/hadoop/input/example1/file1
    

    1.3.23      test

    用法:hadoop fs -test -[ezd] URI

    选项:
    -e 检查文件是否存在。

    假设存在则返回0。


    -z 检查文件是否是0字节。假设是则返回0。
    -d 假设路径是个文件夹,则返回1,否则返回0。

    [hadoop@hmaster input]$
    hadoop fs –test –e /user/hadoop/input/example1/file1
    hadoop fs –test –z /user/hadoop/input/example1/file1
    hadoop fs –test –d /user/hadoop/input/example1/file1
    

    1.3.24      text

    用法:hadoop fs -text <src>

    将源文件输出为文本格式。同意的格式是zip和TextRecordInputStream。

    [hadoop@hmaster input]$

    hadoop fs –text /user/hadoop/input/example1/file1.zip

     

    1.3.25      touchz

    用法:hadoop fs -touchz URI [URI …]

    创建一个0字节的空文件。

    [hadoop@hmaster input]$
    hadoop fs –text /user/hadoop/input/example1/file1.zip
    

    1.4       fsck

    Usage: DFSck <path> [-move | -delete | -openforwrite][-files [-blocks [-locations | -racks]]]      

          <path>            检查这个文件夹中的文件是否完整
    
           -move              破损的文件移至/lost+found文件夹
           -delete            删除破损的文件
    
           -openforwrite   打印正在打开写操作的文件
    
           -files                打印正在check的文件名称
    
           -blocks             打印block报告 (须要和-files參数一起使用)
    
           -locations         打印每一个block的位置信息(须要和-files參数一起使用)
    
           -racks               打印位置信息的网络拓扑图 (须要和-files參数一起使用)


     

    1.5       jar

    执行jar文件。

    用户能够把他们的Map Reduce代码捆绑到jar文件里,使用这个命令执行。

    使用方法:hadoop jar <jar> [mainClass] args...

    [hadoop@hmaster input]$
    hadoop jar /usr/joe/wordcount.jarorg.myorg.WordCount
    /usr/joe/wordcount/input  /usr/joe/wordcount/output

    1.6       job

    用于和Map Reduce作业交互和命令。

    使用方法:hadoop job [GENERIC_OPTIONS] [-submit<job-file>] | [-status <job-id>] | [-counter <job-id><group-name> <counter-name>] | [-kill <job-id>] | [-events <job-id><from-event-#> <#-of-events>] | [-history [all]<jobOutputDir>] | [-list [all]] | [-kill-task <task-id>] |[-fail-task <task-id>]


    命令选项

    描写叙述

    -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 all显示全部作业。-list仅仅显示将要完毕的作业。

    -kill-task <task-id>

    杀死任务。被杀死的任务不会不利于失败尝试。

    -fail-task <task-id>

    使任务失败。被失败的任务会对失败尝试不利。

     

    1.7       pipes

    执行pipes作业。

    使用方法:hadoop pipes [-conf <path>] [-jobconf <key=value>,<key=value>, ...] [-input <path>] [-output <path>] [-jar <jarfile>] [-inputformat <class>] [-map <class>] [-partitioner<class>] [-reduce <class>] [-writer <class>] [-program<executable>] [-reduces <num>]

    命令选项

    描写叙述

    -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类

    -writer <class>

    Java RecordWriter

    -program <executable>

    可运行程序的URI

    -reduces <num>

    reduce个数

     

    1.8       version

    打印版本号信息。

    使用方法:hadoop version

     

    1.9       CLASSNAME

    hadoop脚本可用于调调用不论什么类。

    使用方法:hadoop CLASSNAME

    执行名字为CLASSNAME的类。

     

    2、 管理命令

    2.1   Balancer

    执行集群平衡工具。管理员能够简单的按Ctrl-C来停止平衡过程

    使用方法:hadoop balancer [-threshold <threshold>]

    命令选项

    描写叙述

    -threshold<threshold>

    磁盘容量的百分比。这会覆盖缺省的阀值。

    2.2   Daemonlog

    获取或设置每一个守护进程的日志级别。

    使用方法:hadoop daemonlog -getlevel <host:port> <name>
    使用方法:hadoop daemonlog -setlevel <host:port> <name><level>

    命令选项

    描写叙述

    -getlevel <host:port> <name>

    打印执行在<host:port>的守护进程的日志级别。这个命令内部会连接http://<host:port>/logLevel?log=<name>

    -setlevel <host:port> <name> <level>

    设置执行在<host:port>的守护进程的日志级别。

    这个命令内部会连接http://<host:port>/logLevel?log=<name>

     

    2.3    datanode

    执行一个HDFS的datanode。

    使用方法:hadoop datanode [-rollback]

    选项

    描写叙述

    -rollback

    将datanode回滚到前一个版本号。这须要在停止datanode,分发老的hadoop版本号之后使用。

     

    2.4   dfsadmin

    执行一个HDFS的dfsadminclient。

    使用方法:hadoop dfsadmin [GENERIC_OPTIONS] [-report][-safemode enter | leave | get | wait] [-refreshNodes] [-finalizeUpgrade][-upgradeProgress status | details | force] [-metasave filename] [-setQuota<quota> <dirname>...<dirname>] [-clrQuota<dirname>...<dirname>] [-help [cmd]]

    命令选项

    描写叙述

    -report

    报告文件系统的基本信息和统计信息。

    -safemode enter | leave | get | wait

    安全模式维护命令。安全模式是Namenode的一个状态。这样的状态下,Namenode
    1. 不接受对名字空间的更改(仅仅读)
    2. 不复制或删除块
    Namenode会在启动时自己主动进入安全模式,当配置的块最小百分比数满足最小的副本数条件时,会自己主动离开安全模式。安全模式能够手动进入。可是这种话也必须手动关闭安全模式。

    -refreshNodes

    又一次读取hosts和exclude文件,更新同意连到Namenode的或那些须要退出或入编的Datanode的集合。

    -finalizeUpgrade

    终结HDFS的升级操作。Datanode删除前一个版本号的工作文件夹。之后Namenode也这样做。这个操作完结整个升级过程。

    -upgradeProgress status | details | force

    请求当前系统的升级状态,状态的细节,或者强制升级操作进行。

    -metasave filename

    保存Namenode的主要数据结构到hadoop.log.dir属性指定的文件夹下的<filename>文件。对于以下的每一项,<filename>中都会一行内容与之相应
    1. Namenode收到的Datanode的心跳信号
    2. 等待被复制的块
    3. 正在被复制的块
    4. 等待被删除的块

    -setQuota <quota> <dirname>...<dirname>

    为每一个文件夹 <dirname>设定配额<quota>。

    文件夹配额是一个长整型整数,强制限定了文件夹树下的名字个数。
    命令会在这个文件夹上工作良好,下面情况会报错:
    1. N不是一个正整数,或者
    2. 用户不是管理员。或者
    3. 这个文件夹不存在或是文件,或者
    4. 文件夹会立即超出新设定的配额。

    -clrQuota <dirname>...<dirname>

    为每个文件夹<dirname>清除配额设定。
    命令会在这个文件夹上工作良好,下面情况会报错:
    1. 这个文件夹不存在或是文件,或者
    2. 用户不是管理员。
    假设文件夹原来没有配额不会报错。

    -help [cmd]

    显示给定命令的帮助信息,假设没有给定命令,则显示全部命令的帮助信息。

     

    2.5   Jobtracker

    执行MapReduce job Tracker节点。

    使用方法:hadoop jobtracker

     

    2.6   Namenode

    执行namenode。有关升级,回滚。

    使用方法:hadoop namenode [-format] | [-upgrade] | [-rollback] | [-finalize] |[-importCheckpoint]

    命令选项

    描写叙述

    -format

    格式化namenode。

    它启动namenode。格式化namenode。之后关闭namenode。

    -upgrade

    分发新版本号的hadoop后,namenode应以upgrade选项启动。

    -rollback

    将namenode回滚到前一版本号。这个选项要在停止集群,分发老的hadoop版本号后使用。

    -finalize

    finalize会删除文件系统的前一状态。近期的升级会被持久化。rollback选项将再不可用,升级终结操作之后。它会停掉namenode。

    -importCheckpoint

    从检查点文件夹装载镜像并保存到当前检查点文件夹,检查点文件夹由fs.checkpoint.dir指定。

     

    2.7   secondarynamenode

    执行HDFS的secondary namenode。參考SecondaryNamenode了解很多其它。

    使用方法:hadoop secondarynamenode [-checkpoint [force]] | [-geteditsize]

    命令选项

    描写叙述

    -checkpoint [force]

    假设EditLog的大小 >= fs.checkpoint.size,启动Secondary namenode的检查点过程。

    假设使用了-force,将不考虑EditLog的大小。

    -geteditsize

    打印EditLog大小。

     

    2.8   tasktracker

    执行MapReduce的task Tracker节点。

    说明:hadoop tasktracker

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    System.Xml.XmlException: There is no Unicode byte order mark. Cannot switch to Unicode.
    ClientSide Cookie Management optanoncategoryC0004
    How is OAuth 2 different from OAuth 1?
    Why OAuth 1.0a?
    Converting PKCS#12 certificate into PEM using OpenSSL
    OneTrust Cookie AutoBlocking™
    Ruby on rails开发从头来(windows)(二十二)测试Controller
    Ruby on rails开发从头来(windows)(十九)测试开始
    Ruby on rails开发从头来(windows)(十五)添加用户
    Ruby on rails开发从头来(windows)(十六)登录
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4865686.html
Copyright © 2020-2023  润新知