docs/deploy/run_on_yarn.md
由于业界很多公司的大数据平台,都是基于Yarn搭建,所以Angel目前的分布式运行是基于Yarn,方便用户复用现网环境,而无需任何修改。
鉴于Yarn的搭建步骤和机器要求,不建议在小机器上,进行尝试该运行。如果一定要运行,最少需要6G的内存(1ps+1worker+1am),最好有10G的内存,比较宽裕。
Angel的分布式Yarn运行模式需要的环境,其实也非常简单:
一个可以正常运行Hadoop集群,包括Yarn和HDFS
一个用于提交Angel任务的客户端Gateway
以最简单的PageRank为例:
上传数据(如果用户有自己的数据可以略过本步,但是要确认数据格式一致)
找到发布包的data目录下的LogisticRegression测试数据
在hdfs上新建lr训练数据目录
hadoop fs -mkdir hdfs://<hdfs name>/test/pagerank_data
将数据文件上传到指定目录下
hadoop fs -put data/bc/edge hdfs://<hdfs name>/test/pagerank_data
提交任务
spark-submit将任务提交到Hadoop集群请务必注意提交集群中是否有充足的资源,如果按照下面的参数配置,启动任务至少需要6GB内存和4个vcore
```
#!/bin/bash
input=hdfs://<hdfs name>/test/pagerank_data
output=hdfs://<hdfs name>/test/pagerank_output
queue=your_queue_name
source ./spark-on-angel-env.sh
${SPARK_HOME}/bin/spark-submit \
--master yarn-cluster \
--conf spark.ps.jars=$SONA_ANGEL_JARS \
--conf spark.ps.instances=2 \
--conf spark.ps.cores=1 \
--conf spark.ps.memory=1g \
--jars $SONA_SPARK_JARS\
--name "PageRank-spark-on-angel" \
--queue $queue \
--driver-memory 1g \
--num-executors 2 \
--executor-cores 1 \
--executor-memory 1g \
--class com.tencent.angel.spark.examples.cluster.PageRankExample \
./../lib/spark-on-angel-examples-${ANGEL_VERSION}.jar \
input:$input \
output:$output \
resetProp:0.15
```
参数含义如下
| 名称 | 含义 |
|---|---|
| spark.ps.jars | Angel PS运行依赖的jar包,在spark-on-angel-env.sh脚本里面配置 |
| spark.ps.instances | 申请的Angel PS总数 |
| spark.ps.cores | 每个PS申请的core |
| spark.ps.memory | 每个PS申请的内存 |
| resetProp | 算法参数 |
为了方便用户,Ange设置有许多参数可供调整,可以参考