docs/algo/sona/hanp_sona.md
HANP(Hop Attenuation & Node Preference)是一种基于标签传播的社区发现算法,详情可参考论文HANP。
我们基于Spark on Angel框架实现了HANP算法,其能够处理大规模工业级数据。节点的度、标签、标签分数存储于Angel PSs上,每个Spark executor根据各自分区中的节点从PSs上拉取对应节点的数据进行计算,得到节点新的标签与标签分数,并将新的计算结果上推到PSs对对应节点的标签和标签分数进行更新。算法如此迭代进行拉取、计算与更新步骤,直到达到最大迭代次数结束。
进入angel环境bin目录下
input=hdfs://my-hdfs/data
output=hdfs://my-hdfs/hanp_result
source ./spark-on-angel-env.sh
$SPARK_HOME/bin/spark-submit \
--master yarn-cluster\
--conf spark.ps.instances=1 \
--conf spark.ps.cores=1 \
--conf spark.ps.jars=$SONA_ANGEL_JARS \
--conf spark.ps.memory=10g \
--jars $SONA_SPARK_JARS \
--driver-memory 5g \
--num-executors 1 \
--executor-cores 4 \
--executor-memory 10g \
--class com.tencent.angel.spark.examples.cluster.HanpExample \
../lib/spark-on-angel-examples-3.3.0.jar \
input:$input output:$output isWeighted:true sep:tab maxIteration:10 preserveRate:0.1 delta:0.1 psPartitionNum:10 partitionNum:12