安装Spark引擎
OmniData算子下推特性支持Spark引擎,使用OmniData算子下推特性前应先安装Spark引擎,并在Spark引擎中添加OmniData算子下推参数。
规划集群环境
本章节规划的环境由七台服务器组成,分别是任务提交节点(1台)、计算节点(3台)、存储节点(3台)。其中Spark Driver作为大数据集群的任务提交节点,计算节点分别是大数据集群的agent1、agent2和agent3。存储节点分别是大数据集群的ceph1、ceph2、ceph3。如图1所示。
集群所使用的硬件环境如表1所示。
项目 |
型号 |
---|---|
处理器 |
鲲鹏920 5220处理器 |
内存大小 |
384GB (12 * 32GB) |
内存频率 |
2666MHz |
网卡 |
|
硬盘 |
|
RAID卡 |
LSI SAS3508 |
安装Spark 3.1.1引擎
安装过程选择“/opt/boostkit”作为软件安装的目录,将Spark编译依赖的JAR都放在该目录下,如表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 |
鲲鹏社区下载 |

- 创建“/opt/boostkit”目录。
1
mkdir -p /opt/boostkit
- 在任务提交节点(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
- 将在软件获取中得到的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
- 将在软件获取中得到的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
- 使用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
- 将boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0-aarch64.zip压缩包内的JAR包拷贝到“/opt/boostkit”目录。
- 新增OmniData算子下推的参数到Spark的配置文件(“$SPARK_HOME/conf/spark-defaults.conf”)中。
以下过程中$SPARK_HOME用“/usr/local/spark”替代。
- 编辑Spark配置文件。
1
vi /usr/local/spark/conf/spark-defaults.conf
- 按“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时的配置文件路径。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 编辑Spark配置文件。

- HAF在计算节点的日志目录:“/home/omm/omnidata-install/haf-host/logs”。
- 如果集群为安全模式,需配置spark.sql.ndp.zookeeper.jaas.conf和spark.sql.ndp.zookeeper.krb5.conf参数,参数值为对应jaas和krb5的文件路径,文件路径用户自定义。