将流步骤添加到在 AWS EMR 5.0 上运行的 boto3 中的 MR 作业

2023-11-21

我正在尝试将用 python 编写的几个 MR 作业从 AWS EMR 2.4 迁移到 AWS EMR 5.0。到目前为止,我使用的是 boto 2.4,但它不支持 EMR 5.0,所以我正在尝试转向 boto3。早些时候,在使用 boto 2.4 时,我使用了StreamingStep模块来指定输入位置和输出位置,以及我的映射器和减速器源文件的位置。使用这个模块,我实际上不必创建或上传任何 jar 来运行我的作业。但是,我在 boto3 文档中的任何地方都找不到该模块的等效项。如何将 boto3 中的流步骤添加到我的 MR 作业中,这样我就不必上传 jar 文件来运行它?


不幸的是,boto3 和 EMR API 的文档很少。字数统计示例至少如下所示:

import boto3

emr = boto3.client('emr')

resp = emr.run_job_flow(
    Name='myjob',
    ReleaseLabel='emr-5.0.0',
    Instances={
        'InstanceGroups': [
            {'Name': 'master',
             'InstanceRole': 'MASTER',
             'InstanceType': 'c1.medium',
             'InstanceCount': 1,
             'Configurations': [
                 {'Classification': 'yarn-site',
                  'Properties': {'yarn.nodemanager.vmem-check-enabled': 'false'}}]},
            {'Name': 'core',
             'InstanceRole': 'CORE',
             'InstanceType': 'c1.medium',
             'InstanceCount': 1,
             'Configurations': [
                 {'Classification': 'yarn-site',
                  'Properties': {'yarn.nodemanager.vmem-check-enabled': 'false'}}]},
        ]},
    Steps=[
        {'Name': 'My word count example',
         'HadoopJarStep': {
             'Jar': 'command-runner.jar',
             'Args': [
                 'hadoop-streaming',
                 '-files', 's3://mybucket/wordSplitter.py#wordSplitter.py',
                 '-mapper', 'python2.7 wordSplitter.py',
                 '-input', 's3://mybucket/input/',
                 '-output', 's3://mybucket/output/',
                 '-reducer', 'aggregate']}
         }
    ],
    JobFlowRole='EMR_EC2_DefaultRole',
    ServiceRole='EMR_DefaultRole',
)

我不记得需要使用 boto 执行此操作,但我在不禁用的情况下正确运行简单的流作业时遇到了问题vmem-check-enabled.

另外,如果您的脚本位于 S3 上的某个位置,请使用以下命令下载它-files(附加#filename参数使下载的文件可用filename在集群中)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将流步骤添加到在 AWS EMR 5.0 上运行的 boto3 中的 MR 作业 的相关文章

随机推荐

  • 图像在模拟器中显示,但在 iPhone 设备上不显示

    因此 当我从设备运行应用程序时 图片就会显示出来 一切都运行良好 然而 当我转到该设备时 我运行的 38 张图片中大约有 10 张没有显示 我正在从 sqlite 数据库中提取图像的名称 并且我已经检查过 名称 大小写和所有内容都是正确的
  • 在 Django 中实现“开放时间”的任何现有解决方案

    我正在为一位希望能够更改营业时间的客户制作一个网站 对于他的每一个不同的商店 Django 是否有针对此类问题的现有解决方案 你是什 么意思 看起来很简单 根据您工作日的订单进行调整 如果您愿意 可以添加验证 但人们应该足够聪明 不需要对这
  • Django 创建自定义模型字段

    我正在尝试在 Django 中创建一个自定义字段 它将采用十进制货币值 例如 1 56 并将其作为整数 例如 156 保存在数据库中以存储货币值 这就是我到目前为止所拥有的 我已经设置了固定值来测试 class CurrencyField
  • 为什么考虑_all_requests_local 因 rspec 配置而失败

    rspec rails 2 7 0 导轨 3 0 10 邮政 Rails 3 1 错误捕获对我来说无关紧要 Code class ApplicationController lt ActionController Base unless R
  • Chrome 检查元素的奇怪问题

    When I load my page one of the images is higher than it is supposed to be When I right click Inspect element anywhere on
  • DatePicker 回发后消失

    我有一个与 jquery DatePicker 关联的 asp TextBox 此输入有一个更新文字控件的 onTextChangedEvent 所有这些代码都位于 UpdatePanel 内 因此文字控件会更改 但页面不会刷新 我面临的问
  • 最大样本

    如果我想对数字进行采样来创建向量 我会这样做 set seed 123 x lt sample 1 100 200 replace TRUE sum x 1 10228 如果我想采样 20 个总和为 100 的随机数 然后采样 30 个数字
  • Erlang 节点无法看到彼此

    我是 Erlang 新手 尝试在我的笔记本电脑上设置两个节点 在一个终端中我输入 eli elimayost erlang apps gt erl sname foo setcookie secret 在第二个终端中 eli elimayo
  • 由 gcc 检查的 printf() 包装参数

    当Cprintf 它的家族是由gcc and Wall在命令行上使用时 编译器会根据正在使用的格式字符串警告错误放置的参数 例如 下面的代码会收到一条错误消息 指出格式指定了 3 个参数 但实际上您只传递了两个 printf d d d 1
  • LLDB 在启动时似乎没有读取我的 .lldbinit 文件

    我有一个带有单个别名的文件 lldbinit command alias pi print int 但是当我从 Xcode 运行我的应用程序时 别名不起作用 但是 如果我手动输入别名 则别名确实有效 lldb pi 6 error pi i
  • 在嵌套字典 python 中搜索值

    搜索一个值并获取父字典名称 键 Dictionary dict1 part1 wbxml application vnd wap wbxml rl application resource lists xml part2 wsdl appl
  • Jenkins Kubernetes 插件无法配置 jnlp-slave pod

    我在 Ubuntu 17 04 VM 上运行 Kubernetes 1 10 0 Docker 17 03 2 ce 和 Jenkins 2 107 1 并在 Jenkins 中安装了 Kubernetes Plugin 1 5 我有另外
  • load() 函数如何允许用户提供回调?

    在 javascript 中 库 框架非常流行让我们定义用于数据后处理的回调函数 eg load 5 function element alert element name 我想知道 load 函数如何能够让用户提供回调 有这方面好的教程吗
  • 如何在 jupyter 笔记本上单独冻结单元及其输出

    使用 Jupyter 笔记本时 执行单元的输出 包括错误消息 可能很有用 所以我想freeze细胞本身及其输出 或者换句话说 失活单元以保持输出 这可行吗 这会冻结单元格 但不会冻结输出 在编辑器中打开笔记本 查找您要锁定的单元格 将以下行
  • 从字符向量创建函数列表

    提前致谢 如果这个问题之前已经得到回答 我很抱歉 我已经进行了相当广泛的研究 我有一个数据集 其中包含一行串联信息 特别是 名称 颜色代码 一些函数表达式 例如 一个值可能是 成本 FF0033 log x 6 我拥有提取信息的所有代码 最
  • 如何反转 Django 模板中的 for 循环,然后对结果进行切片

    在 Django 模板中 我迭代一组照片 并一张一张地显示它们 具体来说 现在我只有一张照片集 包含 6 个物体 我像这样显示这 6 个对象 for pic in picstream photo set all reversed img s
  • 如何在具有动态键值对的javascript中解析json? [复制]

    这个问题在这里已经有答案了 我想在 JavaScript 中解析 JSON 字符串 响应是这样的 var response 1 10 2 10 如何从这个 json 中获取每个键和值 我正在这样做 var obj parseJSON res
  • 在 php 中取消设置变量

    我刚刚通过 php 手册阅读了有关 unset 变量的内容 php手册说 unset 销毁指定的变量 这个 def 看起来很完美 直到我遇到静态变量 如果在函数内部 unset 静态变量 则 unset 仅在函数其余部分的上下文中销毁该变量
  • 我可以使用 link_to 链接图像和文本吗

    好吧 我正在使用 font awesome rails gem 我已经习惯了 Rails 之外的很棒的字体 但我想它在 Rails 社区中并不那么受欢迎 安装后 它会使用以下格式创建图标 i class nameoftheicon i 我想
  • 将流步骤添加到在 AWS EMR 5.0 上运行的 boto3 中的 MR 作业

    我正在尝试将用 python 编写的几个 MR 作业从 AWS EMR 2 4 迁移到 AWS EMR 5 0 到目前为止 我使用的是 boto 2 4 但它不支持 EMR 5 0 所以我正在尝试转向 boto3 早些时候 在使用 boto