Samza YARN資源本地化

2018-08-22 18:19 更新

在 YARN 群集上運(yùn)行 Samza 作業(yè)時(shí),您可能需要在啟動(dòng)前下載一些資源(例如,下載作業(yè)二進(jìn)制文件,獲取證書文件等)。此步驟稱為資源本地化。

資源本地化過程

對于在 YARN 上運(yùn)行的 Samza 工作,資源本地化利用了 YARN 節(jié)點(diǎn)管理器的本地化服務(wù)。這是一個(gè)關(guān)于如何本地化在 YARN 中的工作的深入研究。

根據(jù)資源的來源與方式,獲取資源與路徑相關(guān)的的方案(如http,https,hdfs,ftp,file等)。該方案映射到 FileSystem 處理本地化的相應(yīng)實(shí)現(xiàn)。

FileSystem 在 Hadoop 和 Samza 中有一些預(yù)定義的實(shí)現(xiàn),如果您在 YARN 上運(yùn)行 Samza 工作,則會(huì)提供它們:

  • org.apache.samza.util.hadoop.HttpFileSystem:用于在沒有客戶端認(rèn)證的情況下基于 http 或 https 獲取資源。
  • org.apache.hadoop.hdfs.DistributedFileSystem:用于從 Hadoop 上的 DFS 系統(tǒng)中獲取資源。
  • org.apache.hadoop.fs.LocalFileSystem:用于將資源從本地文件系統(tǒng)復(fù)制到作業(yè)目錄。
  • org.apache.hadoop.fs.ftp.FTPFileSystem用于基于 ftp 獲取資源。

您可以創(chuàng)建自己的文件系統(tǒng)實(shí)現(xiàn),方法是創(chuàng)建一個(gè)擴(kuò)展的類 org.apache.hadoop.fs.FileSystem。

資源配置

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

必需配置

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

可選配置

  1. yarn.resources.<resourceName>.local.name 用于本地化資源的本地名稱。如果沒有設(shè)置,默認(rèn)值將被 <resourceName> 指定 yarn.resources.<resourceName>.path
  2. yarn.resources.<resourceName>.local.type 該類型與有效值的資源來自:ARCHIVE,F(xiàn)ILE,PATTERN。存檔:本地化資源將是存檔目錄;文件:本地化的資源將是一個(gè)文件;模式:本地化的資源將是從存檔模式中提取的條目。如果未設(shè)置,默認(rèn)值為 FILE。
  3. yarn.resources.<resourceName>.local.visibility 能見度與來自有效值的資源 PUBLIC,PRIVATE,APPLICATIONPUBLIC:所有人都可以看到 PRIVATE:只能運(yùn)行該作業(yè)的帳戶可見應(yīng)用程序:僅對具有資源配置的特定應(yīng)用程序作業(yè)可見如果未設(shè)置,默認(rèn)值為 APPLICATION

YARN 配置

確保 yarn.resources.<resourceName>.path 在 YARN core-site.xml 中配置了相應(yīng)的 FileSystem 實(shí)現(xiàn)。

<?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實(shí)現(xiàn)。

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

Yarn 安全?

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)