Amazon S3要求

集群EMR批处理和集群批处理模式管道可以处理来自Amazon S3的数据。

从Amazon S3读取的集群管道的要求取决于以下批处理模式:

集群EMR批处理模式
集群EMR批处理模式管道使用Hadoop FS源,并在Amazon EMR集群上运行以处理来自Amazon S3的数据。集群EMR批处理模式管道需要具有Hadoop的受支持版本的Amazon EMR集群。有关受支持的Amazon EMR和Hadoop版本的列表,请参阅Available Stage Libraries。
集群批处理模式
集群批处理模式管道使用Hadoop FS源,并在Hadoop(CDH)或Hortonworks Data Platform(HDP)集群的Cloudera发行版上运行,以处理来自Amazon S3的数据。从HDFS读取的群集模式管道需要CDH或HDP的受支持版本。有关受支持的CDH或HDP版本的列表,请参见Available Stage Libraries。

为Amazon S3配置集群EMR批处理模式

集群EMR批处理模式管道在Amazon EMR集群上运行,以处理来自Amazon S3的数据。

集群EMR批处理模式管道可以在管道启动时配置的现有Amazon EMR集群或新的EMR集群上运行。设置新的EMR群集时,可以配置群集是保持活动状态还是在管道停止时终止。

可以将Data Collector安装在现有Amazon EMR集群中的网关节点上。或者,它可以安装在EMR群集之外——在本地计算机上或在另一个Amazon EC2实例上。无论Data Collector的安装位置如何,您都可能需要修改Amazon EMR安全组,以允许 Data Collector访问EMR集群中的主节点。安全组控制对EMR集群实例的入站和出站访问。有关为Amazon EMR集群配置安全组的信息,请参阅Amazon EMR文档。

只要从Amazon EMR集群到处理器或目标端使用的任何外部系统的网络连接正确配置,集群EMR批处理管道就支持集群管道中支持的所有处理器和目标端。例如,如果您在集群EMR批处理管道中包括JDBC Lookup处理器,则必须确保Amazon EMR集群可以连接到数据库。

注意:集群EMR批处理模式管道目前不支持Kerberos身份验证。

完成以下步骤,配置集群EMR批处理模式管道以从Amazon S3读取:

  1. 在Amazon EMR中,修改EMR集群使用的主安全组,以允许Data Collector访问集群中的主节点。
    有关为EMR集群配置安全组的信息,请参阅Amazon EMR文档。
  2. 在管道属性的“General选项卡上,将“Execution Mode属性设置为“Cluster EMR Batch
  3. 在管道的“Cluster选项卡上,配置以下属性:
    集群属性 描述
    Worker Java Options 管道的其他Java属性。用空格分隔属性。

    默认情况下设置以下属性。

    • XX:+UseConcMarkSweepGC和XX:+UseParNewGC设置为并发标记扫描(CMS)垃圾收集器。
    • Dlog4j.debug启用log4j的调试日志记录。

    不建议更改默认属性。

    您可以添加任何有效的Java属性。

    Log Level 管道在Amazon EMR集群上运行时使用的日志级别。默认值为INFO严重级别。
    Worker Memory (MB) 分配给集群中每个Data Collector Worker的最大内存量。

    默认值为1024 MB。

  4. 在管道的“EMR”选项卡上,配置以下属性:
    EMR属性 描述
    Region 包含EMR集群的AWS区域。

    如果该区域未显示在列表中,请选择“Custom,然后输入AWS区域的名称。

    AWS Access Key AWS访问密钥ID。
    AWS Secret Key AWS秘密访问密钥。

    管道使用访问密钥对将凭证传递到Amazon Web Services以连接到EMR集群。

    提示:为了保护敏感信息(例如访问密钥对)的安全,可以使用运行时资源或凭据存储。
    S3 Staging URI Amazon S3中的临时暂存位置,用于存储运行管道所需的资源和配置文件。管道停止时,Data Collector将从文件夹中删除内容。

    每个管道的位置必须唯一。使用以下格式:

    s3://<bucket>/<path>

    该存储桶必须存在。如果指定路径中的文件夹不存在,则会创建该文件夹。

    Provision a New Cluster 管道启动时置备新的EMR群集。
    Cluster ID 现有EMR群集的ID。
  5. 如果选择配置新的EMR群集,请在管道的“EMR”选项卡上配置以下属性。

    有关配置EMR集群所需属性的更多信息,请参阅Amazon EMR文档。

    EMR属性以配置新集群 描述
    Cluster Name Prefix 预置的EMR集群名称的前缀。

    Data Collector ID和管道ID如下所示附加到前缀:

    <prefix>::<sdc ID>::<pipeline ID>
    Terminate Cluster 当管道停止时终止集群。

    清除后,当管道停止时,群集将保持活动状态。

    Logging Enabled 启用登录集群。

    启用日志记录后,Amazon EMR会将集群日志文件写入您指定的Amazon S3位置。

    S3 Log URI 集群在Amazon S3中写入日志数据的位置。

    每个管道的位置必须唯一。使用以下格式:

    s3://<bucket>/<path>

    该存储桶必须存在。如果指定路径中的文件夹不存在,则会创建该文件夹。

    Enable Debugging 在集群上启用调试。

    启用调试后,您可以使用Amazon EMR控制台查看集群日志文件。

    Service Role 集群在配置资源和执行其他服务级别任务时使用的EMR角色。

    默认值为EMR_DefaultRole。有关为Amazon EMR配置角色的更多信息,请参阅Amazon EMR文档

    Job Flow Role 集群内EC2实例使用的EC2的EMR角色。

    默认值为EMR_EC2_DefaultRole。有关为Amazon EMR配置角色的更多信息,请参阅Amazon EMR文档

    Visible to All Users 确定您帐户下的所有AWS Identity and Access Management(IAM)用户是否可以访问群集。
    EC2 Subnet ID 用于启动集群的EC2子网标识符。
    Master Security Group 集群中主节点的安全组ID。

    重要说明:验证主安全组是否允许Data Collector访问EMR群集中的主节点。有关为EMR集群配置安全组的信息,请参阅Amazon EMR文档
    Slave Security Group 集群中从节点的安全组ID。
    Instance Count 要初始化的Amazon EC2实例数。每个实例对应于EMR群集中的一个从属节点。
    Master Instance Type 为EMR集群中的主节点初始化的Amazon EC2实例类型。

    如果实例类型未显示在列表中,请选择“Custom,然后输入实例类型。

    Slave Instance Type 已为EMR集群中的从属节点初始化Amazon EC2实例类型。

    如果实例类型未显示在列表中,请选择“Custom,然后输入实例类型。

  6. 在管道中,将Hadoop FS源用于集群EMR批处理模式。
  7. 在源端的“General选项卡上,为集群EMR批处理模式选择适当的EMR阶段库。
  8. 在源端的“Hadoop FS”选项卡上,配置Hadoop FS URI属性以指向要读取的Amazon S3存储桶。

    使用以下格式: s3a://<bucket>

    例如:s3a://WebServer

    然后在Input Paths属性中,输入要在该Amazon S3存储桶中读取的数据的完整路径。您可以为“Input Paths”属性输入多个路径,例如:

    • 输入路径1- /2016/February
    • 输入路径2- /2016/March

    有关更多信息,请参阅从Amazon S3读取。

  9. 在源端的“S3”选项卡上,输入与在管道的EMR选项卡上输入的访问密钥对相同的访问密钥对。

    源使用访问密钥对将凭证传递到Amazon Web Services以从Amazon S3读取。

    提示:为了保护敏感信息(例如访问密钥对)的安全,可以使用运行时资源或凭据存储。

为Amazon S3配置集群批处理模式

集群批处理模式管道在Hadoop(CDH)或Hortonworks Data Platform(HDP)集群的Cloudera发行版上运行,以处理来自Amazon S3的数据。

完成以下步骤,配置集群批处理模式管道以从Amazon S3读取:

  1. 验证HDFS和YARN的安装。
  2. 在YARN网关节点上安装Data Collector
  3. 授予用户环境变量中定义的用户对/user/$SDC_USER的写许可权 。
    用户环境变量定义用于将Data Collector作为服务运行的系统用户。定义用户环境变量的文件取决于您的操作系统。有关更多信息,请参见服务启动的用户和组。
    例如,假设用户环境变量定义为sdc,并且群集不使用Kerberos。然后,您可以使用以下命令创建目录并配置必要的写权限:

    $sudo -u hdfs hadoop fs -mkdir /user/sdc
    $sudo -u hdfs hadoop fs -chown sdc /user/sdc
  4. 要使Data Collector能够提交YARN作业,请执行以下任务之一:
    • 在YARN上,将min.user.id设置为等于或小于与Data Collector用户ID(通常称为“sdc”)关联的用户ID的值。
    • 在YARN上,将Data Collector用户名(通常为“sdc”)添加到allowed.system.users属性中。
    • 创建管道之后,请在Hadoop FS来源中指定Hadoop FS用户。

      对于Hadoop FS用户属性,输入ID高于min.user.id属性的用户,或输入allow.system.users属性中列出的用户名的用户。

  5. 在YARN上,确认Hadoop日志记录级别设置为INFO或更低的严重性。
    YARN默认将Hadoop日志记录级别设置为INFO。要更改日志记录级别:

    • 编辑log4j.properties文件。
      默认情况下,该文件位于以下目录中:

      /etc/hadoop/conf
    • log4j.rootLogger属性设置为INFO或更低的严重性,例如DEBUG或TRACE。
  6. 如果将YARN配置为使用Kerberos身份验证,则将Data Collector配置为使用Kerberos身份验证。
    在为Data Collector配置Kerberos身份验证时,将使Data Collector能够使用Kerberos并定义主体和密钥表。

    要点:对于集群管道,在配置Data Collector时输入keytab的绝对路径。独立管道不需要绝对路径。
    启用后,Data Collector将自动使用Kerberos主体和密钥表连接到使用Kerberos的任何YARN群集。有关为Data Collector启用Kerberos身份验证的详细信息,请参阅Kerberos身份验证。
  7. 在管道属性中的“General选项卡上,将“Execution Mode属性设置 为“Cluster Batch
  8. 在“Cluster选项卡上,配置以下属性:
    集群属性 描述
    Worker Java Options 管道的其他Java属性。用空格分隔属性。

    默认情况下设置以下属性。

    • XX:+UseConcMarkSweepGC和XX:+UseParNewGC设置为并发标记扫描(CMS)垃圾收集器。
    • Dlog4j.debug启用log4j的调试日志记录。

    不建议更改默认属性。

    您可以添加任何有效的Java属性。

    Launcher Env Configuration

    集群启动器的其他配置属性。使用简单或批量编辑模式,单击添加图标并定义属性名称和值。

    Worker Memory (MB) 分配给集群中每个Data Collector Worker的最大内存量。

    默认值为1024 MB。

  9. 在管道中,将Hadoop FS源用于集群批处理模式。
  10. 在源端的“General选项卡上,为集群模式选择适当的CDH或HDP阶段库。
  11. 在源端的“Hadoop FS”选项卡上,配置Hadoop FS URI属性以指向要读取的Amazon S3存储桶。

    使用以下格式: s3a://<bucket>

    例如:s3a://WebServer

    然后在Input Paths属性中,输入要在该Amazon S3存储桶中读取的数据的完整路径。您可以为“Input Paths”属性输入多个路径,例如:

    • 输入路径1- /2016/February
    • 输入路径2- /2016/March

    有关更多信息,请参阅从Amazon S3阅读。

  12. 如果将YARN配置为使用Kerberos身份验证,请在源端的“Hadoop FS”选项卡上启用Kerberos身份验证属性。
  13. 在源端的S3选项卡上,输入用于将凭证传递到Amazon Web Services以便从Amazon S3读取的AWS访问密钥对。
    提示:为了保护敏感信息(例如访问密钥对)的安全,可以使用运行时资源或凭据存储。