前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive 单节点部署

Hive 单节点部署

原创
作者头像
弟大翻着洗
修改2024-08-11 21:01:26
1340
修改2024-08-11 21:01:26
举报
文章被收录于专栏:大数据组件部署

介绍

Hive 是一个建立在 Hadoop 之上的数据仓库工具,它用于提供数据的查询和分析功能。Hive 允许用户使用类似 SQL 的查询语言(HiveQL)来处理存储在 Hadoop 分布式文件系统(HDFS)上的大规模数据。

数据存储和管理: Hive 提供了一种方式来组织和管理存储在 Hadoop 中的海量数据,使得数据的访问和查询变得简单。

数据分析: Hive 使得非程序员也能轻松进行数据分析,用户可以使用 SQL 的查询语言而无需复杂编程。

支持大数据处理: Hive 可以处理有结构、半结构和无结构的数据,是大数据技术生态系统的一部分。

可扩展性: Hive 可以处理非常大的数据集,支持快速扩展并适应数据量的变化。

例子:

想象一下你有一个图书馆,里面有成千上万本书。你想要查找某一类书籍(比如“科幻”或“历史”),或者查找某位作者的作品。

印刷书籍: 每本书就像是一个数据存储单元。

图书管理员: 你作为图书管理员,负责管理这些书籍的分类(结构化数据)和存放位置(HDFS)。

如果你需要查找某个主题的书,使用卡片目录(相当于 HiveQL)就能快速找到所有相关的书籍,而不必翻阅每一本书。这就是 Hive 让数据查询和管理变得简单的原因。

前提准备

需要先将Hadoop全部进程启动

代码语言:shell
复制
# 解压hive-3.1.3.tar.gz到/opt/module/目录下面
tar -zxvf hive-3.1.3.tar.gz -C /opt/module/

# 修改hive-3.1.3-bin.tar.gz的名称为hive
mv /opt/module/apache-hive-3.1.3-bin/ /opt/module/hive

# 配置环境变量
vim /etc/profile

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

# 使环境变量生效
source /etc/profile

# 解决日志Jar包冲突
cd /opt/module/hive/lib

mv log4j-slf4j-impl-2.17.1.jar log4j-slf4j-impl-2.17.1.jar.bak

Hive元数据配置到MySQL

代码语言:shell
复制
# 将MySQL的JDBC驱动拷贝到Hive的lib目录下。
cp /opt/software/mysql/mysql-connector-j-8.0.31.jar /opt/module/hive/lib/

配置Metastore到MySQL

在$HIVE_HOME/conf目录下新建hive-site.xml文件

cd $HIVE_HOME/conf

vim hive-site.xml

代码语言:xml
复制
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!--配置Hive保存元数据信息所需的 MySQL URL地址-->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;allowPublicKeyRetrieval=true</value>  
    </property>
    <!--配置Hive连接MySQL的驱动全类名-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>
    <!--配置Hive连接MySQL的用户名 -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <!--配置Hive连接MySQL的密码 -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>000000</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    </property>
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
</configuration>

初始化元数据库

初始化成功标志:

代码语言:shell
复制
# 登陆MySQL
mysql -uroot -p000000

# 新建Hive元数据库
mysql> create database metastore;

# 退出mysql
mysql> quit;

# 初始化Hive元数据库
schematool -initSchema -dbType mysql -verbose

# 登陆MySQL
mysql -uroot -p000000
# 修改元数据库字符集
# Hive元数据库的字符集默认为Latin1,由于其不支持中文字符,所以建表语句中如果包含中文注释,会出现乱码现象。如需解决乱码问题,须做以下修改。
# 修改Hive元数据库中存储注释的字段的字符集为utf-8。
#(1)字段注释
mysql> use metastore;
mysql> alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
#(2)表注释
mysql> alter table TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;

# 退出mysql
mysql> quit;

启动Hive

任意目录下启动(环境变量的作用)

代码语言:shell
复制
hive

启动成功标志:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 前提准备
  • Hive元数据配置到MySQL
  • 配置Metastore到MySQL
  • 初始化元数据库
  • 启动Hive
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档