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

news2025/6/9 6:49:41

零、资源准备

  • 虚拟机相关:
    • 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.coloradmin.cn/o/1592525.html

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

相关文章

树上启发式合并(dsu on tree)学习

声明&#xff1a;本文部分内容摘自OI Wiki网站。详情可自行查看学习。 洛谷 P9233 题目实际上是蓝桥杯 2023 年 A 组省赛的一道题。题干大致的意思是&#xff0c;给定一个含有 n n n 个结点&#xff0c;并且以 1 1 1 为根的一棵树&#xff0c;每个节点 i i i 都有一个颜色 …

【数据挖掘】实验7:高级绘图(上)

实验7&#xff1a;高级绘图&#xff08;上&#xff09; 一&#xff1a;实验目的与要求 1&#xff1a;了解R语言中各种图形元素的添加方法&#xff0c;并能够灵活应用这些元素。 2&#xff1a;了解R语言中的各种图形函数&#xff0c;掌握常见图形的绘制方法。 二&#xff1a;实…

软考 - 系统架构设计师 - 面向对象架构设计案例

问题1&#xff1a; 解决该题&#xff0c;用例和参与者要一起进行分析&#xff0c;首先看到用例 U1 和 U2 是 U3 的扩展&#xff0c;分析用例列表中的用例&#xff0c;可以分析出 U1 和 U2 是Underpaid transaction 和 Record lllegal use&#xff0c;顺序可以颠倒&#xff0c;…

QAnything-1.3.0,支持纯python笔记本运行,支持混合检索

QAnything 1.3.0 更新了&#xff0c;这次带来两个主要功能&#xff0c;一个是纯python的安装&#xff0c;另一个是混合检索。更多详情见&#xff1a; https://github.com/netease-youdao/QAnything/releases 纯python安装 我们刚发布qanything开源的时候&#xff0c;希望用户…

rspack 使用构建vue3脚手架

基于 Rust 的高性能 Web 构建工具。rspack 主要适配 webpack 生态&#xff0c;对于绝大多数 webpack 工具库都是支持的。 启动速度快&#xff1b;增量热更新快。兼容 webpack 生态&#xff1b;内置了 ts、jsx、css、css modules 等开箱即用。生产优化&#xff0c;tree shaking…

JVM修炼之路【12】- GC调优 、性能调优

上一篇中 我们详细讲了内存溢出 内存泄漏 还有相关的案例。 这篇博客中我们主要了解一下GC调优。 有些新手可能会有一点 疑问—— 这两者不是一回事吗&#xff1f;&#xff1f; 其实说一回事 也没错 因为GC调优本质上还是针对 堆上的内存 只不过前面我们关注的侧重点在于 不合…

MATLAB绘制地球仪

clc;close all;clear all;warning off;%清除变量% 地球半径&#xff08;单位&#xff1a;千米&#xff09; R 6371;% 定义角度范围 theta linspace(0, 2*pi, 100); % 经度范围 phi linspace(0, pi, 100); % 纬度范围&#xff08;从北极到南极&#xff0c;0到pi&#xff09;%…

thinkphp6入门(23)-- 如何导入excel

1. 安装phpexcel composer require phpoffice/phpexcel composer update 2. 前端 <form class"forms-sample" action"../../xxxx/xxxx/do_import_users" method"post" enctype"multipart/form-data"><div class"cont…

【蓝桥杯】第十五届蓝桥杯大赛软件赛省赛(Java研究生组)个人解题思路及代码分享

文章目录 试题A&#xff1a;劲舞团试题B&#xff1a;召唤数字精灵试题C&#xff1a;封闭图形的个数试题D&#xff1a;商品库存管理试题E&#xff1a;砍柴试题F&#xff1a;回文字符串试题G&#xff1a;最大异或节点试题H&#xff1a;植物生命力 试题A&#xff1a;劲舞团 【问题…

阿里面试总结 一

写了这些还是不够完整&#xff0c;阿里 字节 卷进去加班&#xff01;奥利给 ThreadLocal 线程变量存放在当前线程变量中&#xff0c;线程上下文中&#xff0c;set将变量添加到threadLocals变量中 Thread类中定义了两个ThreadLocalMap类型变量threadLocals、inheritableThrea…

YOLO系列 | 正负样本分配策略

文章目录 1 Max-IoU matching(YOLOv1~V3)2 Multi-Anchor策略(YOLOv4)3 基于宽高比的领域匹配策略(YOLOv5)4 simOTA(Simple Optimal Transport Assignment)匹配策略(YOLOX, YOLOv6)5 领域匹配simOTA(YOLOv7)6 TaskAlignedAssigner匹配策略(YOLOv8, YOLOv9)参考资料 1 Max-IoU ma…

Redis:发布和订阅

文章目录 一、介绍二、发布订阅命令 一、介绍 Redis的发布和订阅功能是一种消息通信模式&#xff0c;发送者&#xff08;pub&#xff09;发送消息&#xff0c;订阅者&#xff08;sub&#xff09;接收消息。这种功能使得消息发送者和接收者不需要直接建立连接&#xff0c;而是通…

STC89C52学习笔记(十一)

STC89C52学习笔记&#xff08;十一&#xff09; 综述&#xff1a;本文讲述了直流电机以及PWM调速。 一、直流电机 1、特点 &#xff08;1&#xff09;直流电机能将电能转化位机械能。 &#xff08;2&#xff09;直流电机有两个电极&#xff0c;电极正接时&#xff0c;电机…

Stable Diffusion文生图技术详解:从零基础到掌握CLIP模型、Unet训练和采样器迭代

文章目录 概要Stable Diffusion 底层结构与原理文本编码器&#xff08;Text Encoder&#xff09;图片生成器&#xff08;Image Generator&#xff09; 那扩散过程发生了什么&#xff1f;stable diffusion 总体架构主要模块分析Unet 网络采样器迭代CLIP 模型 小结 概要 Stable …

WebLogic-XMLDecoder(CVE-2017-10271)反序列化漏洞分析及复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

C++string类(个人笔记)

string类 1.认识string的接口以及熟练使用常用接口1.1string类对象的常见构造1.2string类对象的容量操作1.3string类对象的访问及遍历操作1.4string类对象的修改操作 2.vs 和g下string结构的说明3.string类运用的笔试题4.string类的模拟实现 1.认识string的接口以及熟练使用常用…

NPM 命令备忘单

NPM 简介 Node Package Manager (NPM) 是 Node.js 环境中不可或缺的命令行工具&#xff0c;充当包管理器来安装、更新和管理 Node.js 应用程序的库、包和模块。对于每个 Node.js 开发人员来说&#xff0c;无论他们的经验水平如何&#xff0c;它都是一个关键工具。 NPM 的主要…

Day19-【Java SE进阶】网络编程

一、网络编程 1.概述 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。java.net,*包下提供了网络编程的解决方案! 基本的通信架构 基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)。 网络通信的…

FourCastNet 论文解析

气象基础模型/气象大模型论文速递 论文链接基于arXiv Feb. 22, 2022版本阅读 几乎是第一篇气象大模型的工作&#xff0c;同时也是为数不多的对precipitation进行预测的模型。 文章目录 PerformanceStructureFourier transformToken mixing TrainingPrecipitation Model Ensembl…

Android开发:Camera2+MediaRecorder录制视频后上传到阿里云VOD

文章目录 版权声明前言1.Camera1和Camera2的区别2.为什么选择Camera2&#xff1f; 一、应用Camera2MediaPlayer实现拍摄功能引入所需权限构建UI界面的XMLActivity中的代码部分 二、在上述界面录制结束后点击跳转新的界面进行视频播放构建播放界面部分的XMLActivity的代码上述代…