大数据基础设施搭建 - Hive

news2024/11/17 7:49:50

文章目录

  • 一、上传压缩包
  • 二、解压压缩包
  • 三、配置环境变量
  • 四、初始化元数据库
    • 4.1 配置MySQL地址
    • 4.2 拷贝MySQL驱动
    • 4.3 初始化元数据库
      • 4.3.1 创建数据库
      • 4.3.2 初始化元数据库
  • 五、启动元数据服务metastore
    • 5.1 修改配置文件
    • 5.2 启动/关闭metastore服务
  • 六、启动hiveserver2服务
    • 6.1 修改配置文件
    • 6.2 启动/关闭hiveserver2服务
  • 七、访问Hive
    • 7.1 通过hive客户端访问
    • 7.2 通过beeline客户端访问(JDBC)
  • 八、修改元数据库字符集(TODO)
    • 8.1 修改hive元数据库中存储注释的字段的字符集为utf-8
      • (1)字段注释
      • (2)表注释
    • 8.2 修改hive-site.xml配置文件
  • 九、整合HDFS(TODO)
  • 十、升级为hive集群(TODO)

一、上传压缩包

https://hive.apache.org/

二、解压压缩包

[hadoop@hadoop102 software]$ tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/

三、配置环境变量

[hadoop@hadoop102 apache-hive-3.1.2-bin]$ sudo vim /etc/profile.d/my_env.sh

新增内容:

#HIVE_HOME
export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin

使环境变量生效:

[hadoop@hadoop102 apache-hive-3.1.2-bin]$ source /etc/profile.d/my_env.sh

四、初始化元数据库

hive元数据概述:记录了hive中表的名称、列名、数据类型、分区信息、数据存储路径等。
hive元数据存储:默认是元数据存储于hive内置的derby数据库,是用Java写的。一定要切换到MySQL,内嵌derby局限性太高!当一个hive客户端启动时,就会独占derby元数据库且不与其他客户端共享元数据,所以无法同时开启多个hive客户端进行操作!

4.1 配置MySQL地址

[hadoop@hadoop102 ~]$ vim $HIVE_HOME/conf/hive-site.xml

新增内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://mall:3306/metastore?useSSL=false</value>
    </property>

    <!-- jdbc连接的Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

	<!-- jdbc连接的username-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <!-- jdbc连接的password -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>

    <!-- Hive默认在HDFS的工作目录;数据库被创建之后默认存储的位置。 eg:/warehouse/xx_dw_dwb.db -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/warehouse</value>
    </property>
    
   <!-- Hive元数据存储的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
   
    <!-- 元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
</configuration>

4.2 拷贝MySQL驱动

[hadoop@hadoop102 ~]$ cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib

4.3 初始化元数据库

4.3.1 创建数据库

[mall@mall ~]$ mysql -uroot -p123456
mysql> create database metastore;
mysql> quit;

4.3.2 初始化元数据库

-verbose参数:显示初始化过程日志
-dbType:指定数据库类型

[hadoop@hadoop102 ~]$ schematool -initSchema -dbType mysql -verbose

五、启动元数据服务metastore

metastore服务用于访问hive元数据。有两种提供服务的方式,分别是嵌入式模式和独立服务模式。
生产中使用独立服务模式,因为在嵌入式模式下,每个Hive CLI都需要直接连接元数据库,当Hive CLI较多时,数据库压力会比较大。

内嵌式模式:
在这里插入图片描述
独立服务模式:
在这里插入图片描述

5.1 修改配置文件

如果配置文件中有此项配置,说明hive在连接元数据的时候需要走第三方服务thrift,必须启动独立服务模式metastore服务!

[hadoop@hadoop102 ~]$ vim $HIVE_HOME/conf/hive-site.xml

新增内容:

    <!-- hive元数据服务metastore的ip和端口号 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop102:9083</value>
    </property>

5.2 启动/关闭metastore服务

# 启动
[hadoop@hadoop102 ~]$ nohup hive --service metastore &>/dev/null 2>/dev/null &
# 关闭
[hadoop@hadoop102 ~]$ ps -ef | grep metastore
[hadoop@hadoop102 ~]$ kill 28832

六、启动hiveserver2服务

6.1 修改配置文件

[hadoop@hadoop102 ~]$ vim $HIVE_HOME/conf/hive-site.xml

新增内容:

    <!-- 指定hiveserver2连接的host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>

    <!-- 指定hiveserver2连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>

6.2 启动/关闭hiveserver2服务

# 启动
[hadoop@hadoop102 apache-hive-3.1.2-bin]$ nohup bin/hive --service hiveserver2 &>/dev/null 2>/dev/null &
# 关闭
[hadoop@hadoop102 ~]$ ps -ef | grep hiveserver2
[hadoop@hadoop102 ~]$ kill 29204

七、访问Hive

7.1 通过hive客户端访问

[hadoop@hadoop102 ~]$ cd /opt/module/apache-hive-3.1.2-bin/
[hadoop@hadoop102 apache-hive-3.1.2-bin]$ bin/hive

查看数据库:

hive> show databases;
OK
default
Time taken: 0.756 seconds, Fetched: 1 row(s)

7.2 通过beeline客户端访问(JDBC)

-u参数:hiveserver2所在ip和端口号
-n参数:账号

[hadoop@hadoop102 apache-hive-3.1.2-bin]$ bin/beeline -u jdbc:hive2://hadoop102:10000 -n hadoop

八、修改元数据库字符集(TODO)

Hive元数据库字符集默认是Latin1,如果建表语句中有中文注释,会出现乱码现象。

8.1 修改hive元数据库中存储注释的字段的字符集为utf-8

以utf-8编码向元数据库中写入数据

mysql -uroot -p

(1)字段注释

use metastore;
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;

(2)表注释

alter table TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;

8.2 修改hive-site.xml配置文件

以utf-8编码从元数据库中读取数据

[hadoop@hadoop102 ~]$ vim $HIVE_HOME/conf/hive-site.xml

修改内容:

    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://mall:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>

九、整合HDFS(TODO)

将HDFS文件包装成hive中的表

十、升级为hive集群(TODO)

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

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

相关文章

手动实现 git 的 git diff 功能

这是 git diff 后的效果&#xff0c;感觉挺简单的&#xff0c;不就是 比较新旧版本&#xff0c;新增了就用 "" 显示新加一行&#xff0c;删除了就用 "-" 显示删除一行&#xff0c;修改了一行就用 "-"、"" 显示将旧版本中的该行干掉了并…

C#FlaUI.UIA实现发送微信消息原理

一 准备 .NetFramework 4.8 FlaUI.UIA3 4.0.0 FlaUInspect V1.3.0 1下载FlaUInspect https://github.com/FlaUI/FlaUInspect FlaUInspect V1.3.0 百度网盘下载 2 NuGet 引用 flaUI.UIA3 4.0.0 二代码部分 1 引用FlaUI using FlaUI.Core; using FlaUI.Core.Automatio…

深度学习基于Python+TensorFlow+Django的水果识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介简介技术组合系统功能使用流程 二、功能三、系统四. 总结 一项目简介 # 深度学习基于PythonTensorFlowDjango的水果识别系统介绍 简介 该水果识别系统基于…

比较2个点的3种结构在不规则平面上的占比

2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 x 3 3 2 2 2 1 2 2 2 2 2 1 2 2 在平面上有一个点x&#xff0c;再增加一个点,11的操作把平面分成了3部分2a1&#xff0c;2a2&#xff0c;2a3&#xff0c;3部分的比值是 2a1 2a2 2a3 5 25 …

单词接龙00

题目链接 单词接龙 题目描述 注意点 1 < beginWord.length < 10endWord.length beginWord.lengthwordList[i].length beginWord.lengthbeginWord、endWord 和 wordList[i] 由小写英文字母组成wordList 中的所有字符串 互不相同 解答思路 从beginWord开始&#xff…

最新版灵沐V3.3微信资源类小程序源码支持流量主

源码简介 最新版灵沐V3.3微信资源类小程序源码支持流量主&#xff0c;一套不错的流量主变现资源下载小程序&#xff0c;它支持在微信、QQ和抖音平台上运行。这次更新主要集中在全局UI设计的升级&#xff0c;并依然注重资源下载和激励视频变现的功能。另外&#xff0c;还新增了…

智慧楼宇可视化视频综合管理系统,助力楼宇高效安全运行

随着互联网技术的进步和发展&#xff0c;智能化的楼宇建设也逐步成为人们选择办公场所是否方便的一个重要衡量因素。在智能化楼宇中&#xff0c;安全管理也是重要的一个模块。得益于互联网新兴技术的进步&#xff0c;安防视频监控技术也得到了快速发展并应用在楼宇的安全管理中…

羊大师:强健身体是成功的关键

健康是一项无价的财富&#xff0c;拥有强健的身体是实现人生目标的关键。而如何保持健康并拥有一个强健的身体呢&#xff1f;下面就为大家分享一些有效的健身方法和建议&#xff0c;帮助您达到健美身材的目标。 良好的饮食习惯是形成强健身体的基石。我们要摄入足够的营养物质…

uniapp开发的微信小程序进行代码质量控制,分包+压缩js+组件按需注入等

小程序代码分包的操作请看另外一篇文章&#xff1a;uniapp分包优化&#xff0c;包括分包路由跳转规则-CSDN博客 JS文件压缩&#xff1a;在工具「详情」-「本地设置」中开启「上传代码时自动压缩脚本文件」的设置 代码包&#xff1a;组件 > 启用组件按需注入解决办法 在小程…

如何选择ZK-friendly 哈希函数?

1. 引言 在What’s the deal with hash functions in Zero Knowledge?中&#xff0c;研究了哈希函数对ZKP场景的用途。当前有各种ZK-friendly 哈希函数设计&#xff0c;各有优缺点&#xff0c;且针对不同的性能维度进行了优化&#xff0c;如&#xff1a; MiMCGMiMCPoseidonP…

Instrumentation 是什么?和 ActivityThread 是什么关系?

Instrumentation 可以理解为应用进程管家&#xff0c;ActivityThread 要执行创建或暂停某个 Activity 的操作时&#xff0c;都需要通过 Instrumentation 来进行具体的操作&#xff0c;即回调 Activity 的生命周期。 每一个应用程序只有一个 Instrumentation 对象&#xff0c;每…

ubuntu挂载硬盘方法

1.关闭服务器加上新硬盘 2.启动服务器&#xff0c;以root用户登录 3.查看硬盘信息 fdisk -l4.格式化分区 找到需要分区的目录,并记录分区的uuid&#xff0c;用于后面修改/etc/fstab永久挂载配置文件 mkfs.ext4 /dev/nvme0n1 mkfs.ext4 /dev/nvme1n1 Filesystem UUID: a1c…

修改mysql的密码(每一步都图文解释哦)

当你想要连接本机数据库时&#xff0c;是不是有可能突然忘记了自己的数据库密码? 在此文中&#xff0c;我们来详细解决一下如何去修改自己的数据库密码&#xff0c;并使用Navicat来连接测试 1.停止mysql服务 打开终端&#xff0c;键入命令,将mysql服务先停止掉&#xff0c;…

【正点原子STM32连载】 第六十章 串口IAP实验(Julia分形)实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子APM32F407最小系统板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html## 第六十…

手把手用GPT开发小程序全流程!就是这么easy~

大家好&#xff0c;我是五竹。 前段时间用GPT开发了一款小程序:GPT真牛批&#xff01;三天开发一个小程序&#xff0c;三天积累了2000的用户&#xff0c;上周末抽空又接入了流量主&#xff0c;感兴趣的同学可以围观一下。 今天就来带大家走一遍用GPT开发一款小程序的全过程&a…

怎么禁止员工私自修改ip地址

在许多组织中&#xff0c;网络管理员负责配置和管理网络&#xff0c;包括为员工分配静态IP地址。然而&#xff0c;有些员工可能会试图修改这些分配的IP地址&#xff0c;这可能会导致一系列问题&#xff0c;包括网络性能下降、安全风险增加等。 因此&#xff0c;禁止员工私自修…

羊奶加西柚,羊大师教你减少自由基

羊奶加西柚&#xff0c;减少自由基的好处真的是多得数不胜数。无论是从营养角度&#xff0c;还是从健康角度考虑。羊奶富含蛋白质、维生素和矿物质&#xff0c;西柚富含维生素C和抗氧化剂。结合起来&#xff0c;它们可以提供许多健康益处&#xff0c;并为我们的身体抵御自由基的…

轻松搬运!手推小车助力制造企业高效装卸

手推车是一种非常方便高效的搬运工具。它可以帮助我们轻松搬运重物&#xff0c;节省时间和精力。不论是在仓库、工厂、商场还是家庭&#xff0c;手推车都扮演着重要的角色。 在现代物流与生产领域&#xff0c;高效的装卸作业是确保生产流程畅通的重要环节。手推小车作为一种便…

[HCIE] IPSec-VPN (IKE自动模式)

概念&#xff1a; IKE&#xff1a;因特网密钥交换 实验目标&#xff1a;pc1与pc2互通 步骤1&#xff1a;R1与R3配置默认路由 R1&#xff1a; ip route-static 0.0.0.0 0.0.0.0 12.1.1.2 R2&#xff1a; ip route-static 0.0.0.0 0.0.0.0 23.1.1.2 步骤2&#xff1a;配ACL…

如何让大模型更好地完成知识图谱推理?

​ 论文标题&#xff1a; Making Large Language Models Perform Better in Knowledge Graph Completion 论文链接&#xff1a; https://arxiv.org/abs/2310.06671 代码链接&#xff1a;GitHub - zjukg/KoPA: [Paper][Preprint 2023] Making Large Language Models Perform Be…