大数据平台 hive 部署

大数据平台 hive 部署

平台部署知识
文章讲解了 hive 的安装与部署 需要 Hadoop 以及 MySQL。

目录

文章目录

  • 大数据平台 hive 部署
    • 目录
    • 前期准备
      • 解压 hive 包
      • 配置 hive 的环境变量
      • 解决 jar 冲突
    • 内嵌模式部署
      • 修改 hive-env.sh 文件
      • 初始化元数据库 使用 derby
      • 启动 HDFS 和 hive 的客户端
      • 创建数据库并查询数据库
    • 本地+数据库 模式部署
      • 安装 MySQL
      • 在 MySQL 中创建 hive 需要的用户和数据库
      • 配置 hive
        • 配置 hive-site.xml
        • 配置 hive-env.sh
      • 装载MySQL驱动给 hive
      • 初始化元数据库
      • 启动 metaStore
      • 启动 HDFS 还有 hive的客户端
      • HQL 创建数据库并测试

前期准备

在这里我们需要将 hive 的包下载下来,这边我们使用的就是 hive 的 3.1.2 版本,各位小伙伴可以先下载这个版本的压缩包,另外还需要注意,hive 依赖 Hadoop 平台,它会将数据存储到 HDFS 中,计算任务运行在 YARN 资源调度集群,所以我们需要先参照 《大数据平台中 Hadoop 部署》 文章来将 Hadoop 部署起来!

hive官网:https://hive.apache.org/

解压 hive 包

然后我们需要将 hive 解压到一个目录中,这里就是 hive 的安装目录了,下面是笔者解压之后的目录展示。

root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# ll
total 84
drwxr-xr-x 10 root root   4096  3月 14  2023 ./
drwxrwxrwx 13 root root   4096  2月 29 17:32 ../
drwxr-xr-x  3 root root   4096  3月 14  2023 bin/
drwxr-xr-x  2 root root   4096  3月 14  2023 binary-package-licenses/
drwxr-xr-x  2 root root   4096  3月 14  2023 conf/
drwxr-xr-x  4 root root   4096  3月 14  2023 examples/
drwxr-xr-x  7 root root   4096  3月 14  2023 hcatalog/
drwxr-xr-x  2 root root   4096  3月 14  2023 jdbc/
drwxr-xr-x  4 root root  16384  3月 14  2023 lib/
-rw-r--r--  1 root staff 20798  8月 23  2019 LICENSE
-rw-r--r--  1 root staff   230  8月 23  2019 NOTICE
-rw-r--r--  1 root staff  2469  8月 23  2019 RELEASE_NOTES.txt
drwxr-xr-x  4 root root   4096  3月 14  2023 scripts/
root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# 

配置 hive 的环境变量

我们需要打开 /etc/profile 文件并在文件的末尾追加下面的代码段这会配置好环境变量。

# 开始编辑环境变量
vim /etc/profile
# 下面是环境变量
export JAVA_HOME="/opt/software/jdk1.8.0_202"
export HADOOP_HOME="/opt/software/hadoop-3.2.1"
export HIVE_HOME="/opt/software/apache-hive-3.1.2-bin"
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HIVE_HOME}/bin:$PATH

解决 jar 冲突

# 解决日志冲突
mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak
# 解决 HDFS 操作冲突
rm -rf ${HIVE_HOME}/lib/guava-19.0.jar
cp ${HADOOP_HOME}/share/hadoop/common/lib/guava-27.0-jre.jar ${HIVE_HOME}/lib/

内嵌模式部署

本章节涉及的所有路径需要根据您设备的情况进行修改哦!!

Hive 会将数据存储在 HDFS 中,会将元数据存储在数据库中,而在我们的入门测试阶段,可以直接将 hive 进行本地部署和使用,这样的操作就是让 hive 的元数据存储在 derby(hive 自带的元数据库) 中!

修改 hive-env.sh 文件

# 修改 hive 的启动脚本文件
vim ./conf/hive-env.sh.template 

# 在 脚本文件中找到下面的类似的配置 解开 HIVE_CONF_DIR 和 HIVE_AUX_JARS_PATH 的注释 并根据需要进行配置
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/software/apache-hive-3.1.2-bin/conf

# Folder containing extra libraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/opt/software/apache-hive-3.1.2-bin/lib

操作之后保存 然后执行下面的命令

# 为 hive-env 文件重命名 让其生效
mv ./conf/hive-env.sh.template ./conf/hive-env.sh

初始化元数据库 使用 derby

root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# ./bin/schematool -initSchema -dbType derby
Metastore connection URL:        jdbc:derby:;databaseName=metastore_db;create=true
Metastore Connection Driver :    org.apache.derby.jdbc.EmbeddedDriver
Metastore connection User:       APP
Starting metastore schema initialization to 3.1.0
Initialization script hive-schema-3.1.0.derby.sql
Initialization script completed
schemaTool completed

启动 HDFS 和 hive 的客户端

root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# /opt/software/hadoop-3.2.1/sbin/start-all.sh 
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
Starting namenodes on [liming141]
Starting datanodes
Starting secondary namenodes [liming141]
Starting resourcemanager
Starting nodemanagers
root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# hive

创建数据库并查询数据库

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本地+数据库 模式部署

如果我们使用数据库来存储所有的 hive 元数据,也就实现了最基础的部署架构,本地部署模式,本地部署下可以将元数据存储到单独的数据库中,能够有效的避免元数据量过大,无法存储的问题。

本章中出现的所有路径都需要按照您的设备来进行修改!

安装 MySQL

由于我们使用的是 乌班图 因此可以直接调用 sudo apt-get update 以及 sudo apt-get install mysql-server 命令来将 MySQL 安装进去,接下来就是安装好之后进入 mysql 的样子。

root@liming-virtual-machine:~# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

在 MySQL 中创建 hive 需要的用户和数据库

# 创建好hive的元数据库
create
database if not exists hive;
# 创建一个用户hive 指定其密码为hive1234
CREATE
USER 'hive'@'%' IDENTIFIED BY 'Hive@12341234';
# 赋予该用户针对 hive 库中表的所有权限
grant all on hive.* to 'hive'@'%';
# 查询用户表信息
select user, host
from mysql.user;

配置 hive

本地模式下部署,hive 需要依赖于MySQL这类服务器,所以我们需要告知hive 有关元数据库的一些信息,在这里就是我们配置好的示例。

配置 hive-site.xml

您需要打开 hive-site.xml 并输入下面的配置项目。

# 编辑 hive-site.xml
vim /opt/software/apache-hive-3.1.2-bin/conf/hive-site.xml

# 在文件中输入下面的配置 注意 IP 地址需要修改!
<?xml version="1.0" encoding="UTF-8"?><!-- 配置有关Hive系统结构的一些设置 -->
<configuration>

    <!-- 存储元数据mysql相关配置 注意IP地址,我们使用的是 本地 服务器 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://127.0.0.1:3306/hive</value>
    </property>

    <!-- 数据库连接驱动类路径 按照您的数据库驱动来选择 这里是 MySQL8.0  -->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>
    <!-- 操作hive元数据库的用户名称与密码配置  -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>Hive@12341234</value>
    </property>
    <!-- hive 的 metaStore 服务的地址  -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://192.168.0.141:9083</value>
    </property>
</configuration>
配置 hive-env.sh

这个操作 和 《内嵌模式部署》 章节中是一样的,您可以查阅其中的 《修改 hive-env.sh 文件》 小节。

装载MySQL驱动给 hive

您可以点击 《mysql-connector-j-8.0.33.jar》 来下载这个 jar 然后手动放到 ${HIVE_HOME}/lib 目录中,当然也可以直接使用下面的命令来实现包的自动装载!

cd ${HIVE_HOME}/lib
wget https://diskmirror.lingyuzhao.top//1/Binary/Article/Files/mysql-connector-j-8.0.33.jar

初始化元数据库

# 初始化元数据库
${HIVE_HOME}/bin/schematool -initSchema -dbType mysql -verbose

启动 metaStore

这是一个阻塞线程,因此需要单独终端启动,或者直接在命令结尾加 &

root@liming-virtual-machine:~# hive --service metastore -p 9083
2024-03-08 15:32:00: Starting Hive Metastore Server

启动 HDFS 还有 hive的客户端

root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# /opt/software/hadoop-3.2.1/sbin/start-all.sh 
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
Starting namenodes on [liming141]
Starting datanodes
Starting secondary namenodes [liming141]
Starting resourcemanager
Starting nodemanagers
root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# hive

HQL 创建数据库并测试

到这里 本地部署就成功了 元数据都是存储在 MySQL内的!

root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# hive
Hive Session ID = 02bad037-43ec-4aa9-ad61-eaabe20abd3c

Logging initialized using configuration in jar:file:/opt/software/apache-hive-3.1.2-bin/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
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 Session ID = e8686efd-c78b-45c9-b0c7-280481b9a3a0
hive> create database myTest;
OK
Time taken: 2.184 seconds
hive> show databases;
OK
default
mytest
Time taken: 0.431 seconds, Fetched: 2 row(s)
hive> 

=未完待续=


文中有些资源可能不能正常显示,您可以访问https://www.lingyuzhao.top/?/linkController=/articleController&link=43091202查看文章最新动态!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

每日一题leetcode第2834:找出美丽数组的最小和

目录 一.题目描述 二.思路及优化 三.C代码 一.题目描述 二.思路及优化 首先我们看到这个题&#xff0c;就是根据给出的数组元素个数N&#xff0c;从[1&#xff0c;N]找出N个元素&#xff0c;使得N个元素的和最小&#xff0c;其中随便抽两个数出来&#xff0c;两个数之和不能为…

贝叶斯优化CNN-LSTM回归预测(matlab代码)

贝叶斯优化CNN-LSTM回归预测matlab代码 贝叶斯优化方法则采用贝叶斯思想&#xff0c;通过不断探索各种参数组合的结果&#xff0c;根据已有信息计算期望值&#xff0c;并选择期望值最大的组合作为最佳策略&#xff0c;从而在尽可能少的实验次数下达到最优解。 数据为Excel股票…

【MySQL】MySQL 的 SSL 连接以及连接信息查看

MySQL 的 SSL 连接以及连接信息查看 在上篇文章中&#xff0c;我们学习过 MySQL 的两种连接方式&#xff0c;回忆一下&#xff0c;使用 -h 会走 TCP 连接&#xff0c;不使用 -h 可以使用另两种方式来走 UnixSocket 连接。我们就接着这个话题再聊点别的&#xff0c;首先要纠正一…

计算机服务器中了locked勒索病毒怎么解密,locked勒索病毒解密流程

科技的发展带动了企业生产&#xff0c;越来越多的企业开始利用计算机服务器办公&#xff0c;为企业的生产运营提供了极大便利&#xff0c;但随之而来的网络安全威胁也引起了众多企业的关注。近日&#xff0c;云天数据恢复中心接到许多企业的求助&#xff0c;企业的计算机服务器…

图形库实战丨C语言扫雷小游戏(超2w字,附图片素材)

目录 效果展示 游玩链接&#xff08;无需安装图形库及VS&#xff09; 开发环境及准备 1.VS2022版本 2.图形库 游戏初始化 1.头文件 2.创建窗口 3.主函数框架 开始界面函数 1.初始化 1-1.设置背景颜色及字体 1-2.处理背景音乐及图片素材 1-3.处理背景图位置 2.选…

代码随想录算法训练营第四天|24.两两交换链表中的节点、19.删除链表的倒数第N的节点、07.链表相交、142.环形链表II

代码随想录算法训练营第四天|24.两两交换链表中的节点、19.删除链表的倒数第N的节点、07.链表相交、142.环形链表II 24.两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成…

【UE5】创建蓝图

创建GamePlay需要的相关蓝图 在内容游览器文件夹中创建文件夹&#xff0c;命名为Blueprints&#xff0c;用来放这个项目的所有蓝图(Blueprint) 在Blueprints文件夹下新建文件夹GamePlay,用存放GamePlay相关蓝图 在Blueprints文件夹下创建文件夹Character,存放角色相关蓝图 在Ga…

idea连接远程服务器

1. 双击shift&#xff0c;出现如下界面 2. 远程连接 原文来自这个up主的&#xff0c;点击蓝色字体就可以跳转啦&#xff01; 输入主机ip、用户名、密码&#xff0c;点击Test Connection验证&#xff0c;最后点击ok添加成功 有用的话记得给俺点个赞&#xff0c;靴靴~

学会与自己和解

最近半年来&#xff0c;在学习智能驾驶方面的技术&#xff0c;但有些文档和资料不方便分享&#xff0c;有一段时间没有写 写文档啦&#xff01;那就写一些技术之外的东西吧&#xff0c;最近也一直在学心理建设&#xff0c;学会与自己和解 行动 唯有自己先行动起来&#xff0c;…

vue组件之间通信方式汇总

方式1&#xff1a;props和$emit props和$emit仅仅限制在父子组件中使用 1.props&#xff1a;父组件向子组件传递数据 1.1 代码展示 <template><div><!-- 这是父组件 --><div>父组件中的基本数据类型age的值是:{{this.age}}</div><div>…

Web Servlet

目录 1 简介2 创建Servlet项目并成功发布运行3 新加Servlet步骤4 Servlet项目练习5 Servlet运行原理6 操作 HTTP Request头的方法(部分方法示例)7 操作 HTTP Response头的方法(部分方法示例)8 两种重定向(页面跳转)方法9 Cookie9.1 Cookie工作原理9.2 cookie构成9.3 Servlet 操…

LeetCode 1976.到达目的地的方案数:单源最短路的Dijkstra算法

【LetMeFly】1976.到达目的地的方案数&#xff1a;单源最短路的Dijkstra算法 力扣题目链接&#xff1a;https://leetcode.cn/problems/number-of-ways-to-arrive-at-destination/ 你在一个城市里&#xff0c;城市由 n 个路口组成&#xff0c;路口编号为 0 到 n - 1 &#xff…

202441读书笔记|《笠翁对韵》—— 金菡萏,玉芙蓉,酒晕微酡琼杏颊,香尘浅印玉莲双

202441读书笔记|《笠翁对韵》——金菡萏&#xff0c;玉芙蓉&#xff0c;酒晕微酡琼杏颊&#xff0c;香尘浅印玉莲双 《作家榜名著&#xff1a;笠翁对韵》作者李渔&#xff0c;霍俊明。是所有词句都有注音的一本书&#xff0c;轻松学不认识的字&#xff0c;非常朗朗上口的对偶词…

2024年如何批量下载知乎回答和知乎文章导出pdf?

如何批量下载知乎回答和知乎文章导出pdf&#xff1f;用scraper浏览器扩展 2024 年开发的第一个脚本神器 下载的所有回答html内容&#xff0c;文件名为回答日期加标题。 接着批量将html转换pdf&#xff0c;效果如图&#xff1a; 再将所有pdf合成一个pdf文件&#xff1a; 每个回…

VUE Element例子学习

参考:【前端】VueElement UI案例&#xff1a;通用后台管理系统-项目总结_vue elementui 管理系统-CSDN博客 之前参考的el-admin-web太复杂了&#xff0c;不是纯净的demo. 所以找了一圈资料&#xff0c;找到了这个博客&#xff0c;很合适&#xff0c;有例子的代码&#xff0c;…

vue中性能优化

目录 1. 编码优化 2. 源码优化 3. 打包优化 4. 利用 Vue Devtools 总结 Vue.js 作为一个强大的前端框架&#xff0c;提供了丰富的功能和工具来帮助开发者构建高效的 Web 应用。然而&#xff0c;在开发过程中&#xff0c;性能优化仍然是一个需要关注的问题。以下是对 Vue.j…

Solidity攻击合约:重入攻击与危害分析

以太坊智能合约开发中&#xff0c;重入攻击是一种常见的安全漏洞。这种攻击通常发生在合约的递归调用中&#xff0c;攻击者通过构造恶意交易&#xff0c;使得原本合约在执行过程中不断调用自身或其他合约&#xff0c;从而耗尽合约的Gas&#xff08;交易费用&#xff09;&#x…

数据结构与算法----复习Part 13 (单模式串匹配算法)

本系列是算法通关手册LeeCode的学习笔记 算法通关手册&#xff08;LeetCode&#xff09; | 算法通关手册&#xff08;LeetCode&#xff09; (itcharge.cn) 目录 一&#xff0c;朴素匹配算法&#xff08;Brute Force&#xff09; 二&#xff0c;Rabin Karp算法 三&#xff…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十二)-Multi-RTT定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

C语言字符串型常量

在C语言中&#xff0c;字符串型常量是由一系列字符组成的常量。字符串常量在C中以双引号&#xff08;"&#xff09;括起来&#xff0c;例如&#xff1a;“Hello, World!”。字符串常量在C中是不可变的&#xff0c;也就是说&#xff0c;一旦定义&#xff0c;就不能修改其内…
最新文章