API 调用的常见概念 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

API 调用的常见概念

如果编写调用 Amazon EMR API 的应用程序,在调用 SDK 的包装函数之一时需要了解几个概念。

Amazon EMR 的终端节点

终端节点是作为 Web 服务入口点的 URL。每个 Web 服务请求都必须包含一个终端节点。终端节点指定了创建、描述或终止集群所在的Amazon区域。其形式是 elasticmapreduce.regionname.amazonaws.com。如果您指定了通用终端节点(elasticmapreduce.amazonaws.com),Amazon EMR 会将您的请求转至默认区域的终端节点。对于 2013 年 3 月 8 日或之后创建的账户而言,默认区域是 us-west-2;对于较早的账户而言,默认区域是 us-east-1。

有关 Amazon EMR 的终端节点的更多信息,请参阅《Amazon Web Services 一般参考》中的区域和终端节点

在 Amazon EMR 中指定集群参数

Instances 参数可让您配置 EC2 实例的类型和数量,以创建用于处理数据的节点。Hadoop 将数据的处理分布到多个集群节点。主节点负责跟踪核心和任务节点的运行状况并轮询节点的作业结果状态。核心和任务节点执行实际的数据处理。如果有一个单节点集群,则该节点同时用作主节点和核心节点。

KeepJobAlive 请求中的 RunJobFlow 参数用于确定在集群步骤执行完毕时是否终止该集群。当您知道该集群按预期运行时,将该值设置为 False。当您在集群执行暂停期间排除任务流程故障和添加步骤时,将该值设置为 True。这样可以减少向 Amazon Simple Storage Service(Amazon S3)上传结果的时间和费用,只需在修改重新启动此集群的步骤后重复该流程即可。

如果 KeepJobAlivetrue,在成功地让集群完成其工作后,您必须发送一个 TerminateJobFlows 请求,或让集群继续运行并生成Amazon费用。

有关 RunJobFlow 所独有的参数的更多信息,请参见 RunJobFlow。有关该请求中通用参数的更多信息,请参见通用请求参数

Amazon EMR 中的可用区

Amazon EMR 将 EC2 实例作为处理集群的节点。这些 EC2 实例的位置由可用区和区域组成。区域分散存在,位于独立的地理区域。可用区是在一个区域内的不同位置,与其他可用区的故障隔离。每个可用区向同一区域中的其他可用区提供低成本、低延迟的网络连接。有关 Amazon EMR 的区域和终端节点的列表,请参阅《Amazon Web Services 一般参考》中的区域和终端节点

AvailabilityZone 参数指定集群的一般位置。此参数是可选的,一般而言,我们不鼓励使用该参数。未指定 AvailabilityZone 时,Amazon EMR 为集群自动挑选最佳的 AvailabilityZone 值。如果想让您的实例和其他运行中的现有实例处于同一位置,而您的集群需要从那些实例中读取数据或写入数据,您可能会发现这个参数很有用。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》

如何在 Amazon EMR 集群中使用其他文件和库

有些时候,您可能喜欢通过您的映射器或 Reducer 应用程序使用其他文件或自定义库。例如,您可能喜欢使用把 PDF 文件转换成纯文本的库。

Hadoop 流式处理时缓存文件供映射器或 Reducer 使用

  • 在 JAR args 字段中,添加以下参数:

    -cacheFile s3://bucket/path_to_executable#local_path

    文件 local_path 在映射器的工作目录中,映射器可以引用这个文件。