カスタム jar を使用してストリーミング ジョブを実行するときに、 mapred.task.timeout 、 mapred.min.split.sizeなどの mapreduce構成を指定する方法を知りたいです。
ruby や python などの外部スクリプト言語を使用して実行する場合、次の方法を使用してこれらの構成を指定できます。
ruby elastic-mapreduce -j --stream --step-name "mystream" --jobconf mapred.task.timeout=0 --jobconf mapred.min.split.size=52880 --mapper s3://somepath/mapper. rb --reducer s3:somepath/reducer.rb --input s3://somepath/input --output s3://somepath/output
次の方法を試しましたが、どれもうまくいきませんでした。
ruby elastic-mapreduce --jobflow --jar s3://somepath/job.jar --arg s3://somepath/input --arg s3://somepath/output --args -m,mapred.min.split .size=52880 -m,mapred.task.timeout=0
ruby elastic-mapreduce --jobflow --jar s3://somepath/job.jar --arg s3://somepath/input --arg s3://somepath/output --args -jobconf,mapred.min.split .size=52880 -jobconf,mapred.task.timeout=0
また、EMR でカスタム jar を使用して Java オプションをストリーミング ジョブに渡す方法も知りたいです。Hadoop でローカルに実行する場合、次のように渡すことができます。
bin/hadoop jar job.jar input_path output_path -D< some_java_parameter >=< some_value >