sys.stdout.write()在MRJOB映射器中的位置是什么?

时间:2015-04-02 19:48:06

标签: python emr mrjob

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来运行这个工作,我的mapper任务有:

print "test"

以及

sys.stdout.write("TEst")

但是,我在S3上的stdout文件中找不到此输出。输出写在哪里?

1 个答案:

答案 0 :(得分:1)

Hadoop 1作业的mapper stdout应出现在/task-attempts/job_#####_##/attempt_#####_##_##/stdout.gz

下的S3日志中

这些推进S3需要一段时间。如果您使群集保持运行,您可以检查Hadoop JobTracker Web界面,并确保它在作业执行后立即显示在日志中。