hadoop

来源:互联网 发布:董小飒淘宝店亏损 编辑:程序博客网 时间:2024/06/06 02:32
一.Hadoop Streaming用法
Usage: $HADOOP_HOME/bin/hadoop jar \
$HADOOP_HOME/contrib/streaming/hadoop-*-streaming.jar [options]
options:
(1)-input:输入文件路径
(2)-output:输出文件路径
(3)-mapper:用户自己写的mapper程序,可以是可执行文件或者脚本
(4)-reducer:用户自己写的reducer程序,可以是可执行文件或者脚本
(5)-file:打包文件到提交的作业中,可以是mapper或者reducer要用的输入文件,如配置文件,字典等。
(6)-partitioner:用户自定义的partitioner程序
          (7)-combiner:用户自定义的combiner程序(必须用java实现)
1.-D开头的都在前面
2.mapreduce中加载json模块需要python26指令
3.input中可以是文件也可以是目录
4.多文件输出
    将结果分成多个文件输出,在streaming中:
    -Dsuffix.multiple.outputformat.filesuffix=new,old \这里可自定义更改
    -Dsuffix.multiple.outputformat.separator="#" \
    -outputformat org.apache.hadoop.mapred.lib.SuffixMultipleTextOutputFormat \

    reducer里写:print“hello #old”,结果会打到文件old-r-000*
    如果输出没有\t 在后面手动加一个\t


二.hadoop查找和停止任务
1.hadoop job -list|grep hadoop_jobname
job_201706211123_1464501        1       1498015434934   hdp-map NORMAL  default hdp-map i-yanxinrui_probe16_from_hive
2.hadoop job -kill job_201706211123_1464501

三.hadoop fs 命令
hadoop fs -cat URI [URI …]   将路径指定文件的内容输出到stdout。可以是多个文件
hadoop fs -text <src>  将源文件输出为文本格式。允许的格式是zip和TextRecordInputStream。
hadoop fs -tail [-f] URI  将文件尾部1K字节的内容输出到stdout。支持-f选项,行为和Unix中一致。

hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>  复制文件到本地文件系统
hadoop fs -put <localsrc> ... <dst>   从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。

hadoop fs -cp URI [URI …] <dest> 将文件从源路径复制到目标路径(都在hdfs上)。这个命令允许有多个源路径,此时目标路径必须是一个目录。
hadoop fs -mv URI [URI …] <dest>将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
hadoop fs -du URI [URI …]    显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小
hadoop fs -ls <args>    如果是文件,则按照如下格式返回文件信息:文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID 
                                          如果是目录,则返回它直接子文件的一个列表,就像在Unix中一样。目录返回列表的信息如下 目录名 <dir> 修改日期 修改时间 权限 用户ID 组ID 
hadoop fs -rmr URI [URI …]    递归 删除指定的文件
hadoop fs -test -[ezd] URI     选项:-e 检查文件是否存在。如果存在则返回0。-z 检查文件是否是0字节。如果是则返回0。 -d 如果路径是个目录,则返回1,否则返回0。

hadoop fs -count -q /home/hdp-map   会打印出集群信息


python 对group不太兼容,可以换成python2.6