docs/algo/sona/CC_sona.md
CC(connected components)算法用于求解图的弱连通分量。
CC算法将图看作无向图,对在同一个连通分量中的节点,分配一个相同的标签。 我们基于Spark On Angel实现了大规模网络上的弱连通分量算法。 其中ps维护节点的最新的节点的标签值,Spark端维护网络的邻接表。 每轮根据节点邻居标签对节点进行更新。直到无节点需要更新标签时终止。 每个连通分量有一个单独的标签。 本实现方案结合分布式的大数据处理优势与单机并查集算法运算快速的优势, 将连通分量的处理拆分成分布式以及单机并查集处理两部分,并在最后将两部分的结果合并成最终结果。
tab, 空格, 逗号等DISK_ONLY/MEMORY_ONLY/MEMORY_AND_DISKinput=hdfs://my-hdfs/data
output=hdfs://my-hdfs/output
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 \
--name "cc angel" \
--jars $SONA_SPARK_JARS \
--driver-memory 5g \
--num-executors 1 \
--executor-cores 4 \
--executor-memory 10g \
--class org.apache.spark.angel.examples.graph.CCExample \
../lib/spark-on-angel-examples-3.1.0.jar
input:$input output:$output sep:tab storageLevel:MEMORY_ONLY useBalancePartition:true \
partitionNum:4 psPartitionNum:1 localLimit:100000000 compressIterNum:3 needReplicaEdge:true