部署Hive引擎
规划集群环境
本章节规划的环境有七台服务器组成,分别是任务提交节点(1台)、计算节点(3台)、存储节点(3台)。其中Hive Client作为大数据集群的任务提交节点,计算节点分别是大数据集群的agent1、agent2和agent3。存储节点分别是大数据集群的ceph1、ceph2、ceph3。如图1所示。
集群所使用的硬件环境如表1 集群环境硬件配置所示。
项目 |
型号 |
---|---|
服务器名称 |
TaiShan服务器 |
处理器 |
鲲鹏920 5220处理器 |
内存大小 |
384GB (12 * 32GB) |
内存频率 |
2666MHz |
网卡 |
业务网络25GE,管理网络GE |
硬盘 |
系统盘:1*RAID 0(1*1.2T SAS HDD) 管理节点:12*RAID 0(1*4T SATA HDD) 业务节点:12*RAID 0(1*4T SATA HDD) 1*3.2T NVMe |
RAID卡 |
LSI SAS3508 |
使用到的相关软件版本如表2 集群环境软件配置所示。
安装Hive引擎
安装过程选择“/opt/hive/boostkit”作为软件安装的目录,将Hive依赖的JAR都放在该目录下,如表3 组件安装目录所示。
安装节点 |
安装目录 |
安装组件 |
获取方式 |
---|---|---|---|
服务端(server1) |
/opt/hive/boostkit |
aws-java-sdk-bundle-1.11.375.jar |
鲲鹏社区下载 |
bcpkix-jdk15on-1.68.jar |
鲲鹏社区下载 |
||
bcprov-jdk15on-1.68.jar |
鲲鹏社区下载 |
||
boostkit-omnidata-server-1.3.0-aarch64.jar |
华为Support官网下载 |
||
boostkit-omnidata-hive-exec-3.1.0-1.3.0.jar |
鲲鹏社区下载或者使用源码进行编译 |
||
guava-31.1-jre.jar |
鲲鹏社区下载 |
||
hadoop-aws-3.2.0.jar |
鲲鹏社区下载 |
||
kryo-shaded-4.0.2.jar |
鲲鹏社区下载 |
||
haf-jni-call-1.2.0.jar |
华为Support官网下载 |
||
hdfs-ceph-3.2.0.jar |
鲲鹏社区下载 |
||
hetu-transport-1.6.1.jar |
鲲鹏社区下载 |
||
jackson-annotations-2.12.4.jar |
鲲鹏社区下载 |
||
jackson-core-2.12.4.jar |
鲲鹏社区下载 |
||
jackson-databind-2.12.4.jar |
鲲鹏社区下载 |
||
jackson-datatype-guava-2.12.4.jar |
鲲鹏社区下载 |
||
jackson-datatype-jdk8-2.12.4.jar |
鲲鹏社区下载 |
||
jackson-datatype-joda-2.12.4.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、hadoop-aws-3.2.0.jar、hdfs-ceph-3.2.0.jar这三个JAR包在ceph环境下需要添加,HDFS不需要这三个JAR包。
- 创建“/opt/hive/boostkit”目录。
1
mkdir -p /opt/hive/boostkit
- 在任务提交节点(server1)上,将在软件获取中得到boostkit-omnidata-server-1.3.0-aarch64.jar(“BoostKit-omnidata_1.3.0.zip\BoostKit-omnidata_1.3.0.tar.gz\boostkit-omnidata-server-1.3.0-aarch64.tar.gz\omnidata\lib”中),上传到“/opt/hive/boostkit”目录。
1
cp boostkit-omnidata-server-1.3.0-aarch64.jar /opt/hive/boostkit
- 将在软件获取中得到的haf-jni-call-1.2.0.jar(“BoostKit-haf_1.2.0.zip\haf-1.2.0.tar.gz\haf-host-1.2.0.tar.gz\lib\jar”中),上传到“/opt/hive/boostkit”目录。
1
cp haf-jni-call-1.2.0.jar /opt/hive/boostkit
- 将在软件获取中得到的hdfs-ceph-3.2.0.jar和boostkit-omnidata-server-1.3.0-aarch64-lib.zip中的aws-java-sdk-bundle-1.11.375.jar、hadoop-aws-3.2.0.jar,上传到“/opt/hive/boostkit”目录(如果是HDFS存储系统,则跳过该步骤)。
1 2 3
cp aws-java-sdk-bundle-1.11.375.jar /opt/hive/boostkit cp hadoop-aws-3.2.0.jar /opt/hive/boostkit cp hdfs-ceph-3.2.0.jar /opt/hive/boostkit
- 使用FTP工具将boostkit-omnidata-hive-exec-3.1.0-1.3.0.zip压缩包上传到安装环境并解压。
1
unzip boostkit-omnidata-hive-exec-3.1.0-1.3.0.zip
- 将boostkit-omnidata-hive-exec-3.1.0-1.3.0.zip压缩包内的JAR包拷贝到“/opt/hive/boostkit”目录。
1 2
cd boostkit-omnidata-hive-exec-3.1.0-1.3.0 cp *.jar /opt/hive/boostkit
- 新建tez-ndp目录,从hdfs上获取tez.tar.gz(默认路径“/apps/tez/tez.tar.gz”),并解压。
1 2 3 4 5
cd /opt/hive/ mkdir tez-ndp cd tez-ndp hdfs dfs -get /apps/tez/tez.tar.gz . tar -zxvf tez.tar.gz
- 将“/opt/hive/boostkit”目录中的boostkit整个目录拷贝到tez-ndp中,并压缩上传至hdfs上,需要删除原始的tez.tar.gz。
1 2 3 4 5 6
cd /opt/hive/tez-ndp cp -r /opt/hive/boostkit . rm -rf tez.tar.gz tar -zcvf tez.tar.gz * hdfs dfs -rmr /apps/tez/tez.tar.gz hdfs dfs -put tez.tar.gz /apps/tez/
- 修改配置文件“/usr/local/hive/conf/hive-env.sh”,在文件末尾添加以下配置:
1 2 3 4
export BOOSTKIT_HOME=/opt/hive/boostkit for f in ${BOOSTKIT_HOME}/*.jar; do HIVE_CONF_DIR=${HIVE_CONF_DIR}:$f done
- 修改配置文件“/usr/local/tez/conf/tez-site.xml”,在文件末尾添加以下配置:
1 2 3 4 5 6 7 8 9 10 11 12
<property> <name>tez.user.classpath.first</name> <value>true</value> </property> <property> <name>tez.cluster.additional.classpath.prefix</name> <value>$PWD/tezlib/boostkit/*</value> </property> <property> <name>tez.task.launch.env</name> <value>PATH=/home/omm/haf-host/bin:$PATH,LD_LIBRARY_PATH=/home/omm/haf-host/lib:$LD_LIBRARY_PATH,CLASS_PATH=/home/omm/haf-host/lib/jar/haf-jni-call-1.2.0.jar:$CLASS_PATH,HAF_CONFIG_PATH=/home/omm/haf-host/</value> </property>
- 将HAF的安装目录“/home/omm/haf-install/haf-host/lib”下的so文件使用scp命令拷贝到安装hadoop的节点上,目录为“/usr/local/hadoop/lib/native”:
1 2 3 4 5 6 7
cd /home/omm/haf-install/haf-host/lib cp lib* /usr/local/hadoop/lib/native scp lib* {安装hadoop的节点}:/usr/local/hadoop/lib/native 例子: scp lib* agent1:/usr/local/hadoop/lib/native scp lib* agent2:/usr/local/hadoop/lib/native scp lib* agent3:/usr/local/hadoop/lib/native