您的位置:首页 > 运维架构 > Shell

Hadoop之MapReduce调度:通过shell进行多日期的串行跑批统计

2017-08-29 19:17 453 查看
1、统计对应链接访问量的Python脚本
由于业务上暂用不到reduce过程,所以只有一个mapper脚本。
/Users/nisj/PycharmProjects/BiDataProc/hitsCalc3/filter_mapperOnly.py
#!/usr/bin/env python
# encoding: utf-8
import sys

# 输入为标准输入stdin
for line in sys.stdin:
if '/room/m-1015.htm' in line:
print '%s' % (line)

2、按天调度的shell脚本
/Users/nisj/PycharmProjects/BiDataProc/hitsCalc3/mpBatResultGet.sh
#!/usr/bin/env bash

rm -rf result.txt
for dataDate in 2017-08-21 2017-08-22 2017-08-23 2017-08-24 2017-08-25 2017-08-26 2017-08-27 2017-08-28;
do
echo $dataDate
hadoop dfs -rm -r -skipTrash /nisj/mp_result;
hadoop jar /opt/apps/hadoop-2.7.2/share/hadoop/tools/lib/hadoop-streaming-2.7.2.jar \
-mapper /home/hadoop/nisj/hitsCalc3/filter_mapperOnly.py -file /home/hadoop/nisj/hitsCalc3/filter_mapperOnly.py \
-input /tmp/oss_access/$dataDate/*_localhost_access_log.$dataDate.*.txt \
-output /nisj/mp_result

#hadoop dfs -cat /nisj/mp_result/*
hitsNum=`hadoop dfs -cat /nisj/mp_result/* |grep -v "^$"|wc -l`
echo $dataDate '--->' $hitsNum >> result.txt
done

3、扩展
根据需要,可以按不同的链接地址、不同的日志路径及日期进行总体性动态实现;暂时这部分没有做,可能会在以后的版本中涉及和实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: