Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集

本示例说明如何使用Pentaho MapReduce把细节数据转换和汇总成一个聚合数据集。当给一个关系型数据仓库或数据集市准备待抽取的数据时,这是一个常见使用场景。我们使用格式化的web日志数据作为细节数据,并且建立一个聚合文件,包含按IP和年月分组的PV数。

关于如何使用Pentaho MapReduce把原始web日志解析成格式化的记录,参考 http://blog.csdn.net/wzy0623/article/details/51145570。

一、向HDFS导入示例数据文件
将weblogs_parse.txt文件放到HDFS的/user/grid/parse/目录下(因资源有限,本示例只取了这个文件的前100行数据)
参考: http://blog.csdn.net/wzy0623/article/details/51133760

二、建立一个用于Mapper的转换
1. 新建一个转换,如图1所示。


图1

2. 编辑'MapReduce Input'步骤,如图2所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第1张图片

图2

3. 编辑'Split Fields'步骤,如图3所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第2张图片

图3

说明:“字段”如下所示,所有字段都是String类型
client_ip
full_request_date
day
month
month_num
year
hour
minute
second
timezone
http_verb
uri
http_status_code
bytes_returned
referrer
user_agent
4. 编辑'User Defined Java Expression'步骤,如图4所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第3张图片

图4

说明:“Java Expression”列填写如下内容:
client_ip + '\t' + year + '\t' + month_num
5. 编辑'MapReduce Output'步骤,如图5所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第4张图片

图5

将转换保存为aggregate_mapper.ktr

三、建立一个用于Reducer的转换
1. 新建一个转换,如图6所示。


图6

2. 编辑'MapReduce Input'步骤,如图7所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第5张图片

图7

3. 编辑'Group by'步骤,如图8所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第6张图片

图8

4. 编辑'MapReduce Output'步骤,如图9所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第7张图片

图9

将转换保存为aggregate_reducer.ktr

四、建立一个调用MapReduce步骤的作业,使用mapper和reducer转换。
1. 新建一个作业,如图10所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第8张图片

图10

2. 编辑'Pentaho MapReduce'作业项,如图11到图14所示。


图11

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第9张图片

图12


图13


图14

说明:
. 需要编辑“Mapper”、“Reducer”、“Job Setup”和“Cluster”四个标签
. hadoop_local是已经建立好的Hadoop Clusters连接,设置如图15所示

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第10张图片

图15

建立过程参考 http://blog.csdn.net/wzy0623/article/details/51086821。

将作业保存为aggregate_mr.kjb

五、执行作业并验证输出
1. 启动hadoop集群
# 启动HDFS
$HADOOP_HOME/sbin/start-dfs.sh
# 启动yarn
$HADOOP_HOME/sbin/start-yarn.sh
# 启动historyserver
$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver

2. 执行作业,日志如图16所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第11张图片

图16

从图16可以看到,作业已经成功执行。

3. 检查Hadoop的输出文件,结果如图17所示。

Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集_第12张图片

图17


从图17可以看到,/user/grid/aggregate_mr目录下生成了名为part-00000输出文件,文件中包含按IP和年月分组的PV数。

参考:
http://wiki.pentaho.com/display/BAD/Using+Pentaho+MapReduce+to+Generate+an+Aggregate+Dataset

你可能感兴趣的:(Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集)