【问题标题】:Map-Reduce input split not working as expectedMap-Reduce 输入拆分未按预期工作
【发布时间】:2018-05-05 10:53:45
【问题描述】:

我正在尝试在 hadoop2 集群中运行 hadoop 流应用程序。我正在使用以下配置来启动应用程序

hadoop jar /usr/lib/hadoop2/share/hadoop/tools/lib/hadoop-streaming.jar \
-D mapred.job.name=step01_load_delta_customer_events \
-D mapreduce.input.fileinputformat.split.minsize=134217728 \
-D mapreduce.job.reduces=10 \
-D mapreduce.map.memory.mb=4704 \
-D mapreduce.map.java.opts=-Xmx4416m \
-D stream.map.input.ignoreKey=true  \
-D mapreduce.map.output.compress=true \
-D mapreduce.output.fileoutputformat.compress=true \
-D mapreduce.output.fileoutputformat.compress.type=BLOCK \
-D mapred.max.map.failures.percent=7 \
-D mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec \
-D mapreduce.map.output.compress.codec=com.hadoop.compression.lzo.LzoCodec \
-D mapred.output.committer.class=org.apache.hadoop.mapred.DirectFileOutputCommitter \
-D mapreduce.use.directfileoutputcommitter=true \
-files <file path>  \
-mapper <mapper code in python>  \
-reducer <reduce code in python>  \
-input "$INPUT"  \
-outputformat org.apache.hadoop.mapred.TextOutputFormat  \
-output "$OUTPUT"

我的输入文件保存在 AWS S3 中,我的输入路径中有 5400 个 s3 对象。输入对象大小从 1MB 到 100MB 不等,总输入大小约为 25GB。根据我的输入拆分大小配置,我期望运行 200 个映射器任务。但是在运行应用程序时,有 5400 个映射器任务正在运行,这与我输入的 s3 对象的数量完全相同。我认为这会影响我的应用程序的性能。有人可以帮助我理解这种行为。另外在这种情况下如何控制映射器的数量?我的应用在 qubole hadoop2 集群中运行。

【问题讨论】:

    标签: python amazon-s3 mapreduce hadoop2 hadoop-streaming


    【解决方案1】:

    问题在于输入格式。我使用 combineTextInputFormat 而不是 textInputFormat 并且输入拆分工作得很好。

    【讨论】:

    • 你应该接受这个作为关闭问题的答案。
    【解决方案2】:

    我的 hadoop 流式传输作业运行缓慢,并且仅使用 2 个映射器运行。我添加了选项“-D mapreduce.input.fileinputformat.split.maxsize=33554432 -inputformat org.apache.hadoop.mapred.lib.CombineTextInputFormat”,它确实使用了许多映射器,但结果为空。输入未压缩。

    当不指定“-inputformat org.apache.hadoop.mapred.lib.CombineTextInputFormat”时,split.maxsize 不会有任何效果,它仍然只会使用 2 个映射器。

    是什么原因造成的?日志未显示有用的调试信息。

    【讨论】:

      猜你喜欢
      • 2016-05-20
      • 1970-01-01
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多