Hadoop生态圈框架部署(九)- Hive部署
文章目录
- 前言
- 一、Hive部署(手动部署)
- 下载Hive
- 1. 上传安装包
- 2. 解压Hive安装包
- 2.1 解压
- 2.2 重命名
- 2.3 解决guava冲突
- 3. 配置Hive
- 3.1 配置Hive环境变量
- 3.2 修改 hive-site.xml 配置文件
- 3.3 配置MySQL驱动包
- 3.3.1 下在MySQL驱动包
- 3.3.2 上传MySQL驱动包
- 3.3.3 配置MySQL驱动包
- 4. 初始化MySQL上的存储hive元数据的数据库
- 5. 进入Hive客户端
- 6. 设置远程连接
- 6.1 启动MetaStore服务
- 6.2 启动HiveServer2服务
- 6.3 进入Hive客户端
- 二、在hadoop2部署一个hive作为客户端
- 1. 在hadoop2部署hive
- 2. 配置
- 2.1 配置Hive环境变量
- 2.2 修改 hive-site.xml 配置文件
- 3. 进入Hive客户端
前言
随着大数据技术的快速发展,Hive作为一种数据仓库工具,在处理大规模数据集时展现了其独特的优势。它基于Hadoop分布式文件系统(HDFS)之上提供了一种类似SQL的查询语言——HiveQL,使得熟悉关系型数据库的开发者能够轻松地进行数据查询和分析。此外,Hive还支持数据汇总、即席查询以及数据分析等任务,成为企业级数据处理解决方案中的重要组成部分。
本教程旨在为读者提供一份详尽且易于理解的Hive部署教程。通过按照本文档步骤操作,您可以成功地在单机或多机环境中搭建起Hive环境,并实现与Hadoop集群的良好集成。我们将从下载Hive安装包开始,逐步介绍如何上传、解压、配置Hive环境变量及核心配置文件,直至完成Hive服务的启动和客户端访问。不仅如此,我们还将进一步探讨如何设置远程连接,以便用户可以从其他主机上连接到Hive执行查询任务。
一、Hive部署(手动部署)
下载Hive
点击在官网下载Hive3.1.3安装包:https://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
点击在华为镜像站下载Hvie3.1.3安装包:https://repo.huaweicloud.com/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
1. 上传安装包
通过拖移的方式将下载的Hive安装包apache-hive-3.1.3-bin.tar.gz上传至虚拟机hadoop3的/export/software
目录。
2. 解压Hive安装包
2.1 解压
在虚拟机hadoop3上传完成后将Hive安装包通过解压方式安装至/export/servers
目录。
tar -zxvf /export/software/apache-hive-3.1.3-bin.tar.gz -C /export/servers/
解压完成如下图所示。
2.2 重命名
在虚拟机hadoop3执行如下命令将apache-hive-3.1.3-bin重命名为hive-3.1.3。
mv /export/servers/apache-hive-3.1.3-bin /export/servers/hive-3.1.3
2.3 解决guava冲突
如下图所示,hadoop中的guava与hive中的guava版本不一致,会产生冲突,需要把hive的guava更换为hadoop的guava高版本。
在虚拟机hadoop3执行如下命令解决guava冲突问题。
rm -f /export/servers/hive-3.1.3/lib/guava-19.0.jar
cp /export/servers/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar /export/servers/hive-3.1.3/lib
3. 配置Hive
3.1 配置Hive环境变量
在虚拟机hadoop3执行如下命令设置Hive环境变量,并加载系统环境变量配置文件。
echo >> /etc/profile
echo 'export HIVE_HOME=/export/servers/hive-3.1.3' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
source /etc/profile
3.2 修改 hive-site.xml 配置文件
在虚拟机hadoop3使用cat命令把配置内容重定向并写入到 /export/servers/hive-3.1.3/conf/hive-site.xml
文件。
cat >/export/servers/hive-3.1.3/conf/hive-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- 配置JDO(Java Data Objects)选项,指定Hive元数据存储的数据库连接URL。这里使用的是MySQL数据库,并且如果数据库不存在则自动创建。 --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value></property><!-- 指定用于连接数据库的JDBC驱动类名 --><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><!-- 数据库连接用户名 --><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- 数据库连接密码 --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- 指定Hive元数据仓库目录的位置 --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive_local/warehouse</value></property>
</configuration>
EOF
3.3 配置MySQL驱动包
3.3.1 下在MySQL驱动包
点击下载MySQL驱动jar包:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar
3.3.2 上传MySQL驱动包
通过拖移的方式将下载的MySQL驱动包上传至虚拟机hadoop3的/export/software
目录。
3.3.3 配置MySQL驱动包
在虚拟机hadoop3执行如下命令复制MySQL驱动包到/export/servers/hive-3.1.3/lib
目录下。
cp /export/software/mysql-connector-java-8.0.30.jar /export/servers/hive-3.1.3/lib/
4. 初始化MySQL上的存储hive元数据的数据库
在虚拟机hadoop3执行如下命令初始化MySQL上的存储hive元数据的数据库。
schematool -initSchema -dbType mysql
初始化完成如下图所示。
5. 进入Hive客户端
在虚拟机hadoop3执行如下命令在本地进入Hive客户端。
hive
退出Hive客户端。可以使用exit;
命令或者按快捷键Ctrl+c
退出。
exit;
6. 设置远程连接
Hive 提供了两种服务以支持用户的远程连接:
-
MetaStore 服务:MetaStore 服务负责管理 Hive 的元数据,并通过与关系型数据库的连接来存储和检索这些元数据。
-
HiveServer2 服务:HiveServer2 服务基于 Thrift 协议实现,提供了通过 JDBC 和 ODBC 连接到 Hive 的功能。它依赖于 MetaStore 服务来获取元数据信息。用户在通过 HiveServer2 服务远程连接到 Hive 之前,需要确保 MetaStore 服务已经启动并运行。
6.1 启动MetaStore服务
在虚拟机hadoop3执行如下命令启动MetaStore服务。此时的MetaStore服务是前台启动,退出将会停止MetaStore服务。
hive --service metastore
可以按快捷键
Ctrl+c
停止MetaStore服务。
由于前台启动会占用页面,执行其他命令时需要复制一个新标签,我们可以在停止MetaStore服务后使用如下命令把MetaStore服务放到后台启动,并指定日志输出位置。
mkdir -p /export/servers/hive-3.1.3/logs
nohup hive --service metastore > /export/servers/hive-3.1.3/logs/metastore.log 2>&1 &
可以使用如下命令查看启动后的MetaStore服务进程,此时如果要停止MetaStore服务,需要使用kill命令杀死对应进程。
ps -ef | grep hive
6.2 启动HiveServer2服务
复制一个hadoop3标签,在虚拟机hadoop3执行如下命令启动HiveServer2服务。此时的HiveServer2服务是前台启动,退出将会停止HiveServer2服务。启动HiveServer2服务后,用户可以通过HiveServer2服务远程连接Hive。
hive --service hiveserver2
可以按快捷键
Ctrl+c
停止HiveServer2服务。
由于前台启动会占用页面,执行其他命令时需要复制一个新标签,我们可以在停止HiveServer2服务后使用如下命令把HiveServer2服务放到后台启动,并指定日志输出位置。
nohup hive --service hiveserver2 > /export/servers/hive-3.1.3/logs/hiveserver2.log 2>&1 &
可以使用如下命令查看启动后的HiveServer2服务进程,此时如果要停止HiveServer2服务,需要使用kill命令杀死对应进程。
ps -ef | grep hive
6.3 进入Hive客户端
复制一个hadoop3标签,在虚拟机hadoop3执行如下命令远程进入Hive客户端。
beeline -u jdbc:hive2://hadoop3:10000 -n root --hiveconf hive.metastore.uris=thrift://hadoop3:9083
-
参数
-u
:指定HiveServer2服务的JDBC URL。jdbc:hive2://hadoop3:10000
中:hadoop3
是运行HiveServer2服务的服务器主机名。10000
是HiveServer2服务默认使用的端口号。
-
参数
-n
:指定连接HiveServer2服务时使用的用户名。root
是用户名,该用户必须具有操作HDFS的适当权限。
二、在hadoop2部署一个hive作为客户端
1. 在hadoop2部署hive
在虚拟机hadoop3执行如下命令复制hadoop3安装好的hive到虚拟机hadoop2。
scp -r root@hadoop3:/export/servers/hive-3.1.3 root@hadoop2:/export/servers/
2. 配置
2.1 配置Hive环境变量
在虚拟机hadoop2执行如下命令设置Hive环境变量,并加载系统环境变量配置文件。
echo >> /etc/profile
echo 'export HIVE_HOME=/export/servers/hive-3.1.3' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
source /etc/profile
2.2 修改 hive-site.xml 配置文件
在虚拟机hadoop2使用cat命令把配置内容重定向并写入到 /export/servers/hive-3.1.3/conf/hive-site.xml
文件。
cat >/export/servers/hive-3.1.3/conf/hive-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- 指定Hive Metastore服务的地址 --><property><name>hive.metastore.uris</name><value>thrift://hadoop3:9083</value></property>
</configuration>
EOF
3. 进入Hive客户端
在虚拟机hadoop2执行如下命令远程进入部署在hadoop3的Hive。
beeline -u jdbc:hive2://hadoop3:10000 -n root
相关文章:

Hadoop生态圈框架部署(九)- Hive部署
文章目录 前言一、Hive部署(手动部署)下载Hive1. 上传安装包2. 解压Hive安装包2.1 解压2.2 重命名2.3 解决guava冲突 3. 配置Hive3.1 配置Hive环境变量3.2 修改 hive-site.xml 配置文件3.3 配置MySQL驱动包3.3.1 下在MySQL驱动包3.3.2 上传MySQL驱动包3.…...

c语言的qsort函数理解与使用
介绍:qsort 函数是 C 标准库中用于排序的快速排序算法函数。它的用法非常灵活,可以对任意类型的元素进行排序,只要提供了比较函数即可。 qsort 函数原型及参数解释: void qsort ( void* base, //指向要排序的数组的首元素…...

Java 语言的起源发展与基本概念(JDK,JRE,JVM)
Java语言的起源 源起 Java语言最初是由Sun Microsystems公司(该公司于2009年被Oracle公司收购)开发的一种编程语言。其创造者是詹姆斯高斯林(James Gosling),他是一位加拿大计算机科学家。其前身名为Oak(橡…...

03_变量
变量 var num 10; 变量的重新赋值 var num10; num 20; 变量提升 JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的…...

[论文阅读-综述]Supervised Speech Separation Based on Deep Learning: An Overview
基于深度学习的监督语音分离:综述 出版:IEEE 核心:使用语音分离将目标语音信号与噪声混合分离的计算 本文用于对该文章的学习,主要是对内容的理解翻译与笔记 1. 语音分离介绍 语音分离的目标:将目标语音与背景干扰分…...

群控系统服务端开发模式-应用开发-邮箱配置功能开发
邮箱配置主要是将管理员数据做归属。具体见下图: 一、创建表 1、语句 CREATE TABLE cluster_control.nc_param_mail (id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 编号,title varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT…...

【机器学习】——卷积与循环的交响曲:神经网络模型在现代科技中的协奏
🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL࿰…...

android studio引用so库
在工程中编译好的so库文件将在原始编译工程对应目录下:build/intermediates/cxx/Debug/xxxxxx/obj/ 其目录结构如上所示,包含生成的四个版本,每个文件夹下均包含c/c源码编译成的Android版本的libnavi.so库和提供应用接口的libnavi-lib.so库。…...

2024年信号处理与神经网络应用(SPNNA 2024)
会议官网:www.spnna.org 会议时间:2024年12月13-15日 会议地点:中国武汉...

wxWidgets-ImageView
wxWidgets实现图片浏览、放大缩小、另存为新的图片格式等 #include "wx/wxprec.h"#ifndef WX_PRECOMP#include "wx/wx.h" #endif#include "wx/filename.h" #include "wx/zstream.h"#include "imageviewctrl.h"class MyFrame…...

第1章-JVM和Java体系架构
虚拟机 虚拟机概念 所谓虚拟机(Virtual Machine),就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。 大名鼎鼎的Virtual Box,VMware就属…...
windows 服务器角色
windows 服务器角色 Active Directory Rights Management Services Active Directory RightsManagement Services (AD RS)帮助保护信息,防止未授权使用。AD RMS 将建立用户标识,并为授权用户提供受保护信息的许可证。 ServicesActive Directory 联合身…...

[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式
T. 已测试目录 主机类型主机版本Docker镜像版本结果WSL2Ubuntu22.04Ubuntu20.04PASSWSL2Ubuntu22.04Ubuntu18.04PASS R. 软硬件要求: 编译硬件需求:做多系统测试,磁盘500GB起步(固态)(机械会卡死),内存3…...

C#中判断两个 List<T> 的内容是否相等
ET实现游戏中邮件系统逻辑思路(服务端)_游戏邮件系统设计-CSDN博客 场景:今天遇到一个BUG,在服务器重启的时候(体验服),玩家之前接收的邮件又重新接收了一次,但是两封邮件的ID是不同…...
Linux环境下配置neo4j图数据库
1.下载安装包 openjdk-11.0.1_linux-x64_bin.tar.gz neo4j-community-4.2.19-unix.tar.gz 2.之前配置好的配置文件 neo4j.conf 3.安装 3.1-jdk11的安装(jdk1.8不够用) 解压缩 tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz修改系统环境变量 打开pro…...
Windows 11 搭建 Docker 桌面版详细教程
在当今的软件开发与部署领域,Docker 已成为一项极为重要的容器化技术。它能够让开发者轻松地打包应用及其依赖项,实现跨环境的一致性运行,大大提高了开发效率与部署的便捷性。本教程将详细介绍在 Windows 11 操作系统上搭建 Docker 桌面版的具…...

Pytest-Bdd-Playwright 系列教程(13):钩子(hooks)
Pytest-Bdd-Playwright 系列教程(13):钩子(hooks) 前言一、什么是钩子?二、Pytest-Bdd 提供的钩子一览三、钩子用法详解1. pytest_bdd_before_scenario2. pytest_bdd_after_scenario3. pytest_bdd_before_s…...

dns 服务器简单介绍
dns 服务器分类: 根域名服务器顶级域名服务器权威域名服务器本地域名服务器 dns 的查询过程 国内优秀公共域名 腾讯:DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS-烟台帝思普网络科技有限公司 119.29.29.29 和 182.254.118.118 阿里…...
Neo4j图形数据库-Cypher中常用指令
一、创建与修改 1.1 create 创建图数据库中的节点、关系等元素: CREATE (:Person {name: "Alice", age: 30}) CREATE (p1:Person {name: "Bob"})-[r:KNOWS]->(p2:Person {name: "Charlie"})批量创建元素 CREATE (n1:Node),(n2…...
linux安全管理-防火墙配置
1. 开启系统防火墙 1、检查内容 检查操作系统是否开启防火墙; 2、配置要求 操作系统开启防火墙; 3、配置方法 systemctl status firewalld ##查看系统防火墙运行状态 systemctl start firewalld ##启动防火墙 systemctl restart firewalld ##重启防火墙…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...