sys.stdout.write() 在 MRJOB 映射器中去哪里?
Posted
技术标签:
【中文标题】sys.stdout.write() 在 MRJOB 映射器中去哪里?【英文标题】:Where does sys.stdout.write() go to in MRJOB mapper? 【发布时间】:2015-04-02 19:48:06 【问题描述】:mrjob.conf
runners:
emr:
aws_access_key_id: **
aws_secret_access_key: **
aws_region: us-east-1
aws_availability_zone: us-east-1a
ec2_key_pair: scrapers2
ec2_key_pair_file: ~/arachnid.pem
ec2_instance_type: c3.8xlarge
ec2_master_instance_type: c3.8xlarge
num_ec2_instances: 3
python_bin: python2.6
interpreter: python2.6
ami_version: 2.4.11
iam_job_flow_role: EMR_DefaultRole
jobconf: "mapred.task.timeout": 600000, "mapred.output.direct.NativeS3FileSystem": false
base_tmp_dir: /tmp
enable_emr_debugging: true
cmdenv:
TZ: America/New_York
s3_log_uri: s3://mrjob-lists/tmp/logs/
s3_scratch_uri: s3://mrjob-lists/tmp/
output_dir: s3://mrjob-lists/output
ssh_tunnel_is_open: true
ssh_tunnel_to_job_tracker: true
我正在使用 emr 运行作业,我的映射器任务有:
print "test"
还有
sys.stdout.write("TEst")
但是,我在 S3 的标准输出文件中找不到此输出。输出写在哪里?
【问题讨论】:
【参考方案1】:Hadoop 1 作业的映射器标准输出应出现在 /task-attempts/job_#####_##/attempt_#####_##_##/stdout.gz
下的 S3 日志中
这些推送到 S3 确实需要一些时间。如果您让集群保持运行,您可以检查 Hadoop JobTracker Web 界面,并确保它在作业执行后也出现在本地日志中。
【讨论】:
以上是关于sys.stdout.write() 在 MRJOB 映射器中去哪里?的主要内容,如果未能解决你的问题,请参考以下文章
[Python]sys.stdin.readline(), sys.stdout.write(), sys.stdin.write()
sys.stdout.write() 在 MRJOB 映射器中去哪里?