2015-04-02 50 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界面,並確保它在本地出現在日誌中以及作業執行後。