[备注]haoop streaming常用的一些命令

    偶尔还是需要使用streaming进行一些数据的统计与分析。这里做一些小笔记,便于实时的进行查询使用。

    1、.hadoop streaming运行命令

/home/work/hadoop-client/hadoop/bin/hadoopstreaming \

-Dmapred.job.name="run_shitu" \

-Dmapred.map.tasks="10000" \

-Dmapred.reduce.tasks="400" \

-Dmapred.job.priority="NORMAL" \

-input"${INPUTS}" \

-output"${OUTPUTS}" \

-mapper"python map.py" \

-reducer"python  red.py" \

-file"map.py" \

-filered.py \

-file "Filter.so" \ -----制定传入的so文件

-cacheArchive"hdfs://szwg-ecomoff-hdfs.dmop.baidu.com:54310/app/ecom/fcr/lizhixu/python.tar.gz#python"\   ---制定是使用特定目录下的运行程序。

-inputformatorg.apache.hadoop.mapred.CombineTextInputFormat \

-jobconfmapred.max.split.size="512000000"

 

 

优先级:

VERY_HIGHHIGH NORMAL LOW VERY_LOW

 

Writecounter

 

 reporter:counter:<group>,<counter>,<amount>

 

reporter:counter:<parser_shitu><parse_err>,1

 

-cacheArchive /app/ecom/cm/nova.ufs/u-wangyou/java6.tar.gz#java6 #hdfs上要分发的压缩包,解压后的文件夹名为

 

 

 

 

      -D stream.map.output.field.separator :设置map输出中keyvalue的分隔符 

     -D stream.num.map.output.key.fields   设置map程序分隔符的位置,该位置之前的部分作为key,之后的部分作为value 

     -D map.output.key.field.separator : 设置map输出中key内部的分割符

      -Dnum.key.fields.for.partition : 指定分桶时,key按照分隔符切割后,其中用于分桶key所占的列数(配合-partitionerorg.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner 使用)

      -Dstream.reduce.output.field.separator:设置reduce输出中keyvalue的分隔符 

     -D stream.num.reduce.output.key.fields:设置reduce程序分隔符的位置

 

 

 

很好的wiki

http://blog.csdn.net/jiedushi/article/details/7394705

 

stream调用so库遇到的一些问题:

http://blog.csdn.net/joeblackzqq/article/details/7405992

 

streaming的官方文档

https://cwiki.apache.org/confluence/display/Hive/Home





------------------------------------------------------------------

 

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

${HADOOP_BIN} streaming \
               
-D mapred.job.name=${JOB_NAME} \ # 任务名
               
-D stream.memory.limit=1500 \ # 任务内存限制
               
-D mapred.map.capacity.per.tasktracker=1 \
               
-D mapred.reduce.capacity.per.tasktracker=1 \
               
-D mapred.map.tasks=${MAP_TASKS} \ # map个数
               
-D mapred.job.map.capacity=${MAP_CAPACITY} \ # map容量,一般与map个数一致
               
-D mapred.reduce.tasks=${RED_TASKS} \ # reduce个数
               
-D mapred.job.reduce.capacity=${RED_CAPACITY} \ # reduce容量,一般与reduce容量一致
               
-D mapred.job.priority=${MAPRED_PRIORITY} \ # 任务优先级
               
-D mapred.userlog.retain.hours=${LOG_RETAIN_HOURS} \
               
-D stream.num.map.output.key.fields=3 \ # map的结果按前三列排序
               
-D num.key.fields.for.partition=1 \ # 第一列相同的数据分配到同一个reducer
               
-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner \
               
-input /log/1079/cpro_pblog_noah/20110814/*/pb.log* \ # 输入
               
-input /log/1079/cpro_pblog_noah/20110815/*/pb.log* \ # 输入
               
-input /log/3148/shifen_bdclk_noah/20110814/*/dcharge.bd.*.log* \ # 输入
               
-input /log/3148/shifen_bdclk_noah/20110815/*/dcharge.bd.*.log* \ # 输入
               
-output ${REDUCE_OUT} \ # 输出
               
-mapper "java6/bin/java -classpath ad_trade com.baidu.cm.ufs.Mapper testno.txt" \ # mapper程序
               
-reducer "java6/bin/java -classpath ad_trade com.baidu.cm.ufs.Reducer" \ # reducer程序
               
-file ad_trade \ # 要上传分发的文件
               
-file testno.txt \
               
-cacheArchive /app/ecom/cm/nova.ufs/u-wangyou/java6.tar.gz#java6 # hdfs上要分发的压缩包,解压后的文件夹名为java6


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值