EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

安装Spark引擎

OmniData算子下推特性支持Spark引擎,使用OmniData算子下推特性前应先安装Spark引擎,并在Spark引擎中添加OmniData算子下推参数。

规划集群环境

本章节规划的环境由七台服务器组成,分别是任务提交节点(1台)、计算节点(3台)、存储节点(3台)。其中Spark Driver作为大数据集群的任务提交节点,计算节点分别是大数据集群的agent1、agent2和agent3。存储节点分别是大数据集群的ceph1、ceph2、ceph3。如图1所示。

图1 环境配置

集群所使用的硬件环境如表1所示。

表1 集群环境硬件配置

项目

型号

处理器

鲲鹏920 5220处理器

内存大小

384GB (12 * 32GB)

内存频率

2666MHz

网卡

  • Ceph环境:业务网络25GE,管理网络GE
  • HDFS环境:业务网络10GE,管理网络GE

硬盘

  • 系统盘:1 * RAID 0(1 * 1.2T SAS HDD)
  • 管理节点:12 * RAID 0(1 * 4T SATA HDD)
  • 计算节点:
    • Ceph环境:1 * 3.2T NVMe
    • HDFS环境:12 * RAID 0(1 * 4T SATA HDD)
  • 存储节点:
    • Ceph环境:12 * RAID 0(1 * 4T SATA HDD) 1 * 3.2T NVMe
    • HDFS环境:12 * RAID 0(1 * 4T SATA HDD)

RAID卡

LSI SAS3508

安装Spark 3.1.1引擎

安装过程选择“/opt/boostkit”作为软件安装的目录,将Spark编译依赖的JAR都放在该目录下,如表2所示。

表2 组件安装目录

安装节点

安装目录

安装组件

获取方式

服务端(server1)

/opt/boostkit

aws-java-sdk-bundle-1.11.375.jar

鲲鹏社区下载

bcpkix-jdk15on-1.68.jar

鲲鹏社区下载

boostkit-omnidata-client-1.5.0-aarch64.jar

华为Support官网下载

boostkit-omnidata-common-1.5.0-aarch64.jar

华为Support官网下载

boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0.jar

鲲鹏社区下载或者使用源码进行编译

curator-client-2.12.0.jar

鲲鹏社区下载

curator-framework-2.12.0.jar

鲲鹏社区下载

curator-recipes-2.12.0.jar

鲲鹏社区下载

fastjson-1.2.83.jar

鲲鹏社区下载

fst-2.57.jar

鲲鹏社区下载

guava-26.0-jre.jar

鲲鹏社区下载

haf-1.3.0.jar

华为Support官网下载

hdfs-ceph-3.2.0.jar

鲲鹏社区下载

hetu-transport-1.6.1.jar

鲲鹏社区下载

jackson-datatype-guava-2.12.4.jar

鲲鹏社区下载

jackson-datatype-jdk8-2.12.4.jar

鲲鹏社区下载

jackson-datatype-joda-2.13.3.jar

鲲鹏社区下载

jackson-datatype-jsr310-2.12.4.jar

鲲鹏社区下载

jackson-module-parameter-names-2.12.4.jar

鲲鹏社区下载

jasypt-1.9.3.jar

鲲鹏社区下载

jol-core-0.2.jar

鲲鹏社区下载

joni-2.1.5.3.jar

鲲鹏社区下载

log-0.193.jar

鲲鹏社区下载

perfmark-api-0.23.0.jar

鲲鹏社区下载

presto-main-1.6.1.jar

鲲鹏社区下载

presto-spi-1.6.1.jar

鲲鹏社区下载

protobuf-java-3.12.0.jar

鲲鹏社区下载

slice-0.38.jar

鲲鹏社区下载

aws-java-sdk-bundle-1.11.375.jar、hdfs-ceph-3.2.0.jar这两个JAR包在Ceph环境下需要添加,HDFS不需要这两个JAR包。除aws-java-sdk-bundle-1.11.375.jar、hdfs-ceph-3.2.0.jar外,上述依赖包可通过执行Gitee上spark_build.sh脚本获取。

  1. 创建“/opt/boostkit”目录。
    1
    mkdir -p /opt/boostkit
    
  2. 在任务提交节点(spark driver)上,将在软件获取中得到的boostkit-omnidata-client-1.5.0-aarch64.jar和boostkit-omnidata-common-1.5.0-aarch64.jar(“BoostKit-omnidata_1.5.0.zip\BoostKit-omnidata_1.5.0.tar.gz”中),上传到“/opt/boostkit”目录。
    1
    2
    cp boostkit-omnidata-client-1.5.0-aarch64.jar /opt/boostkit
    cp boostkit-omnidata-common-1.5.0-aarch64.jar /opt/boostkit
    
  3. 将在软件获取中得到的haf-1.3.0.jar(“BoostKit-haf_1.3.0.zip\haf-1.3.0.tar.gz\haf-host-1.3.0.tar.gz\lib\jar”中),上传到“/opt/boostkit”目录。
    1
    cp haf-1.3.0.jar /opt/boostkit
    
  4. 将在软件获取中得到的hdfs-ceph-3.2.0.jar以及boostkit-omnidata-server-1.5.0-aarch64-lib.zip中的aws-java-sdk-bundle-1.11.375.jar,上传到“/opt/boostkit”目录(如果是HDFS存储系统,则跳过该步骤)。
    1
    2
    cp hdfs-ceph-3.2.0.jar /opt/boostkit
    cp aws-java-sdk-bundle-1.11.375.jar /opt/boostkit
    
  5. 使用FTP工具将在软件获取中得到boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0-aarch64.zip压缩包上传到安装环境并解压。
    1
    unzip boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0-aarch64.zip
    
  6. 将boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0-aarch64.zip压缩包内的JAR包拷贝到“/opt/boostkit”目录。
    1
    2
    cd boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0-aarch64
    cp *.jar /opt/boostkit
    

    如果用户需要手动编译boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0.jar,可以根据README.md编译。

  7. 新增OmniData算子下推的参数到Spark的配置文件(“$SPARK_HOME/conf/spark-defaults.conf”)中。

    以下过程中$SPARK_HOME用“/usr/local/spark”替代。

    1. 编辑Spark配置文件。
      1
      vi /usr/local/spark/conf/spark-defaults.conf
      
    2. “i”进入编辑模式,将下面参数配置添加到spark-defaults.conf中。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      spark.sql.cbo.enabled   true
      spark.sql.cbo.planStats.enabled true
      spark.sql.ndp.enabled   true
      spark.sql.ndp.filter.selectivity.enable true
      spark.sql.ndp.filter.selectivity    0.5
      spark.sql.ndp.alive.omnidata 3
      spark.sql.ndp.table.size.threshold  10
      spark.sql.ndp.zookeeper.address agent1:2181,agent2:2181,agent3:2181
      spark.sql.ndp.zookeeper.path    /sdi/status
      spark.sql.ndp.zookeeper.timeout 15000
      spark.driver.extraLibraryPath   /home/omm/omnidata-install/haf-host/lib
      spark.executor.extraLibraryPath  /home/omm/omnidata-install/haf-host/lib
      spark.executorEnv.HAF_CONFIG_PATH /home/omm/omnidata-install/haf-host/etc/
      

      以上的参数也可以通过set命令直接在spark-sql设置。

      新增OmniData算子下推的参数信息如表3所示。

      表3 OmniData算子下推的参数含义

      参数

      推荐值

      含义

      spark.sql.cbo.enabled

      true

      是否开启cbo优化,设置为true时,启用cbo以估计执行计划来统计信息。

      spark.sql.cbo.planStats.enabled

      true

      设置为true时,逻辑计划将从目录中获取行和列的统计信息。

      spark.sql.ndp.enabled

      true

      是否开启OmniData算子下推。

      spark.sql.ndp.filter.selectivity.enable

      true

      是否开启filter选择率来判断是否下推。

      spark.sql.ndp.filter.selectivity

      0.5

      filter选择率小于该值才会下推(selectivity越小,表示需要过滤的数据量越小),缺省值为0.5,类型为double。

      需要开启spark.sql.ndp.filter.selectivity.enable=true。

      如果需要强制下推,可以将参数设置为1.0。

      spark.sql.ndp.table.size.threshold

      10240

      表大于该值才会下推,缺省值为10240,单位:字节。

      spark.sql.ndp.alive.omnidata

      3

      集群OmniData算子下推Server数量。

      spark.sql.ndp.zookeeper.address

      agent1:2181,agent2:2181,agent3:2181

      连接ZooKeeper地址。

      spark.sql.ndp.zookeeper.path

      /sdi/status

      ZooKeeper存放下推资源信息的目录。

      spark.sql.ndp.zookeeper.timeout

      15000

      ZooKeeper超时时间,单位:ms。

      spark.driver.extraLibraryPath

      /home/omm/omnidata-install/haf-host/lib

      Spark运行时driver依赖的库文件路径。

      spark.executor.extraLibraryPath

      /home/omm/omnidata-install/haf-host/lib

      Spark执行时executor依赖的库文件路径。

      spark.executorEnv.HAF_CONFIG_PATH

      /home/omm/omnidata-install/haf-host/etc/

      使能HAF时的配置文件路径。

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  • HAF在计算节点的日志目录:“/home/omm/omnidata-install/haf-host/logs”
  • 如果集群为安全模式,需配置spark.sql.ndp.zookeeper.jaas.conf和spark.sql.ndp.zookeeper.krb5.conf参数,参数值为对应jaas和krb5的文件路径,文件路径用户自定义。