本地测试
在本地测试作业python your_mrjob_sub_class.py <log_file >output
此脚本会使用InlineMRJobRunner自动调用自身运行各个步骤。如果要更接近Hadoop,可以使用--runner=local
,这个参数不会将你当前的工作目录加到PYTHONPATH
,而是设置一些Hadoop环境变量,使用多个子处理器来处理任务。
也可以使用参数--mapper
,--reducer
来运行单一的步骤。
缺省情况下,程序从stdin读入数据,但也可以指定一个活多个输入文件。程序会自动解压缩 .gz文件和.bz2文件。
python your_mr_job_sub_class.py log_01.gz log_02.bz2 log_03
测试作业
mrjob可以在没有Hadoop的情况下运行。虽然并不高效,但是一个很好的测试方法。
Inline runner
inline runner是mrjob的默认runner(当运行Python mr_your_job.py
没有任何 -r选项时使用)。它在单个处理器上运行作业,以便于快速得到反馈并且方便调试。
多划分
inline runner不会同时运行mapper或reducer,但是在每一步中至少有两个mapper,两个reducer。这样有助于获得相关MapReduce编程模型的不好的假设。