Samza YARN资源本地化

2018-08-22 18:19 更新

在 YARN 群集上运行 Samza 作业时,您可能需要在启动前下载一些资源(例如,下载作业二进制文件,获取证书文件等)。此步骤称为资源本地化。

资源本地化过程

对于在 YARN 上运行的 Samza 工作,资源本地化利用了 YARN 节点管理器的本地化服务。这是一个关于如何本地化在 YARN 中的工作的深入研究。

根据资源的来源与方式,获取资源与路径相关的的方案(如http,https,hdfs,ftp,file等)。该方案映射到 FileSystem 处理本地化的相应实现。

FileSystem 在 Hadoop 和 Samza 中有一些预定义的实现,如果您在 YARN 上运行 Samza 工作,则会提供它们:

  • org.apache.samza.util.hadoop.HttpFileSystem:用于在没有客户端认证的情况下基于 http 或 https 获取资源。
  • org.apache.hadoop.hdfs.DistributedFileSystem:用于从 Hadoop 上的 DFS 系统中获取资源。
  • org.apache.hadoop.fs.LocalFileSystem:用于将资源从本地文件系统复制到作业目录。
  • org.apache.hadoop.fs.ftp.FTPFileSystem用于基于 ftp 获取资源。

您可以创建自己的文件系统实现,方法是创建一个扩展的类 org.apache.hadoop.fs.FileSystem。

资源配置

您可以通过以下配置指定要本地化的资源。

必需配置

  1. yarn.resources.<resourceName>.path 用于获取本地化资源的路径,例如 http://hostname.com/packages/myResource

可选配置

  1. yarn.resources.<resourceName>.local.name 用于本地化资源的本地名称。如果没有设置,默认值将被 <resourceName> 指定 yarn.resources.<resourceName>.path
  2. yarn.resources.<resourceName>.local.type 该类型与有效值的资源来自:ARCHIVE,FILE,PATTERN。存档:本地化资源将是存档目录;文件:本地化的资源将是一个文件;模式:本地化的资源将是从存档模式中提取的条目。如果未设置,默认值为 FILE。
  3. yarn.resources.<resourceName>.local.visibility 能见度与来自有效值的资源 PUBLIC,PRIVATE,APPLICATIONPUBLIC:所有人都可以看到 PRIVATE:只能运行该作业的帐户可见应用程序:仅对具有资源配置的特定应用程序作业可见如果未设置,默认值为 APPLICATION

YARN 配置

确保 yarn.resources.<resourceName>.path 在 YARN core-site.xml 中配置了相应的 FileSystem 实现。

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>fs.http.impl</name>
      <value>org.apache.samza.util.hadoop.HttpFileSystem</value>
    </property>
</configuration>

如果您正在使用自己的方案(例如 yarn.resources.myResource.path = myScheme://host.com/test),则可以如下链接FileSystem实现。

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>fs.myScheme.impl</name>
      <value>com.myCompany.MySchemeFileSystem</value>
    </property>
</configuration>

Yarn 安全»

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号