在多節(jié)點(diǎn)YARN中運(yùn)行Hello-samza

2018-08-21 18:33 更新

您必須通過遵循 hello-samza 教程,在單節(jié)點(diǎn)YARN中成功運(yùn)行 hello-samza 項(xiàng)目?,F(xiàn)在是時(shí)候在“真正的” YARN 網(wǎng)格(有多個(gè)節(jié)點(diǎn))中運(yùn)行 Samza 的工作。

設(shè)置多節(jié)點(diǎn) YARN

如果您已經(jīng)有多節(jié)點(diǎn) YARN 集群(如 CDH5 集群),則可以跳過此設(shè)置部分。

基本YARN設(shè)置

1.將YARN 2.6下載到 / tmp 并解壓縮。

cd /tmp
tar -xvf hadoop-2.6.1.tar.gz
cd hadoop-2.6.1

2.設(shè)置環(huán)境變量。

export HADOOP_YARN_HOME=$(pwd)
mkdir conf
export HADOOP_CONF_DIR=$HADOOP_YARN_HOME/conf

3.配置 YARN 設(shè)置文件。

cp ./etc/hadoop/yarn-site.xml conf
vi conf/yarn-site.xml

將以下屬性添加到 yarn-site.xml 中:

<property>
    <name>yarn.resourcemanager.hostname</name>
    <!-- hostname that is accessible from all NMs -->
    <value>yourHostname</value>
</property>

下載并添加 capacity-schedule.xml。

curl http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/resources/capacity-scheduler.xml?view=co > conf/capacity-scheduler.xml

為 YARN 設(shè)置 Http 文件系統(tǒng)

這些步驟的目標(biāo)是配置 YARN 來讀取 http 文件系統(tǒng),因?yàn)槲覀儗⑹褂?Http 服務(wù)器部署 Samza 作業(yè)包。如果要使用 HDFS 部署 Samza 作業(yè)包,則可以跳過步驟4?6,然后按照 從HDFS部署Samza作業(yè)

4.下載 Scala 包并解壓縮。

cd /tmp
curl http://www.scala-lang.org/files/archive/scala-2.11.8.tgz > scala-2.11.8.tgz
tar -xvf scala-2.11.8.tgz

5.添加 Scala,其日志 jar 和 Samza 的 HttpFileSystem 實(shí)現(xiàn)。

cp /tmp/scala-2.11.8/lib/scala-compiler.jar $HADOOP_YARN_HOME/share/hadoop/hdfs/lib
cp /tmp/scala-2.11.8/lib/scala-library.jar $HADOOP_YARN_HOME/share/hadoop/hdfs/lib
curl -L http://search.maven.org/remotecontent?filepath=org/clapper/grizzled-slf4j_2.10/1.0.1/grizzled-slf4j_2.10-1.0.1.jar > $HADOOP_YARN_HOME/share/hadoop/hdfs/lib/grizzled-slf4j_2.10-1.0.1.jar
curl -L http://search.maven.org/remotecontent?filepath=org/apache/samza/samza-yarn_2.11/0.12.0/samza-yarn_2.11-0.12.0.jar > $HADOOP_YARN_HOME/share/hadoop/hdfs/lib/samza-yarn_2.11-0.12.0.jar
curl -L http://search.maven.org/remotecontent?filepath=org/apache/samza/samza-core_2.11/0.12.0/samza-core_2.11-0.12.0.jar > $HADOOP_YARN_HOME/share/hadoop/hdfs/lib/samza-core_2.11-0.12.0.jar

6.在 core-site.xml 中添加 http 配置(創(chuàng)建 core-site.xml 文件并添加內(nèi)容)。

vi $HADOOP_YARN_HOME/conf/core-site.xml

添加以下代碼:

<?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>

將 Hadoop 文件分配給從站

7.基本上,您將主機(jī)中的 hadoop 文件復(fù)制到從機(jī)。(172.21.100.35,在我的情況下):

scp -r . 172.21.100.35:/tmp/hadoop-2.6.1
echo 172.21.100.35 > conf/slaves
sbin/start-yarn.sh
  • 如果您收到“172.21.100.35:錯(cuò)誤:未設(shè)置 JAVA HOME”,則需要在配置失敗的機(jī)器上添加 conf / hadoop-env.sh 文件(172.21.100.35,in這種情況),它具有“export JAVA HOME = / export / apps / jdk / JDK-1 8 0 45”(或者JAVA HOME實(shí)際上在哪里)。

8.通過訪問 http:// yourHostname:8088 / cluster / nodes 驗(yàn)證您的節(jié)點(diǎn)是否已啟動(dòng)。

部署 Samza Job

以下步驟與您在 hello-samza中看到 的完全相同。如果您已經(jīng)這樣做,您可能會(huì)跳過它們。

1.下載Samza并將其發(fā)布到Maven本地存儲(chǔ)庫。

cd /tmp
git clone http://git-wip-us.apache.org/repos/asf/samza.git
cd samza
./gradlew clean publishToMavenLocal
cd ..

2.下載 hello-samza 項(xiàng)目并更改作業(yè)屬性文件。

git clone git://github.com/linkedin/hello-samza.git
cd hello-samza
vi src/main/config/wikipedia-feed.properties

將 yarn.package.path 屬性更改為:

yarn.package.path=http://yourHostname:8000/target/hello-samza-0.12.0-dist.tar.gz

編譯 hello-samza。

mvn clean package
mkdir -p deploy/samza
tar -xvf ./target/hello-samza-0.12.0-dist.tar.gz -C deploy/samza

4.將 Samza 工作包部署到 Http 服務(wù)器..

打開一個(gè)新的終端,并運(yùn)行:

cd /tmp/hello-samza && python -m SimpleHTTPServer

返回到原始終端(不是運(yùn)行HTTP服務(wù)器的終端):

deploy/samza/bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-feed.properties

轉(zhuǎn)到 http:// yourHostname:8088,找到維基百科的工作。單擊 ApplicationMaster 鏈接以查看它正在運(yùn)行。

恭喜!你現(xiàn)在在一個(gè)“真正的”YARN網(wǎng)格中運(yùn)行 Samza 的工作!

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)