在多节点YARN中运行Hello-samza

2018-08-21 18:33 更新

您必须通过遵循 hello-samza 教程,在单节点YARN中成功运行 hello-samza 项目。现在是时候在“真正的” YARN 网格(有多个节点)中运行 Samza 的工作。

设置多节点 YARN

如果您已经有多节点 YARN 集群(如 CDH5 集群),则可以跳过此设置部分。

基本YARN设置

1.将YARN 2.6下载到 / tmp 并解压缩。

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

2.设置环境变量。

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

3.配置 YARN 设置文件。

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 设置 Http 文件系统

这些步骤的目标是配置 YARN 来读取 http 文件系统,因为我们将使用 Http 服务器部署 Samza 作业包。如果要使用 HDFS 部署 Samza 作业包,则可以跳过步骤4〜6,然后按照 从HDFS部署Samza作业

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 实现。

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 配置(创建 core-site.xml 文件并添加内容)。

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.基本上,您将主机中的 hadoop 文件复制到从机。(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:错误:未设置 JAVA HOME”,则需要在配置失败的机器上添加 conf / hadoop-env.sh 文件(172.21.100.35,in这种情况),它具有“export JAVA HOME = / export / apps / jdk / JDK-1 8 0 45”(或者JAVA HOME实际上在哪里)。

8.通过访问 http:// yourHostname:8088 / cluster / nodes 验证您的节点是否已启动。

部署 Samza Job

以下步骤与您在 hello-samza中看到 的完全相同。如果您已经这样做,您可能会跳过它们。

1.下载Samza并将其发布到Maven本地存储库。

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

2.下载 hello-samza 项目并更改作业属性文件。

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 服务器..

打开一个新的终端,并运行:

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

返回到原始终端(不是运行HTTP服务器的终端):

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

转到 http:// yourHostname:8088,找到维基百科的工作。单击 ApplicationMaster 链接以查看它正在运行。

恭喜!你现在在一个“真正的”YARN网格中运行 Samza 的工作!

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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号