美文网首页
Hadoop Streaming

Hadoop Streaming

作者: 大地瓜_ | 来源:发表于2018-09-21 16:40 被阅读0次

    参考链接:https://zhuanlan.zhihu.com/p/34903460
    https://blog.csdn.net/frankie110/article/details/38274965
    https://www.cnblogs.com/duking1991/p/6077110.html

    hadoop常用的参数总结

    -D mapred.job.priority="NORMAL"
    
    任务的优先级 `VERY_HIGH  HIGH    NORMAL     LOW    VERY_LOW`
    
    -D mapred.job.name=jobname 指定作业名称
    -D mapred.map.tasks=numofmap 每个Job运行map task的数量
    -D mapred.reduce.tasks=numofreduce 每个Job运行reduce task的数量,
    如果指定为 0,则意味着提交了一个map only的任务
    

    分隔符参数设置

    hadoop中的map-reduce是处理<key,value>这样的键值对,故指定<key,value>的分割符等参数可以分成三类:

    1、map输出时分割符

    2、分桶时的分隔符

    3、reduce输出时的分割符

    1. map输出时分割符 
    
    参数: stream.map.output.field.separator 
    
    作用: 指定map输出时的分割符 
    
    stream.num.map.output.key.fields 
    
    指定输出按照分隔符切割后,key所占有的列数 
    
    (设置map程序分隔符的位置,该位置之前的部分作为key,之后的部分作为value)
    

    Example

    input数据:  2,2,c,c,c,c 
    
    参数配置: 
    
    -mapper "cat" # map 为分布式的cat命令 
    
    -reducer ""  #reduce为空 / 
    
    -jobconf stream.map.output.field.separator=','  / 
    
    -jobconf stream.num.map.output.key.fields=2 / 
    
    即按照','逗号分隔后,取前2列作为key 
    
    output数据: 
    
    2,2     c,c,c,c  #其中key为2,2  value为c,c,c,c 
    

    2、分桶时的分隔符

    map.output.key.field.separator 
    
    指定map输出<key,value>对之后,其中key内部的分割符 
    
    num.key.fields.for.partition 
    
    指定分桶时,按照分隔符切割后,用于分桶key所占的列数 
    

    Example

    map的output数据: 2,2     c,c,c,c 
    
    参数配置: 
    -jobconf map.output.key.field.separator=',' / 
    -jobconf num.key.fields.for.partition='1'   / 
    -partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner / 
    
    output数据: 
    
    这样用于partition分桶的key就为:2 
    
    注意,这里分桶不应该用默认的HashPartitioner 
    
    -D num.key.fields.for.partition 
    
    指定分桶时,key按照分隔符切割后,其中用于分桶key所占的列数(配合-partitionerorg.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner 使用)
    
    1. reduce输出时的分割符
    这个与map类似,分别用于reduce输出时分隔符以及key占有的列数 
    
    stream.reduce.output.field.separator 
    
    stream.num.reduce.output.key.fields
    

    相关文章

      网友评论

          本文标题:Hadoop Streaming

          本文链接:https://www.haomeiwen.com/subject/gxzanftx.html