大数据学习教程SD版第七篇【Hive】

本文是关于Hive的全面教程,从Hive简介、与RDBMS对比,到安装配置、JDBC连接、Shell使用,以及Hive的SQL操作,包括DDL、DML和DQL。此外,还探讨了Hive的元数据存储、压缩和文件格式,适合大数据初学者和开发者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Hive 简介

数据仓库工具,将结构化数据映射成二维表,并提供类SQL查询,底层把HQL转换成MR程序

  • Hive 自带的客户端
  1. hive client
  2. beeline client
  • 特点
  1. HQL 用于数据分析,但处理处理粒度粗
  2. 处理大数据,但延迟高
  3. 支持自定义函数
  • 架构原理

Metastore 元数据存储 Client 客户端 MapReduce 计算引擎 HDFS 数据源

  1. 解析器 解析HQL 映射关系,元数据
  2. 编译器 把HQL 转化成MR
  3. 优化器 优化执行的逻辑
  4. 执行器 把执行逻辑 物理化执行

2. Hive vs RDBMS

  1. 查询语言:类似SQL
  2. 数据规模:数据量大
  3. 数据更新:读多写少,导入导出
  4. 执行延迟:量大,延迟高

3. Hive 安装

  1. 下载安装包
  2. 解压安装包
  3. 配置环境变量
  4. 初始化元数据
./schematool -dbType derby -initSchema
  1. 启动测试
# 先启动hadoop,在启动hive
./hive
  • 更改元数据存储位置

hive 默认元数据存在自带的derby 数据库,缺点: 1. 元数据不好查看;2.使用derby 不支持多租户,即不支持多个hive client 同时使用,可以更换元数据存储位置为MySQL

3.1 MySQL安装

此处安装的是rpm的MySQL安装包,所以只适用于redhat系列

  1. 卸载系统自带的MySQL
# 查找
rpm -qa|grep mariadb
rpm -qa|grep mysql
# 卸载,不带依赖的卸载方式
rmp -e --nodeps maridb-libs
  1. 解压tar包并安装rpm包
tar -xvf xx.tar
# 依次安装 common、libs、libs-compat、client、server
rpm -ivh xxx.rpm
# 如果是最小化安装,需要安装额外依赖
rpm install -y libaio
  1. 修改MySQL配置文件
vim /etc/my.cnf # 查看datadir 位置

# 删除datadir 目录下内容
  1. 初始化MySQL
mysqld --initialize --user=mysql

# 查看临时密码
cat /var/log/mysqld.log
  1. 启动MySQL服务并登录
systemctl start mysqld

mysql -u root -pXXX

# 密码需改(可以不修改),各个版本MySQL修改方式不同
set password = password("000000");
  1. 开启MySQL远程连接
# 查看
select host,user from mysql.user;

# 修改
update mysql.user set host='%' where user='root';
flush privileges; 

3.2 Hive Metasore

修改元数据存储位置为MySQL

  1. copy 一个MySQL驱动包 到 hive的lib目录下
  2. 在conf下创建一个一个hive-site.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
   <!-- 元数据存储库MySQL四大连接参数-->   
   <property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false&amp;allowPublicKeyRetrieval=true</value>
	 </property>  
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>root</value>
	</property> 
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>000000</value>
	</property>
   <!-- 元数据存储版本验证和存储授权--> 
	<property>
	<name>hive.metastore.schema.verification</name>
	<value>false</value>
	</property>
	<property>
	<name>datanucleus.metadata.validate</name>
	<value>false</value>
	</property>
</configuration>
  1. 登录MySQL并创建存储的数据库
create database metastore;
  1. 初始化hive元数据存储库
schematool -initSchema -dbType mysql -verbose
  1. 再次启动hive
hive

3.3 Hive 远程服务

使用元数据服务的方式,开启hive的远程访问

  1. 修改hive-site.xml,添加
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://hadoop102:9083</value>
</property>
  1. 启动元数据服务
hive --service metastore

4. Hive JDBC

要想使用jdbc连接Hive ,还需要开启hiveserver2的服务

  1. 修改hive-site.xml
        <property> 
                <name>hive.server2.thrift.port</name> 
                <value>10000</value>
        </property>  
        <property> 
                <name>hive.server2.thrift.bind.host</name>
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道-闇影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值