[备注]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输出中key和value的分隔符
-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输出中key和value的分隔符
-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
---------------------
作者:frankie110
来源:CSDN
原文:https://blog.csdn.net/frankie110/article/details/38274965
版权声明:本文为博主原创文章,转载请附上博文链接!

浙公网安备 33010602011771号