安装过程

获取代码中得到的软件包移动到安装目录,如表1所示,安装根目录“/home/test/boostkit/”仅为举例,请关注安装目录相对路径。

算法包只需要在客户端安装,控制节点和计算节点不需要安装。

表1 组件安装目录

安装节点

安装目录

安装组件

客户端

/home/test/boostkit/lib

boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar

boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar

boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar

依赖的第三方开源加速库fastutil-8.3.1.jar

/home/test/boostkit/

测试jar包

任务提交shell脚本

安装步骤如下:

  1. 在客户端节点上,以大数据组件的授权用户登录服务器,将算法依赖的第三方开源加速库fastutil-8.3.1.jar安装到对应目录,软件jar包设置文件权限为750。

    1. 创建lib目录。
      1
      mkdir -p /home/test/boostkit/lib
      
    2. 进入创建的目录。
      1
      cd /home/test/boostkit/lib
      
    3. 下载fastutil-8.3.1.jar包。
      1
      wget https://repo1.maven.org/maven2/it/unimi/dsi/fastutil/8.3.1/fastutil-8.3.1.jar
      
    4. 更改jar包权限
      1
      chmod 750 fastutil-8.3.1.jar
      

  2. 将图分析算法库的算法包复制到客户端的“/home/test/boostkit/lib/”目录,软件jar包设置文件权限为750。

    1
    2
    3
    4
    cp /opt/Spark-graph-algo-lib-1.3.0-spark2.3.2/graph-accelerator/target/boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar /home/test/boostkit/lib
    cp /opt/Spark-graph-algo-lib-1.3.0-spark2.3.2/graph-accelerator/target/boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar /home/test/boostkit/lib
    cp /opt/boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar /home/test/boostkit/lib
    chmod 750 /home/test/boostkit/lib/boostkit-*
    

  3. 将算法的测试工具(需要自行开发)打成的jar包(如graph-test.jar)放入客户端的库算法包上层目录“/home/test/boostkit/”下。
  4. 将提交任务shell脚本放入客户端与测试jar包相同目录的“/home/test/boostkit/”下,使用yarn-client模式启动Spark作业,shell脚本内容示例如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    #!/bin/bash
    
    spark-submit \
    --class com.bigdata.graph.WCEMain \
    --master yarn \
    --deploy-mode client \
    --driver-cores 36 \
    --driver-memory 50g \
    --jars "lib/fastutil-8.3.1.jar,lib/boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar,lib/boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar,lib/boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar" \
    --driver-class-path "lib/graph-test.jar:lib/fastutil-8.3.1.jar:lib/snakeyaml-1.17.jar:lib/boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar:lib/boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar:lib/boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar" \
    --conf "spark.executor.extraClassPath=fastutil-8.3.1.jar:boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar:boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar:boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar" \
    ./graph-test.jar 
    

    将提交任务shell脚本放入客户端与测试jar包相同目录的“/home/test/boostkit/”下,使用yarn-cluster模式启动Spark作业,shell脚本内容示例如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    #!/bin/bash
    
    spark-submit \
    --class com.bigdata.graph.WCEMain \
    --master yarn \
    --deploy-mode cluster \
    --driver-cores 36 \
    --driver-memory 50g \
    --jars "lib/fastutil-8.3.1.jar,lib/boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar,lib/boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar,lib/boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar" \
    --driver-class-path "graph-test.jar:fastutil-8.3.1.jar:snakeyaml-1.17.jar:boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar:boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar:boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar" \
    --conf "spark.yarn.cluster.driver.extraClassPath=graph-test.jar:snakeyaml-1.17.jar:boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar:boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar:boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar" \
    --conf "spark.executor.extraClassPath=fastutil-8.3.1.jar:boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar:boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar:boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar" \
    ./graph-test.jar 
    

    脚本中的语句含义如表2所示。

    表2 脚本的语句含义

    语句

    含义

    spark-submit

    指明是以spark-submit的形式提交作业。

    --class com.bigdata.ml.RFMain

    调用算法的测试程序入口函数。

    --driver-class-path "XXX"

    指明需要用到的图分析算法加速库、依赖的第三方开源加速库fastutil、算法的测试jar包在客户端的存放地址。

    图分析算法需要用到的包:boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar、boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar、boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar、fastutil-8.3.1.jar。

    当提交yarn-client模式的Spark作业时需要写清楚所要引用的jar包在当前节点的路径和jar包的名字,多个jar包之间使用‘:’作为分隔符。

    当提交yarn-client模式的Spark作业时不需要写清楚所要引用的jar包在当前节点的路径,只需要写清楚要引用的jar包的名字即可,多个jar包之间使用‘:’作为分隔符。

    --conf "spark.executor.extraClassPath=XXX"

    指明需要用到的算法加速库、依赖的第三方开源加速库fastutil和算法所需的jar包。

    图分析算法需要用到的包:boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar、boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar、boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar、fastutil-8.3.1.jar。

    --conf "spark.yarn.cluster.driver.extraClassPath=XXX"

    指明需要用到的算法加速库、依赖的第三方开源加速库fastutil和算法所需的jar包。

    图分析算法需要用到的包:boostkit-graph-kernel-2.11-1.3.0-spark2.3.2-aarch64.jar、boostkit-graph-acc_2.11-1.3.0-spark2.3.2.jar、boostkit-graph-core_2.11-1.3.0-spark2.3.2.jar、fastutil-8.3.1.jar。

    只有yarn-cluster模式的Spark作业需要配置此参数,只需要写清楚所引用的jar包的名字,多个jar包之间使用‘:’作为分隔符。

    --master yarn

    指明在Yarn集群上提交Spark任务。

    --deploy-mode cluster

    指明提交Spark任务的模式是cluster形式的。

    --deploy-mode client

    指明提交Spark任务的模式是client形式的。

    --driver-cores

    driver进程所用到的核数。

    --driver-memory

    driver使用的内存,不可超过单机的总内存。

    --jars

    指定算法所需jar包,要写清楚所指定jar包的路径和名字,多个jar包之间使用“,”作为分隔符。

    ./graph-test.jar

    指明作为测试程序的jar包。

    • 算法包运行时的日志默认回显到客户端控制台,不储存在文件中,可以通过引入自定义的log4j.properties将日志保存到本地,引入方法可参考设置运行日志保存到本地
    • Spark单机cluster模式提交任务时,建议启用身份验证,并禁用REST API,为规避Spark漏洞