安装Spark引擎
OmniData算子下推特性支持Spark引擎,使用OmniData算子下推特性前应先安装Spark引擎,并在Spark引擎中添加OmniData算子下推参数。
规划集群环境
本章节规划的环境由七台服务器组成,分别是任务提交节点(1台)、计算节点(3台)、存储节点(3台)。其中Spark Driver作为大数据集群的任务提交节点,计算节点分别是大数据集群的agent1、agent2和agent3。存储节点分别是大数据集群的ceph1、ceph2、ceph3。如图1所示。
集群所使用的硬件环境如表1所示。
项目 |
型号 |
---|---|
处理器 |
鲲鹏920 5250处理器 |
内存大小 |
384GB (12 * 32GB) |
内存频率 |
2666MHz |
网络 |
|
硬盘 |
|
RAID卡 |
LSI SAS3508 |
安装Spark 3.1.1引擎
安装过程选择“/opt/boostkit”作为软件安装的目录,将Spark编译依赖的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.4.0.jar(“BoostKit-haf_1.4.0.zip\haf-1.4.0.tar.gz\haf-host-1.4.0.tar.gz\lib\jar”中),上传到“/opt/boostkit”目录。
1
cp haf-1.4.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算子下推的参数信息如表2所示。
表2 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的文件路径,文件路径用户自定义。