在 Amazon EMR 上运行 mrjob,不支持 t2.micro

Posted

技术标签:

【中文标题】在 Amazon EMR 上运行 mrjob,不支持 t2.micro【英文标题】:run mrjob on Amazon EMR, t2.micro not supported 【发布时间】:2015-07-31 01:39:20 【问题描述】:

我尝试在 Amazon EMR 上运行 mrjob 脚本。当我使用实例 c1.medium 时它运行良好,但是当我将实例更改为 t2.micro 时出现错误。完整的错误信息如下所示。

C:\Users\Administrator\MyIpython>python word_count.py -r emr 111.txt 使用 C:\Users\Administrator.mrjob.conf 中的配置创建新的 暂存桶 mrjob-875a948553aab9e8 使用 s3://mrjob-875a948553aab9e8/tmp/ 作为我们在 S3 上创建 tmp 的临时目录 目录 c:\users\admini~1\appdata\local\temp\word_count.Administr ator.20150731.013007.592000 将主引导脚本写入 c:\users\admini~1\appdata\local\temp\word_cou nt.Administrator.20150731.013007.592000\b.py

请注意:从 mrjob v0.5.0 开始,协议将严格 默认。建议您使用 --strict-protocols 或 按照描述设置 mrjob.conf https://pythonhosted.org/mrjob/whats-new.html#ready-for-strict-protoc ols

创建 S3 存储桶“mrjob-875a948553aab9e8”以用作暂存空间 将非输入文件复制到 s3://mrjob-875a948553aab9e8/tmp/word_count.Administ rator.20150731.013007.592000/files/ 最终等待 S3 5.0s 一致性创建 Elastic MapReduce 作业流 Traceback(最近 最后调用):文件“word_count.py”,第 16 行,在 MRWordFrequencyCount.run() 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\job.py”,第 461 行,运行中 mr_job.execute() 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\job.py”,第 479 行,在执行中 super(MRJob, self).execute() 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\launch.py​​”,第 153 行,在 执行 self.run_job() 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\launch.py​​”,第 216 行,在 运行作业 runner.run() 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\runner.py”,第 470 行,运行中 self._run() 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\emr.py”,第 881 行,在 _跑 self._launch() 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\emr.py”,第 886 行,在 _发射 self._launch_emr_job() 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\emr.py”,第 1593 行,在 _launch_emr_job persistent=False) 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\emr.py”,第 1327 行,在 _create_job_flow self._job_name, self._opts['s3_log_uri'], **args) 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\retry.py”,行 149,在调用_and_maybe_retry 返回 f(*args, **kwargs) 文件“F:\Program Files\Anaconda\lib\site-packages\mrjob\retry.py”,第 71 行,在 call_and_maybe_retry 结果 = getattr(alternative, name)(*args, **kwargs) 文件 "F:\Program Files\Anaconda\lib\site-packages\boto\emr\connection.py", 第 581 行,在 run_jobflow 中 'RunJobFlow',参数,RunJobFlowResponse,动词='POST')文件“F:\Program Files\Anaconda\lib\site-packages\boto\connection.py”,行 12 08,在 get_object raise self.ResponseError(response.status, response.reason, body) boto.exception.EmrResponseError: EmrResponseError: 400 Bad Request 发件人 ValidationError 不支持实例类型“t2.micro” c3ee1107-3723-11e5-8d8e-f1011298229d

这是我的配置文件详细信息

runners:
  emr:
    aws_access_key_id: xxxxxxxxxxx
    aws_secret_access_key: xxxxxxxxxxxxx
    aws_region: us-east-1
    ec2_key_pair: EMR
    ec2_key_pair_file: C:\Users\Administrator\EMR.pem
    ssh_tunnel_to_job_tracker: false
    ec2_instance_type: t2.micro
    num_ec2_instances: 2

【问题讨论】:

【参考方案1】:

EMR 不支持 t2 实例类型。如果您担心钱,现货实例是一个非常划算的选择:现在m1.xlarge 每小时不到 0.05 美元,m1.medium 每小时 0.01 美元(反正比t2.micro 便宜)支持的类型是以下(来自 EMR webapp 控制台的屏幕截图:

【讨论】:

以上是关于在 Amazon EMR 上运行 mrjob,不支持 t2.micro的主要内容,如果未能解决你的问题,请参考以下文章

Amazon EMR + mrjob:引导错误,“引导操作 1 返回非零返回码”

如何在 EMR 上使用 MrJob 0.4.2 设置 IAM 角色

在 emr 上运行 mrjob 脚本的 ssh 密钥无效

在 EMR 上导入 mrjob 失败

EMR [使用 MRJob] 的输入数据如何跨节点分布?

使用 python MRJob 在 EMR 上引导库