1. Apache Hive 概述
- 将SQL语句翻译成MapReduce程序,提供用户分布式SQL计算能力
2. 模拟实现Hive功能
- 元数据管理
- SQL解析器
3. Hive基础架构
- 元数据管理
- SQL解析器:完成SQL解析、执行优化、代码提交等功能
- 用户接口:提供用户和Hive交互的功能
4. Hive部署
4.1 规划
4.2 步骤
- 安装MySQL数据库
- 配置Hadoop
Hive的运行依赖于Hadoop
同时涉及到HDFS文件系统的访问
需设置hadoop用户允许代理其他用户 - 下载解压Hive
- 切换到hadoop用户
su - hadoop
- 下载Hive安装包
http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz - 解压到node1服务器的/export/server/内
tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /export/server/
- 设置软链接
ln -s /export/server/apache-hive-3.1.3-bin /export/server/hive
- 提供MySQL、Driver包
- 下载MySQL驱动包
- https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar
- 将下载好的驱动jar包,放入:Hive安装文件夹的lib目录内
mv mysql-connector-java-5.1.34.jar /export/server/hive/lib/
- 配置Hive
- 在Hive的conf目录内,新建hive-env.sh文件,填入以下环境变量内容:
export HADOOP_HOME=/export/server/hadoop export HIVE_CONF_DIR=/export/server/hive/conf export HIVE_AUX_JARS_PATH=/export/server/hive/lib
- 在Hive的conf目录内,新建hive-site.xml文件,填入以下内容:
- 初始化元数据库
- 在MySQL中新建数据库:hive
CREATE DATABASE hive CHARSET UTF8;
- 执行元数据库初始化命令
cd /export/server/hive bin/schematool -initSchema -dbType mysql -verbos # 初始化成功后,会在MySQL的hive库中新建74张元数据管理的表。
- 启动Hive(使用Hadoop用户)
- 创建一个hive的日志文件夹
mkdir /export/server/hive/logs
- 启动元数据管理服务(必须启动,否则无法工作)
bin/hive --service metastore # 前台启动 nohup bin/hive --service metastore >> logs/metastore.log 2>&1 & # 后台启动
- 启动客户端
bin/hive # Hive Shell方式(可以直接写SQL) bin/hive --service hiveserver2 # Hive ThriftServer方式(不可直接写SQL,需要外部客户端链接使用)
5. Hive初体验
略
6. Hive客户端
6.1 HiveServer & Beeline
- 启动
- 在hive安装的服务器上,首先启动metastore服务,然后启动hiveserver2服务
#先启动metastore服务 然后启动hiveserver2服务 nohup bin/hive --service metastore >> logs/metastore.log 2>&1 & nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &
- beeline
- 在node1上使用beeline客户端进行连接访问。需要注意hiveserver2服务启动之后需要稍等一会才可以对外提供服务。
- Beeline是JDBC的客户端,通过JDBC协议和Hiveserver2服务进行通信,协议的地址是:jdbc:hive2://node1:10000
[root@node1 ~] #/export/server/hive/bin/beeline Beeline version 3.1.2 by Apache Hive beeline> ! connect jdbc:hive2://node1:10000 Connecting to jdbc:hive2://node1:10000 Enter username for jdbc:hive2://node1:10000: root Enter password for jdbc:hive2://node1:10000: Connected to: Apache Hive (version 3.1.2) Driver: Hive JDBC (version 3.1.2) Transaction isolation: TRANSACTION_REPEATABLE_READ 0: jdbc:hive2://node1:10000>
6.2 DataGrip & DBeaver
略