MOMOJI.故事接龙·让我们一起讲故事,做个有故事的人

hadoop执行streaming的命理是异步式的,实际是向mapred或者yarn这类任务执行框架提交了一次任务请求;可以利用oozie,azkaban等多任务管理框架来串行这些异步任务;

以step1: normalization为例,

选择oozie中的streaming组件,设置各个属性:

Mapper: python cfmr_itembased_step1_normalization_m.py

Reducer: python cfmr_itembased_step1_normalization_r.py

mapred.reduce.tasks: 3

mapred.input.dir: /user/tianfei/testdata/input/ratings_small.csv 这里可以是文件,也可以是目录

mapred.output.dir=/user/tianfei/testdata/output/step1_normalization

需要添加以上mapper,reducer两个py文件上传到hdfs,并添加到该streaming node中;

为了保证多次执行,前置一个prepare命令:清空输出路径:

delete: /user/tianfei/testdata/output/step1_normalization

另,将后续step的mapred.input.dir设置为前一个step的mapred.output.dir,即将几个step的mapreduce的数据路串接了起来;

设置完step1/2/3后,可以执行看效果了;

by 田飞 @ 2020-03-07 12:01:02
全文模式 复制地址