Hadoop Streaming框架学习(二)
来源:互联网 发布:软件license管理器 编辑:程序博客网 时间:2024/06/10 19:56
1.常用Streaming命令介绍
使用下面的命令运行Streaming MapReduce程序:
1:$HADOOP_HOME/bin/hadoop/hadoop streaming args
其中args是streaming参数,下面是参数列表:
-input <path>
输入数据路径
-output <path>
输出数据路径
-mapper <cmd|JavaClassName>
mapper可执行程序或Java类
-reducer <cmd|JavaClassName>
reducer可执行程序或Java类
-file <file> Optional
分发本地文件
-cacheFile <file> Optional
分发HDFS文件
-cacheArchive <file> Optional
分发HDFS压缩文件
-numReduceTasks <num> Optional
reduce任务个数
-jobconf | -D NAME=VALUE Optional
作业配置参数
-combiner <JavaClassName> Optional
Combiner Java类
-partitioner <JavaClassName> Optional
Partitioner Java类
-inputformat <JavaClassName> Optional
InputFormat Java类
-outputformat <JavaClassName> Optional
OutputFormat Java类
-inputreader <spec> Optional
InputReader配置
-cmdenv <n>=<v> Optional
传给mapper和reducer的环境变量
-mapdebug <path> Optional
mapper失败时运行的debug程序
-reducedebug <path> Optional
reducer失败时运行的debug程序
-verbose Optional
详细输出模式
2.命令参数详解
下面是对各个参数的详细说明:
l -input <path>:指定作业输入,path可以是文件或者目录,可以使用*通配符,-input选项可以使用多次指定多个文件或目录作为输入。
l -output <path>:指定作业输出目录,path必须不存在,而且执行作业的用户必须有创建该目录的权限,-output只能使用一次。
l -mapper:指定mapper可执行程序或Java类,必须指定且唯一。
l -reducer:指定reducer可执行程序或Java类,必须指定且唯一。
l -file, -cacheFile, -cacheArchive:分别用于向计算节点分发本地文件、HDFS文件和HDFS压缩文件,具体使用方法参考文件分发与打包。
l -numReduceTasks:指定reducer的个数,如果设置-numReduceTasks 0或者-reducer NONE则没有reducer程序,mapper的输出直接作为整个作业的输出。
l -jobconf | -D NAME=VALUE:指定作业参数,NAME是参数名,VALUE是参数值,可以指定的参数参考hadoop-default.xml。特别建议用-jobconf mapred.job.name='My Job Name'设置作业名,使用-jobconf mapred.job.priority=VERY_HIGH | HIGH | NORMAL | LOW | VERY_LOW设置作业优先级,使用-jobconf mapred.job.map.capacity=M设置同时最多运行M个map任务,使用-jobconf mapred.job.reduce.capacity=N设置同时最多运行N个reduce任务。常见的作业配置参数如下表所示:
mapred.job.name
作业名
mapred.job.priority
作业优先级
mapred.job.map.capacity
最多同时运行map任务数
mapred.job.reduce.capacity
最多同时运行reduce任务数
hadoop.job.ugi
作业执行权限
mapred.map.tasks
map任务个数
mapred.reduce.tasks
reduce任务个数
mapred.job.groups
作业可运行的计算节点分组
mapred.task.timeout
任务没有响应(输入输出)的最大时间
mapred.compress.map.output
map的输出是否压缩
mapred.map.output.compression.codec
map的输出压缩方式
mapred.output.compress
reduce的输出是否压缩
mapred.output.compression.codec
reduce的输出压缩方式
stream.map.output.field.separator
map输出分隔符
l -combiner:指定combiner Java类,对应的Java类文件打包成jar文件后用-file分发。
l -partitioner:指定partitioner Java类,Streaming提供了一些实用的partitioner实现,参考KeyBasedFiledPartitoner和IntHashPartitioner。
l -inputformat, -outputformat:指定inputformat和outputformat Java类,用于读取输入数据和写入输出数据,分别要实现InputFormat和OutputFormat接口。如果不指定,默认使用TextInputFormat和TextOutputFormat。
l -cmdenv NAME=VALUE:给mapper和reducer程序传递额外的环境变量,NAME是变量名,VALUE是变量值。
l -mapdebug, -reducedebug:分别指定mapper和reducer程序失败时运行的debug程序。
l -verbose:指定输出详细信息,例如分发哪些文件,实际作业配置参数值等,可以用于调试。
3.Streaming使用示例
1:# 删除原目录 由于streaming必须确保输出路径不存在
2:$hadoop fs -rmr "$outpath"
3:
4:# 执行统计
5:$hadoop streaming \
6:-input "$inpath" \# 文件输入路径
7:-output"$outpath" \# 结果输出路径
8:-mapper "$map" \# map阶段所用脚步
9:-reducer"$reduce" \# reduce阶段所用脚本
10:-file "$map" \# 将客户端本地分拣分发到计算节点
11:-file"$reduce" \
12:-jobconf mapred.job.name="test_task" \# 任务名称
13:-jobconf stream.num.map.output.key.fields=1 \
14:-jobconf mapred.job.priority=HIGH \# 作业优先级
15:-jobconf mapred.job.map.capacity=100 \# 同时运行的map数
16:-jobconf mapred.job.reduce.capacity=10 \# 同时运行的reduce数
17:-jobconf mapred.map.tasks=2000 \# map的个数
18:-jobconf mapred.reduce.tasks=10# reduce的格式
19:
20:exit $?
阅读全文
0 0
- Hadoop Streaming框架学习(二)
- Hadoop&&Streaming框架学习
- Hadoop Streaming框架学习
- Hadoop Streaming框架学习(一)
- Hadoop Streaming框架使用(三)
- Hadoop Streaming框架使用(一)
- Hadoop Streaming框架使用
- Hadoop Streaming框架使用
- Hadoop 实战之Streaming(二)
- Hadoop 实战之Streaming(二)
- 云计算(二十)-Hadoop Streaming
- 【hadoop】Hadoop学习笔记(四):Hadoop中的streaming
- hadoop的Streaming学习(续)
- Hadoop的Streaming学习
- hadoop-Streaming学习
- hadoop streaming 学习笔记
- Hadoop学习笔记(四):Hadoop中的streaming
- hadoop学习;Streaming,aggregate;combiner
- Codeforces Round #439 C The Intriguing Obsession(dp)
- ConvertView和ViewHolder的个人理解
- Hadoop Streaming框架学习(一)
- Oracle 安装 与 卸载 以及 使用 plsqldev
- ionic中实现从相册中选择图片并一次上传多张图片
- Hadoop Streaming框架学习(二)
- jquery live方法,解决jquery动态添加按钮无法触发点击事件的问题
- 使用新浪云SAE建立一个公网可访问的网页应用
- 第十一章 img特征 vertical-align cursor opactiy
- Codeforces Round #364 (Div. 2) F. Break Up(割边)
- 谁考了第k名
- 逻辑回归模型(Logistic Regression, LR)基础
- 双系统/虚拟机安装实践记录
- JZOJ 5398. 【NOIP2017提高A组模拟10.7】Adore