Alluxio与YARN整合运行
注意:YARN 不是非常适合像 Alluxio 这样长时间运行的应用,我们推荐根据该指南来将 Alluxio 与 YARN 一起运行,而不是作为 YARN 内的一个应用来运行。
前期准备
一个运行的YARN的集群
下载到本地的 Alluxio
配置
通过一些特定的属性来定制Alluxio master和worker(比如,在各个worker节点上设置分层存储),查阅Configuration settings 为了确保你的配置能够被ApplicationMaster和Alluxio master/workers都读到,将alluxio-site.properties
放到/etc/alluxio/alluxio-site.properties
中。
运行Alluxio应用
使用脚本integration/yarn/bin/alluxio-yarn.sh
来启动Alluxio,这个脚本需要三个参数:
- 需要启动的Alluxio workers的总数目(必须的)
- 一个HDFS路径来分发包给Alluxio ApplicationMaster(必须的)
- 运行Alluxio Master的节点的YARN的名字(可选的,默认为
${ALLUXIO_MASTER_HOSTNAME}
)
例如,启动一个有3个worker节点的Alluxio集群,其中一个HDFS的临时目录为hdfs://${HDFS_MASTER}:9000/tmp/
,并且master节点的主机名为${ALLUXIO_MASTER}
,你可以这样运行:
# If Yarn does not reside in `HADOOP_HOME`, set the environment variable `YARN_HOME` to the base path of Yarn.
export HADOOP_HOME=<path to hadoop home>
${HADOOP_HOME}/bin/hadoop fs -mkdir hdfs://${HDFS_MASTER}:9000/tmp
${ALLUXIO_HOME}/integration/yarn/bin/alluxio-yarn.sh 3 hdfs://${HDFS_MASTER}:9000/tmp/ ${ALLUXIO_MASTER}
你也可以单独启动Alluxio Master节点,在这种情况下,上述的启动能够在提供的地址上自动检测到Master而且跳过一个新实例的初始化。 如果你希望在一个特定的主机运行Master,这个主机不在你的YARN集群中,比如一个AWS EMR Master实例,这将会非常有用。
这个脚本会在YARN上启动一个Alluxio的Application Master,这个Application Master会为Alluxio master和workers申请容器。你可以在浏览器中查看YARN的UI来观察Alluxio作业的状态。
运行这个脚本会产生包含如下内容的输出
INFO impl.YarnClientImpl: Submitted application application_1445469376652_0002
这个application ID可以通过运行如下指令来销毁application:
${HADOOP_HOME}/bin/yarn application -kill application_1445469376652_0002
这个ID也可以在YARN web UI上看到。
测试Alluxio
如果你有Alluxio application在运行,你可以通过在conf/alluxio-site.properties
上配置alluxio.master.hostname=masterhost
并运行如下指令来查看其健康性
${ALLUXIO_HOME}/bin/alluxio runTests