2015-04-02 22 views
3

mrjob.confsys.stdout.write()在MRJOB映射器中的位置?

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的stdout文件中。输出写在哪里?

回答

1

了Hadoop的1个作业映射器标准输出应该出现在S3记录下/task-attempts/job_#####_##/attempt_#####_##_##/stdout.gz

它确实需要一些时间,这些推到S3。如果让集群继续运行,则可以检查Hadoop JobTracker Web界面,并确保它在本地出现在日志中以及作业执行后。