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 |
安装过程选择“/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 |
鲲鹏社区下载 |
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 | mkdir -p /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 |
1 | cp haf-1.3.0.jar /opt/boostkit |
1 2 | cp hdfs-ceph-3.2.0.jar /opt/boostkit cp aws-java-sdk-bundle-1.11.375.jar /opt/boostkit |
1 | unzip boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0-aarch64.zip
|
1 2 | cd boostkit-omnidata-spark-sql_2.12-3.1.1-1.5.0-aarch64 cp *.jar /opt/boostkit |
以下过程中$SPARK_HOME用“/usr/local/spark”替代。
1 | vi /usr/local/spark/conf/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所示。
参数 |
推荐值 |
含义 |
---|---|---|
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时的配置文件路径。 |