搭建Hive 3.x环境(CentOS 9 + Hadoop3.x)

零、资源准备

  • 虚拟机相关:
    • VMware workstation 16:虚拟机 > vmware_177981.zip
    • CentOS Stream 9:虚拟机 > CentOS-Stream-9-latest-x86_64-dvd1.iso
  • JDK
    • jdk1.8:JDK > jdk-8u261-linux-x64.tar.gz
  • Hadoop
    • Hadoop 3.3.6:Hadoop > Hadoop 3.3.6.tar.gz
  • Hive
    • Hive 3.1.3: Hive > apache-hive-3.1.3-bin.tar.gz
  • JDBC
    • JDBC连接器:JDBC->mysql-connector-java-8.0.30.jar
  • 辅助工具
    • MobaXterm:tools > MobaXterm_Portable_v24.0.zip

本文相关资源可以在文末提供的百度网盘资源中下载,除了vmware(你懂的…),以上资源均来源于官网,MobaXterm是便捷式软件,无需安装。

约定:所有安装包存放于/software, 安装目录为/opt

一、安装准备

1. 安装Hadoop 3.x

参见:搭建Hadoop3.x完全分布式集群(CentOS 9)

2. 安装MySQL

将MySQL安装在虚拟机Hadoop3。

1) 下载MySQL的源文件

可以通过 wget 工具下载 MySQL 源文件。

mkdir /software
cd /software
yum -y install wget
wget http://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

2)安装MySQL源

安装下载的MySQL源文件,在MySQL源文件所在目录执行如下命令。

yum localinstall mysql80-community-release-el9-1.noarch.rpm

3) 安装MySQL

yum install mysql-community-server -y

如果出现Error: GPG check FAILED错误,是Mysql的GPG升级的缘故

在这里插入图片描述

解决办法:

(1)获取GPG:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

(2)重新配置GPG: vi /etc/yum.repos.d/mysql-community.repo

在这里插入图片描述

(3) 运行yum install mysql-community-server -y重新安装MySQL

如果还是不能解决,可以参考官方安装指南: https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en

4)启动MySQL服务

启动MySQL服务,在虚拟机Hadoop3上执行如下命令。

systemctl start mysqld

可以使用命令 systemctl status mysqld 检查服务状态

MySQL安装完成后,默认为root用户提供了初始密码,查看该初始密码的命令如下所示。

5)查看MySQL初始密码

MySQL安装完成后,默认为root用户提供了初始密码,查看该初始密码的命令如下所示。

grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

6)修改密码

通过root用户,以及MySQL为root用户提供的初始密码登陆MySQL,具体命令如下。

mysql –uroot -p

在这里插入图片描述

MySQL默认为root提供的密码较为复杂不便使用,这里将root用户的密码修改为Abc@2024,刷新MySQL配置,使修改root用户密码的操作生效,具体命令如下。

mysql> alter user 'root'@'localhost' identified by 'Abc@2024';
mysql> FLUSH PRIVILEGES;

7)配置远程访问

修改Mysql配置文件vi /etc/my.cnf, 在[mysqld]选项下添加如下配置:

bind-address=0.0.0.0

授权帐号可以远程登录,介绍两种方法,任选其一:

方法一:改表法

mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

方法二:授权法

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Abc@2024' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

最后重启Mysqld服务

systemctl restart mysqld

二、本地模式

这里将Hive安装在Hadoop1虚拟机上

1. 安装Hive

1)上传Hive安装包

通过Hive官网或者文末提供的百度网盘链接下载Hive的安装包apache-hive-3.1.3-bin.tar.gz,使用相关工具(比如xftp、winscp、MobaXterm等)上传安装包到 /software目录。

这里介绍如何

在这里插入图片描述

点击ok后输入密码,左边是本机的目录,右边是虚拟机的目录,找到相应目录和文件,将安装包拖至右窗口即可。

在这里插入图片描述

2) 安装Hive

以解压方式安装Hive,将Hive安装到目录/opt,将Hive安装目录重命名为hive-3.1.3,在虚拟机Hadoop1上执行如下命令即可。

tar -zxvf /software/apache-hive-3.1.3-bin.tar.gz –C /opt	
cd /opt
mv apache-hive-3.1.3-bin/ hive-3.1.3

3) 同步guava包

将Hive中的guava-19.0.jar替换为Hadoop中的guava-27.0-jre.jar,具体操作执行如下命令。

cd  /opt/hadoop-3.3.6/share/hadoop/common/lib	
cp guava-27.0-jre.jar /opt/hive-3.1.3/lib/	
rm -fr /opt/hive-3.1.3/lib/guava-19.0.jar

4)配置Hive系统环境变量

在虚拟机执行vi /etc/profile命令配置系统环境变量文件profile,在该文件的底部添加如下内容。

export HIVE_HOME=/opt/hive-3.1.3
export PATH=$PATH:$HIVE_HOME/bin	

执行source /etc/profile命令初始化系统环境变量使添加的Hive系统环境变量生效。

2. 配置Hive

在Hive安装目录的conf下执行vi hive-site.xml命令创建Hive配置文件hive-site.xml,在该文件中添加如下内容。

<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop3:3306/hive?createDatabaseIfNotExist=true </value></property><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>Abc@2024</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property>         <name>hive.server2.thrift.port</name>         <value>10000</value>     </property>    <property>        <name>hive.server2.thrift.bind.host</name>        <value>hadoop1</value>    </property>
</configuration>

常用参数介绍如下:

属性名称类型默认值描述
hive.metastore.warehouse.dirURI/user/hive/warehouse配置Hive数据存储在HDFS上的目录,托管表就存储在这里
hive.server2.thrift.portINT默认10000配置hiveserver2的端口
hive.server2.thrift.bind.hostStringlocalhost配置hiveserver2的主机
hive.metastore.uris逗号分隔的URI未设定如果未设置(默认值),则使用当前的metastore,否则连接到由URI列表指定要连接的远程metastore服务器。如果有多个远程服务器,则客户端便以轮询方式连接
javax.jdo.option.ConnectionURLURIjdbc:derby:;databaseName=metastore_db;create=true配置JDBC连接地址, mysql示例: jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverNameStringorg.apache.derby.jdbc.EmbeddedDriver配置JDBC驱动, mysql示例: com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserNameStringAPP配置连接MySQL的用户名
javax.jdo.option.ConnectionPasswordStringmine配置连接MySQL的密码

3. 元数据初始化

1)上传MySQL驱动包

在官网或者文末网盘链接下载MySQL驱动包mysql-connector-java-8.0.30.jar,将上传到在虚拟机Hadoop1的/opt/hive-3.1.3/lib目录。

2)初始化MySQL

在操作本地模式部署的Hive之前,需要执行初始化MySQL的操作,具体命令如下。

schematool -initSchema -dbType mysql

在这里插入图片描述

4. 测试

1)启动Hadoop

在虚拟机hadoop1中,使用命令start-all.sh启动hadoop集群。

2)CLI测试

hive命令后不跟参数时,默认启动cli,即下面命令可以省略--service cli参数

hive --service cli
hive> show databases;

在这里插入图片描述

3) beeline测试

Beeline是Hive 0.11版本引入的Hive客户端工具,它通过JDBC的方式连接HiveServer2服务。所以在使用beeline客户端,需要启动hiveserver2服务(HS2),在Hadoop1上运行如下命令。

nohup hive --service hiveserver2  &

提示,在启动一些后台守护进程时经常搭配使用nohup&: nohup <程序名> &

  • 使用nohup运行程序使用Ctrl +C 发送SIGINT信号,程序关闭;关闭session发送SIGHUP信号,程序免疫

  • 使用&后台运行使用Ctrl +C 发送SIGINT信号,程序免疫;关闭session发送SIGHUP信号,程序关闭

运行如下命令测试环境。

#启动beeline
beeline#在交互界面输入连接信息:
!connect  jdbc:hive2://hadoop1:10000#输入用户名和密码,注意,输入的用户名root和密码123456是虚拟机Hadoop1的用户名和密码#查看所有数据库
show databases;

在这里插入图片描述

在运行beeline命令时,也可以使用下面命令指定连接的服务地址和用户名。

beeline -u jdbc:hive2://hadoop1:10000 -n root	
  • 参数-u:用于指定HiveServer2服务的地址。

  • hadoop1:表示启动HiveServer2服务的服务器主机名。

  • 10000:是HiveServer2服务默认使用的端口。

  • 参数-n:用于指定连接HiveServer2服务时加载的用户名,该用户名必须具有操作HDFS的权限。

三、远程模式

将MetaStore服务部署在虚拟机hadoop2上。

网络拓扑:

服务虚拟机
MetaStorehadoop2
HiveServer2hadoop1

1. 修改Hive配置

进入虚拟机Hadoop1中Hive安装目录下的conf目录,在该目录下执行vi hive-site.xml命令创建Hive配置文件hive-site.xml,在该文件中添加如下内容。

<property><name>hive.metastore.uris</name><value>thrift://hadoop2:9083</value>
</property>

hive.metastore.uris用于指定MetaStore服务器的地址,如有多个地址,使用逗号隔开。如果未设置(默认值),则使用当前的MetaStore,否则连接到由URI列表指定要连接的远程MetaStore服务器。如果有多个远程服务器,则客户端便以轮询方式连接。

2. 同步Hive

将Hadoop1的Hive环境同步到Hadoop2, 在Hadoop1上执行一下命令:

scp -r /opt/hive-3.1.3 root@hadoop2:/opt
scp /etc/profile root@hadoop2:/etc

3. 启动服务

在Hadoop2主机上启动MetaStore服务

nohup hive --service metastore &

在Hadoop1主机上启动HiveServer2服务

nohup hive --service hiveserver2 &

注意,在本地模式步骤中已经启动了Hiveserver2服务,可以使用ps -ef | grep hive命令查看进程ID,使用kill -9 进程ID结束指定进程。

4. 测试

同前。

附、网盘资源

链接:https://pan.baidu.com/s/1MSUdwbPArIAglQTDRhOjrg?pwd=jiau
提取码:jiau

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

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

相关文章

【Java】内存可见性问题是什么?

文章目录 内存模型内存可见性解决方案volatile 内存模型 什么是JAVA 内存模型&#xff1f; Java Memory Model (JAVA 内存模型&#xff09;是描述线程之间如何通过内存(memory)来进行交互。 具体说来&#xff0c; JVM中存在一个主存区&#xff08;Main Memory或Java Heap Mem…

架构师系列-搜索引擎ElasticSearch(七)- 集群管理之分片

集群健康检查 Elasticsearch 的集群监控信息中包含了许多的统计数据&#xff0c;其中最为重要的一项就是集群健康&#xff0c;它在 status字段中展示为 green&#xff08;所有主分片和副本分片都正常&#xff09;、yellow&#xff08;所有数据可用&#xff0c;有些副本分片尚未…

Collection与数据结构 二叉树(三):二叉树精选OJ例题(下)

1.二叉树的分层遍历 OJ链接 上面这道题是分层式的层序遍历,每一层有哪些结点都很明确,我们先想一想普通的层序遍历怎么做 /*** 层序遍历* param root*/public void levelOrder1(Node root){Queue<Node> queue new LinkedList<>();queue.offer(root);while (!qu…

Spring Boot(二)— 自定义Spring Boot Starter

在Spring Boot中&#xff0c;自定义Spring Boot Starter是一个常见且强大的功能&#xff0c;它允许开发者为特定的功能或库创建自己的自动配置&#xff0c;从而简化集成过程。 1 前置知识 Spring Boot的事件为应用的启动和关闭提供了详细的上下文信息&#xff0c;使得开发者能…

基于表面势的增强型p-GaN HEMT器件模型

来源&#xff1a;电子学报 22年 摘要 为了满足功率电路及系统设计对p-GaN HEMT&#xff08;High Electron Mobility Transistor&#xff09;器件模型的需求&#xff0c;本文建立了一套基于表面势计算方法的增强型p-GaN HEMT器件SPICE&#xff08;Simulation Program with Int…

Golang | Leetcode Golang题解之第27题移除元素

题目&#xff1a; 题解&#xff1a; func removeElement(nums []int, val int) int {left, right : 0, len(nums)for left < right {if nums[left] val {nums[left] nums[right-1]right--} else {left}}return left }

软件杯 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

Eland上传bge-large-zh-v1.5向量化模型到ElasticSearch中

最近需要做一些向量检索&#xff0c;试试ES 一、准备 系统&#xff1a;MacOS 14.3.1 ElasticSearch&#xff1a;8.13.2 Kibana&#xff1a;8.13.2 本地单机环境&#xff0c;无集群&#xff0c;也不基于Docker BGE是一个常见的文本转向量的模型&#xff0c;在很多大模型RAG应…

数据仓库—维度建模—维度表设计

维度表 维度表(Dimension Table)是数据仓库中描述业务过程中各种维度信息的表,用于提供上下文和描述性信息,以丰富事实数据的分析 维度表是维度建模的灵魂所在,在维度表设计中碰到的问题(比如维度变化、维度层次、维度一致性、维度整合和拆分等)都会直接关系到维度建模…

防汛物资仓库管理系统|实现应急物资仓库三维可视化

系统概述 智慧应急物资仓库可视化系统&#xff08;智物资DW-S300&#xff09;采用了 B/S 架构的设计&#xff0c;通过浏览器即可快速登录操作。实现对库房内的应急物资从申购入库、出库、调拨、库内环境监测、维修保养、检测试验、处置报废等全周期、科学、规范的管理。系统以…

ssh爆破服务器的ip-疑似肉鸡

最近发现自己的ssh一直有一些人企图使用ssh暴力破解的方式进行密码破解.就查看了一下,真是网络安全太可怕了. 大家自己的服务器密码还是要设置好,管好,做好最基本的安全措施,不然最后只能沦为肉鸡. ssh登陆日志可以在/var/log下看到,ubuntu的话为auth.log,centos为secure文件 查…

45.HarmonyOS鸿蒙系统 App(ArkUI)创建列表(List)

列表是一种复杂的容器&#xff0c;当列表项达到一定数量&#xff0c;内容超过屏幕大小时&#xff0c;可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集&#xff0c;例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求&#xff08;如通讯录、音乐列…

ChatGPT 和 Elasticsearch:使用 Elastic 数据创建自定义 GPT

作者&#xff1a;Sandra Gonzales ChatGPT Plus 订阅者现在有机会创建他们自己的定制版 ChatGPT&#xff0c;称为 GPT&#xff0c;这替代了之前博客文章中讨论的插件。基于本系列的第一部分的基础 —— 我们深入探讨了在 Elastic Cloud 中设置 Elasticsearch 数据和创建向量嵌…

软件无线电安全之HackRF One初探

HackRF介绍 HackRF是一款开源软件无线电&#xff08;SDR&#xff09;平台&#xff0c;由Great Scott Gadgets公司推出。它具有广泛的频率覆盖范围&#xff0c;从1 MHz到6 GHz&#xff0c;支持大部分常见的无线通信频段。采用软件定义无线电技术&#xff0c;HackRF提供了自定义…

C语言 函数——断言与防御式编程

目录 如何确定假设的真假&#xff1f; 断言 防御式编程&#xff08;Defensive programming&#xff09; 如何确定假设的真假&#xff1f; 程序中的假设 *某个特定点的某个表达式的值一定为真 *某个特定点的某个表达式的值一定位于某个区间等 问题&#xff1a;如何确定这些…

嵌入式单片机 TTL电平、232电平、485电平的区别和联系

一、简介 TTL、232和485是常见的串口通信标准&#xff0c;它们在电平和通信方式上有所不同&#xff0c; ①一般情况下TTL电平应用于单片机外设&#xff0c;属于MCU/CPU等片外外设&#xff1b; ②232/485电平应用于产品整体对外的接口&#xff0c;一般是片外TTL串口转232/485…

五、Jenkins、Docker、SpringClound持续集成

Jenkins、Docker、SpringClound持续集成 一、部署介绍1.部署图2.微服务项目结构3.项目启动顺序 二、微服务项目在Windows运行1.配置java、maven环境2.初始化数据库表/数据2.1 tensquare_gathering服务表2.2 tensquare_gathering服务表 3.启动微服务4.微服务接口测试4.1 获取用户…

黑马苍穹外卖--再来一单(stream流转换、赋值与收集映射)

1.首先明确一下业务规则: 业务规则&#xff1a; 再来一单就是将原订单中的商品重新加入到购物车中 2.产品页面原型和开发接口文档 3.业务层逻辑代码开发 3.1 查询方向 我们要明确的是: 再来一单就是将原订单中的商品重新加入到购物车中------直接把商品加入到购物车&#…

prompt 工程整理(未完、持续更新)

工作期间会将阅读的论文、一些个人的理解整理到个人的文档中&#xff0c;久而久之就积累了不少“个人”能够看懂的脉络和提纲&#xff0c;于是近几日准备将这部分略显杂乱的内容重新进行梳理。论文部分以我个人的理解对其做了一些分类&#xff0c;并附上一些简短的理解&#xf…

分布式幂等性

1. 什么是幂等性&#xff1f; 幂等性是指在分布式系统中&#xff0c;一个操作多次执行的结果与其执行一次的结果相同。设计具有幂等性的分布式系统可以有效避免数据不一致和重复处理的问题。 幂等系统的应用场景 在微服务架构下&#xff0c;由于分布式天然特性的时序问题, 以…