基于飞腾平台的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.2export PATH=\$PATH:\$HIVE_HOME/bin

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

HADOOP_HOME=/opt/hadoop-3.3.0export HIVE_CONF_DIR=/opt/hive-3.1.2/confexport HIVE_AUX_JARS_PATH=/opt/hive-3.1.2/auxlibexport JAVA_HOME=/opt/jdk1.8.0_281

  步骤二 配置日志信息

mv hive-log4j2.properties.template hive-log4j2.propertiesmv beeline-log4j2.properties.template beeline-log4j2.propertiesmv 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-31d07e773a41Logging 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功能正常。

推荐阅读

  • 基于飞腾平台的Hbase的安装配置
  • 基于飞腾平台的Hadoop的安装配置

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

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


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

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

商标声明

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

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

注意

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/878868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通信工程学习:什么是PCM脉冲编码调制、DPCM差分脉冲编码调制、ADPCM自适应差分脉冲编码调制

PCM脉冲编码调制、DPCM差分脉冲编码调制、ADPCM自适应差分脉冲编码调制 PCM、DPCM、ADPCM是音频编码技术中的三种重要方式&#xff0c;它们在音频信号的数字化、压缩和传输中起着关键作用。以下是对这三种技术的详细解释&#xff1a; 一、PCM&#xff08;Pulse Code Modulatio…

2024数学建模国赛选题建议+团队助攻资料(已更新完毕)

目录 一、题目特点和选题建议 二、模型选择 1、评价模型 2、预测模型 3、分类模型 4、优化模型 5、统计分析模型 三、white学长团队助攻资料 1、助攻代码 2、成品论文PDF版 3、成品论文word版 9月5日晚18&#xff1a;00就要公布题目了&#xff0c;根据历年竞赛题目…

爬虫 4399 小游戏

import requests from bs4 import BeautifulSoup import pymongo# 发起请求获取数据 res requests.get("https://www.4399.com/") # 解码数据 content res.content.decode("gbk") # 解析数据 soup BeautifulSoup(content, parserhtml.parser)# 获取推荐…

[C#学习笔记]注释

官方文档&#xff1a;Documentation comments - C# language specification | Microsoft Learn 一、常用标记总结 1.1 将文本设置为代码风格的字体&#xff1a;<c> 1.2 源代码或程序输出:<code> 1.3 异常指示:<exception> 1.4 段落 <para> 1.5 换行&…

Reflection 70B:震撼AI行业的开源模型

随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;开源与闭源模型的竞争变得越来越激烈。近日&#xff0c;Reflection 70B模型的发布在AI行业引发了巨大的震动。这款拥有70亿参数的开源模型不仅在多项基准测试中取得了优异成绩&#xff0c;还在很多情况下超越…

滑动窗口系列(同向双指针)/9.7

新的解题思路 一、三数之和的多种可能 给定一个整数数组 arr &#xff0c;以及一个整数 target 作为目标值&#xff0c;返回满足 i < j < k 且 arr[i] arr[j] arr[k] target 的元组 i, j, k 的数量。 由于结果会非常大&#xff0c;请返回 109 7 的模。 输入&…

Gemini AI 与 ChatGPT:哪个更适合为我策划婚礼?

我在六月订婚后&#xff0c;一心想着婚礼钟声&#xff0c;但在看到这些婚礼场地报价后&#xff0c;更像是警铃声响起。 “叮咚”已经被重新混音成“哗啦啦”——我需要帮助。 我甚至不知道如何 开始 计划婚礼。第一步是什么&#xff1f;我需要优先考虑什么&#xff1f;哪些任…

【阿里云】个人认证与公司认证

个人认证和企业认证的区别 更新时间&#xff1a;2024-05-20 09:32:52 本文档主要介绍个人认证账号和企业认证账号的区别。 账号实名认证分为个人实名认证和企业实名认证。 个人账号认证&#xff0c;请选择认证类型为 个人&#xff0c;支持个人支付宝授权认证和个人扫脸认证。…

使用cage工具包生成验证码

目录 1. 导入依赖2. 控制类3. 测试 1. 导入依赖 <!-- 验证码工具 --><dependency><groupId>com.github.cage</groupId><artifactId>cage</artifactId><version>1.0</version></dependency>2. 控制类 RestControl…

探索 RAD:5 个最佳实践案例解析

天下武功&#xff0c;唯快不破&#xff01;应用开发&#xff0c;唯速称王&#xff01; 在当今快速发展的科技环境中&#xff0c;企业面临的挑战不断升级。传统的应用开发方法往往因其复杂的流程和较长的开发周期而无法满足快速变化的市场需求。在这种背景下&#xff0c;快速应…

前端vue项目服务器部署(docker)

前端vue项目服务器部署(docker) 步骤 1: 导入 Nginx Docker 镜像 1、上传 Nginx Docker 镜像 将你的nginx-alpine.tar包上传到服务器上。假设路径为 /var/v3-admin-vite/nginx-alpine.tar。 scp -r "C:\Users\86184\Desktop\v3-admin-vite" root110.40.179.182:/…

两个长整数字符串求和(不允许使用ES6+)

两个长整数字符串求和(不允许使用ES6), 面试手撸代码遇到到这个问题 1. 实现方式第一种 // 短整数字符串前边补 0; num需要补 0 的短整数字符串, len 长整数字符串的长度 function fillZero (num, len) {let str num.toString();if (str.length < len) {str 0.repeat(…

Math Reference Notes: 三角函数术语的几何学解释

在三角函数中&#xff0c;“正”、“余”、“弦”、"割"这些词汇源自古代的几何学术语&#xff0c;它们与三角形的边和角的关系密切相关。 1. 弦&#xff08;sin&#xff0c;cos的含义&#xff09;&#xff1a; “弦”字来源于圆中的“弦线”&#xff0c;即连接圆周…

Mybatis【分页插件,缓存,一级缓存,二级缓存,常见缓存面试题】

文章目录 MyBatis缓存分页延迟加载和立即加载什么是立即加载&#xff1f;什么是延迟加载&#xff1f;延迟加载/懒加载的配置 缓存什么是缓存&#xff1f;缓存的术语什么是MyBatis 缓存&#xff1f;缓存的适用性缓存的分类一级缓存引入案例一级缓存的配置一级缓存的工作流程一级…

【JavaSE基础】Java 基础知识

Java 转义字符 Java 常用的转义字符 在控制台&#xff0c;输入 tab 键&#xff0c;可以实现命令补全 转义字符含义作用\t制表符一个制表位&#xff0c;实现对齐的功能\n &#xff1a;换行符\n换行符一个换行符\r回车符一个回车键 System.out.println(“韩顺平教育\r 北京”);&…

java实现,PDF转换为TIF

目录 ■JDK版本 ■java代码・实现效果 ■POM引用 ■之前TIF相关的问题&#xff08;两张TIF合并&#xff09; ■对于成果物TIF&#xff0c;需要考虑的点 ■问题 ■问题1&#xff1a;无法生成TIF&#xff0c;已解决 ■问题2&#xff1a;生成的TIF过大&#xff0c;已解决 …

RAG与LLM原理及实践(14)---RAG Python 前端构建技术Flask

目录 背景 Flask 简介 Flask 的特点 flask 安装 Flask python server 端处理 app 资源映射 router概念 Flask 客户端处理 Jinja2 概述 具体语法 实例 python 后端 代码 前端相关代码 代码解释 运行 check 启动日志 背景 本专栏之前的文章都在描述RAG后台的搭…

MySQL之DQL-分组函数

1、分组函数 1. 分组函数语法 分组函数也叫聚合函数。是对表中一组记录进行操作&#xff0c;每组只返回一个结果。我们只讲如下5个常用的分组函数&#xff1a; 分组函数 含义 MAX 求最大值 MIN 求最小值 SUM 求和 AVG 求平均值 COUNT 求个数 分组函数的语法如下…

Java中的强引用、软引用、弱引用和虚引用于JVM的垃圾回收机制

参考资料 https://juejin.cn/post/7123853933801373733 在 Java 中&#xff0c;引用类型分为四种&#xff1a;强引用&#xff08;Strong Reference&#xff09;、软引用&#xff08;Soft Reference&#xff09;、弱引用&#xff08;Weak Reference&#xff09;和虚引用&#xf…

水晶连连看 - 无限版软件操作说明书

水晶连连看 – 无限版游戏软件使用说明书 文章目录 水晶连连看 – 无限版游戏软件使用说明书1 引言1.1 编写目的1.2 项目名称1.3 项目背景1.4 项目开发环境 2 概述2.1 目标2.2 功能2.3 性能 3 运行环境3.1 硬件3.2 软件 4 使用说明4.1 游戏开始界面4.2 游戏设定4.2.1 游戏帮助4…