黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门

1. Apache Hive 概述

  1. 分布式SQL计算定义
    以分布式的形式,执行SQL语句,进行数据统计分析

  2. Apache Hive功能
    将SQL语句翻译成MapReduce程序,提供用户分布式SQL计算能力

2. 模拟实现Hive功能

  • 元数据管理
  • SQL解析器

3. Hive基础架构

  • 元数据管理
  • SQL解析器:完成SQL解析、执行优化、代码提交等功能
  • 用户接口:提供用户和Hive交互的功能

4. Hive部署

4.1 规划

1

4.2 步骤

  1. 安装MySQL数据库
    2

  2. 配置Hadoop
    Hive的运行依赖于Hadoop
    同时涉及到HDFS文件系统的访问
    需设置hadoop用户允许代理其他用户
    3

  3. 下载解压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
  1. 提供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/
  1. 配置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文件,填入以下内容:
    4
    5
  1. 初始化元数据库
  • 在MySQL中新建数据库:hive
CREATE DATABASE hive CHARSET UTF8;
  • 执行元数据库初始化命令
cd /export/server/hive
bin/schematool -initSchema -dbType mysql -verbos
# 初始化成功后,会在MySQL的hive库中新建74张元数据管理的表。
  1. 启动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

  1. 启动
  • 在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 &
  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

猜你喜欢

转载自blog.csdn.net/m0_68111267/article/details/131738136