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

部署Hive引擎

规划集群环境

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

图1 环境配置

集群所使用的硬件环境如表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 集群环境软件配置所示。

表2 集群环境软件配置

项目

版本

OS

openEuler 20.03 LTS SP1

JDK

毕昇8u262

Hadoop

3.2.0

Spark

3.0.0

Hive

3.1.0

ZooKeeper

3.6.2

Ceph

14.2.8

安装Hive引擎

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

表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包。

  1. 创建“/opt/hive/boostkit”目录。
    1
    mkdir -p /opt/hive/boostkit
    
  2. 在任务提交节点(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
    
  3. 将在软件获取中得到的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
    
  4. 将在软件获取中得到的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
    
  5. 使用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
    
  6. 将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
    

    如果用户需要手动编译boostkit-omnidata-hive-exec-3.1.0-1.3.0.jar,可以根据README.md编译。

  7. 新建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
    
  8. “/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/
    
  9. 修改配置文件“/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
    
  10. 修改配置文件“/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>
    
  11. 将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