本文主要分析腾讯的分布式机器学习平台angel3.0版本在spark上的启动流程,本文讲解的比较详细甚至啰嗦,所以建议新手同学认真阅读,不足之处还请大佬指教 ~~
本文也有一些暂时还未理解十分透彻的地方,欢迎指正~~
官方文档参考:https://www.bookstack.cn/read/angel-v3.0/README_cn.md
以sona自带的JsonRunnerExamples为例分析sona的启动流程
下面这几行代码是用于启动spark并启动angel的
val spark = SparkSession.builder()
.appName("AngelClassification")
.getOrCreate()
val sparkConf = spark.sparkContext.getConf
val driverCtx = DriverContext.get(sparkConf)
driverCtx.startAngelAndPSAgent()
这段脚本是用于提交sona任务的,
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=10 \
--conf spark.ps.cores=2 \
--conf spark.ps.memory=6g \
--conf spark.hadoop.fs.defaultFS=hdfs://ns3-backup \
--conf spark.hadoop.angel.staging.dir=hdfs://ns3-backup/user \
--conf spark.hadoop.angel.tmp.output.path.prefix=/user/XXX_bigdata_push/angel_stage \
--conf spark.angel.save.model.path=/user/XXX_bigdata_push/zhongruix/angel_model \
--conf spark.hadoop.angel.tmp.output.path=/user/XXX_bigdata_push/angel_stage \
--conf spark.hadoop.sona.tmp=/user/XXX_bigdata_push/zhongruix/tmp2 \
--conf spark.hadoop.angel.save.model.path=/user/XXX_bigdata_push/zhongruix/angel_model/ \
--conf spark.sql.warehouse.dir=/user/XXX_bigdata_push/zhongrui3_spark_sql_warehouse/ \
--jars $SONA_SPARK_JARS\
--name "LR-spark-on-angel" \
--files ./../jsons/logreg.json \
--driver-memory 10g \
--num-executors 10 \
--executor-cores 2 \
--executor-memory 4g \
--class com.tencent.angel.sona.examples.JsonRunnerExamples \
./../lib/angelml-${SONA_VERSION}.jar \
lr:0.01 \
data:/user/XXX_bigdata_push/zhongruix/angel3_home/sona-test/data/mllib/sample_libsvm_data.txt \
modelPath:hdfs://ns3-backup/user/XXX_bigdata_push/zhongruix/angel_model/ \
jsonFile:./logreg.json
接下来会先分析这段脚本的含义然后分析这几行scala代码后面的所有启动流程