基于飞腾平台的Hive的安装配置

 【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png​​​

本文分享至飞腾开发者平台《飞腾平台Hive3.1.2安装手册》

1 介绍

  Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

  最初,Hive是由Facebook开发,后来由Apache软件基金会开发,并作为进一步将它作为名义下Apache Hive为一个开源项目。Hive 没有专门的数据格式。 Hive 可以很好的工作在 Thrift 之上,控制分隔符,也允许用户指定数据格式。Hive不适用于在线事务处理。它最适用于传统的数据仓库任务。Hive 构建在基于静态批处理的Hadoop 之上,Hadoop
通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB的数据集上执行查询一般有分钟级的时间延迟。因此,Hive并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop监控作业执行过程,然后返回作业执行结果给用户。Hive并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作

  本文主要介绍移植适配后的Hive.3.1.2在飞腾平台的安装与部署过程。

2 环境要求

2.1 硬件要求

  硬件要求如下表所示。

项目说明
CPUFT-2000+/64服务器
网络无要求
存储无要求
内存无要求

2.2 操作系统要求

  操作系统要求如下表所示。

项目说明
CentOS8
Kernel4.18.0-193.el8.aarch64

2.3 软件要求

  软件要求如下表所示。

项目说明
Java1.8.0_281
MySQL5.7
Hadoop3.3.0

3 安装与部署

3.1 程序部署

  步骤一 下载apache-Hive

wget
https://mirrors.bfsu.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin.tar.gz /opt
cd /opt/
tar -zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin.tar.gz hive-3.1.2

  步骤二 创建mysql数据库与账号

CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE
utf8_general_ci;
create user 'bigdata'\@'%' identified by 'bigdata';
grant all privileges on \*.\* to 'bigdata'\@'%' identified by 'bigdata' ;
FLUSH PRIVILEGES;

3.2 程序配置

  步骤一 配置环境变量

  (1)编辑 /etc/profile 文件,添加以下内容:

export HIVE_HOME=/opt /hive-3.1.2

export PATH=\$PATH:\$HIVE_HOME/bin

  (2)配置程序环境变量, 拷贝 hive-env.sh.template 为hive-env.sh,添加以下内容:

HADOOP_HOME=/opt/hadoop-3.3.0

export HIVE_CONF_DIR=/opt/hive-3.1.2/conf

export HIVE_AUX_JARS_PATH=/opt/hive-3.1.2/auxlib

export JAVA_HOME=/opt/jdk1.8.0_281

  步骤二 配置日志信息

mv hive-log4j2.properties.template hive-log4j2.properties

mv beeline-log4j2.properties.template beeline-log4j2.properties

mv hive-exec-log4j2.properties.template hive-exec-log4j2.properties

  步骤三 进入$ HIVE_HOME目录,并新建 conf/hive-site.xml 文件添加以下配置

<configuration>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

        <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionUserName</name>

        <value>bigdata</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionPassword</name>

        <value>bigdata</value>

    </property>

    <property>

        <name>hive.metastore.warehouse.dir</name>

        <value>/user/hive/warehouse</value>

    </property>

    <property>

        <name>hive.exec.scratchdir</name>

        <value>/user/hive/tmp</value>

        <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir:${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>

    </property>

    <property>

        <name>hive.querylog.location</name>

        <value>/user/hive/log</value>

        <description>Location of Hive run time structured log file</description>

    </property>

</configuration>

  步骤四 上传Mysql驱动包到hive的lib目录

cp mysql-connector-java.jar /opt/hive-3.1.2/lib/

  步骤五 初始化Hive元数据库配置

[hadoop@engine hive-3.1.2]$ schematool -dbType mysql -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/opt/hive-3.1.2/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/opt/hadoop-3.3.0/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html\#multiple_bindings for an
explanation.
SLF4J: Actual binding is of type
[org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL:    
jdbc:mysql://172.16.32.200:3306/apache_hive_db?createDatabaseIfNotExist=true
Metastore Connection Driver :     com.mysql.jdbc.Driver
Metastore connection User:     bigdata
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed

  步骤六 在HDFS上创建目录

${HADOOP_HOME}/bin/hdfs dfs -mkdir -p /user/hive/warehouse
${HADOOP_HOME}/bin/hdfs dfs -mkdir -p /user/hive/tmp
${HADOOP_HOME}/bin/hdfs dfs -mkdir -p /user/hive/log
${HADOOP_HOME}/bin/hdfs dfs -chmod -R 777 /user/hive/warehouse
${HADOOP_HOME}/bin/hdfs dfs -chmod -R 777 /user/hive/tmp
${HADOOP_HOME}/bin/hdfs dfs -chmod -R 777 /user/hive/log

3.3 启动服务

  步骤一 启动Hadoop集群(安装过程参见hadoop集群安装手册)

  步骤二 启动hiveserver2

cd /opt/hive-3.1.2/bin
nohup ./hiveserver2 \>_run.log &

  步骤三 检查hiveserver2进程

# ps -elf\|grep hiveserver

  如果显示:

[hadoop@master hive-3.1.2]$ ps -elf|grep hiveserver
0 S hadoop  1083884    1 0 80  0 - 35891 futex_ 09:02 pts/0  00:01:59
/opt/jdk1.8.0_281/bin/java -Dproc_jar -Dproc_hiveserver2
-Dlog4j.configurationFile=hive-log4j2.properties
-Djava.util.logging.config.file=/opt/hive-3.1.2/conf/parquet-logging.properties
-Djline.terminal=jline.UnsupportedTerminal -Dyarn.log.dir=/opt/hadoop-3.3.0/logs 
-Dyarn.log.file=hadoop.log -Dyarn.home.dir=/opt/hadoop-3.3.0 -Dyarn.root.logger=INFO,console
-Djava.library.path=/opt/hadoop-3.3.0/lib/native -Xmx256m
-Dhadoop.log.dir=/opt/hadoop-3.3.0/logs -Dhadoop.log.file=hadoop.log
-Dhadoop.home.dir=/opt/hadoop-3.3.0 -Dhadoop.id.str=hadoop
-Dhadoop.root.logger=INFO,console -Dhadoop.policy.file=hadoop-policy.xml
-Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar
/opt/hive-3.1.2/lib/hive-service-3.1.2.jar org.apache.hive.service.server.HiveServer2

  如果出现以上进程,表示Hiveserver启动成功

4 功能测试

4.1 Hive命令测试

  步骤一 运行hive终端命令

$HIVE_HOME/bin/hive

  启动过程日志如下:

[hadoop@master hive-3.1.2]$ $HIVE_HOME/bin/hive
which: no hbase in
(/home/hadoop/.local/bin:/home/hadoop/bin:/opt/apache-maven 3.3.9/bin:/home/phytium/.local/bin:/home/phytium/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/mysql/bin:/opt/jdk1.8.0_281/bin:/usr/local/lib:/usr/local/bin:/usr/local/bin:/opt/hadoop-3.3.0/sbin:/opt/hadoop-3.3.0/bin:/usr/local/mysql/bin:/opt/hive-3.1.2/bin:/root/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/opt/hive-3.1.2/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/opt/hadoop-3.3.0/share/hadoop/common/lib/slf4j-log4j12 1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html\#multiple_bindings for an explanation.
SLF4J: Actual binding is of type[org.apache.logging.slf4j.Log4jLoggerFactory]
Hive Session ID = 5b09fa6f-638c-4363-bd45-31d07e773a41

Logging initialized using configuration in file:/opt/hive-3.1.2/conf/hive-log4j2.properties Async: true
Hive Session ID = 7025b4a7-0c70-4274-bb1b-66989b813198
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive\>

  表示进入到hive终端:

  步骤二 测试hive SQL

hive> show databases;
OK
default
Time taken: 1.59 seconds, Fetched: 1 row(s)
hive>

  hive SQL可以成功运行

4.2 Beeline方式连接

  步骤一 启动beeline连接到hiveserver2

$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000 -n hadoop

  启动过程日志如下:

[hadoop@master bin]$ beeline -u jdbc:hive2://localhost:10000 -n hadoop
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/opt/hive-3.1.2/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/opt/hadoop-3.3.0/share/hadoop/common/lib/slf4j-log4j12 1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html\#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Connecting to jdbc:hive2://localhost:10000
Connected to: Apache Hive (version 3.1.2)
Driver: Hive JDBC (version 3.1.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 3.1.2 by Apache Hive
0: jdbc:hive2://localhost:10000>

  表示连接到hiveserver成功

  步骤二 测试hive SQL

0: jdbc:hive2://localhost:10000> show databases;
INFO : Compiling
command(queryId=hadoop_20210721153935_ef385520-032c-4de9-98c0-b01dadbb3b4c): show databases
INFO : Concurrency mode is disabled, not creating a lock manager
INFO : Semantic Analysis Completed (retrial = false)
INFO : Returning Hive schema:
Schema(fieldSchemas:[FieldSchema(name:database_name, type:string,comment:from deserializer)], properties:null)
INFO : Completed compiling
command(queryId=hadoop_20210721153935_ef385520-032c-4de9-98c0-b01dadbb3b4c);
Time taken: 0.028 seconds
INFO : Concurrency mode is disabled, not creating a lock manager
INFO : Executing
command(queryId=hadoop_20210721153935_ef385520-032c-4de9-98c0-b01dadbb3b4c): show databases
INFO : Starting task [Stage-0:DDL] in serial mode
INFO : Completed executing
command(queryId=hadoop_20210721153935_ef385520-032c-4de9-98c0-b01dadbb3b4c);Time taken: 0.016 seconds
INFO : OK
INFO : Concurrency mode is disabled, not creating a lock manager
+----------------+
| database_name |
+----------------+
| default    |
+----------------+
1 row selected (0.179 seconds)
0: jdbc:hive2://localhost:10000>

  结果表明:hive运行Hive SQL程序运行结果正确,符合预期,飞腾平台下的Hive功能正常。

推荐阅读

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们


版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值