Hive学习---1、Hive入门、Hive 安装(一)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Hive学习---1、Hive入门、Hive 安装(一)

1、Hive入门

1.1 什么是Hive

1、Hive简介

Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

2、Hive本质

Hive是一个Hadoop客户端,用于将HQL(Hive SQL)转换为MapReduce程序。

(1)Hive每张表的数据都储存在HDFS

(2)Hive分析数据底层的实现是MapReduce(也可配置为Spark或Tez)

(3)执行程序运行在Yarn上

1.2 Hive架构原理

3e5674980cf2458c940facbd7730a1e6.png

1、用户接口:Client

CLI(command-line Interface)、JDBC/ODBC

说明:JDBC和ODBC的区别

(1)JDBC的移植性比ODBC好;(通常情况下,安装完ODBC驱动程序之后,还需要经过确认的配置才能够应用。而不同的配置在不相同数据库服务之间不能够通用。所以,安装一次就需要配置一次。JDBC只需要选取适当的JDBC数据库驱动程序,就不需要额外的配置。在安装过程中,JDBC数据库驱动程序会自己完成有关的配置)

(2)两者使用的的语言不同,JDBC在Java编程时使用,ODBC一般在C/C++编程时使用。

2、元数据:Metastore

元数据包括:数据库(默认是default)、表名、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等。

默认储存在自带的derby数据库中,由于derby数据库只支持单客户端访问,生产环境为了多人开发,推荐使用MySQL储存Metastore。

3、驱动器:Driver

(1)解析器(SQLParser):将SQL字符串转换成抽象语法树(AST)

(2)语法分析(Semantic Analyzer):将AST进一步划分成QueryBlock

(3)逻辑计划生成器(Logical Plan Gen):将语法树生成逻辑计划

(4)逻辑优化器(Logical Optimizer):对逻辑计划进行优化

(5)物理计划生成器(Physical Plan Gen):根据优化后的逻辑计划生成物理计划

(6)物理优化器(Physical Optimizer):对物理计划进行优化

(7)执行器(Execution):执行该计划,得到查询结果并返回给客户端

抽象语法树

e5f076d14a4e4871b095f59d8e0af128.png


逻辑计划与物理计划


6e4af963a45046fc83113f0cba5e90a6.png

4、Hadoop

使用HDFS进行储存,可以选择MapReduce/Tez/Spark进行计算。

2、Hive 安装

2.1 Hive安装地址

1、Hive官网地址

http://hive.apache.org/

2、文档查看地址

https://cwiki.apache.org/confluence/display/Hive/GettingStarted

3、下载地址

http://archive.apache.org/dist/hive/

4、github地址

https://github.com/apache/hive

5、hive-3.1.3

链接:https://pan.baidu.com/s/1Hcnn593Y-yRuFfGxmPg_eA

提取码:zhm6

2.2 Hive 安装部署

2.2.1 安装Hive

1、把apache-hive-3.1.3-bin.tar.gz上传到Linux的/opt/software目录下

2、解压apache-hive-3.1.3-bin.tar.gz到/opt/module/目录下面

tar -zxvf /opt/software/apache-hive-3.1.3-bin.tar.gz -C /opt/module/

3、修改apache-hive-3.1.3-bin.tar.gz的名称为hive-3.1.3

mv /opt/module/apache-hive-3.1.3-bin/ /opt/module/hive-3.1.3

4、修改/etc/profile.d/my_env.sh,添加环境变量

sudo vim /etc/profile.d/my_env.sh

(1)添加内容

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

(2)source一下

source /etc/profile.d/my_env.sh

5、初始化元数据库(默认是derby数据库)

bin/schematool -dbType derby -initSchema
2.2.2 启动并使用Hive

1、启动Hive

$HIVE_HOME/bin/hive

2、使用Hive

hive> show databases;
hive> show tables;
hive> create table stu(id int, name string);
hive> insert into stu values(1,"zhm");
hive> select * from stu;

观察HDFS路径/user/hive/warehouse/stu,体会Hive和Hadoop之间的关系。

Hive中的表在Hadoop中是目录;Hive的数据在Hadoop中是文件


8d86cf5260284bf6a9087f8a17a62fda.png

3、在Xshell窗口中开启另一个窗口开启Hive,在/tmp/zhm目录下监控hive.log

tail -f hive.log

f4bf548e5f1f4845ba11df4066d7e2f9.png


原因在于Hive默认使用的元数据库为derby。derby数据库的特点是同一时间只允许一个客户端访问。如果多个Hive客户端同时访问,就会报错。由于在企业开发中,都是多人协作开发,需要多客户端同时访问Hive,怎么解决呢?我们可以将Hive的元数据改为用MySQL存储,MySQL支持多客户端同时访问。

MySQL储存,MySQL支持多客户端同时访问


cca361c963fc49f7a18a9dc8c37e9910.png

4、首先退出HIve客户端。然后在Hive的安装目录下将derby.log和metastore_db删除,顺便将HDFS上目录删除。

hive> quit;
rm -rf derby.log metastore_db
hadoop fs -rm -r /user

5、删除HDFS中/user/hive/warehouse/stu中数据

30295bf3c4e644c8beeb10d5ef39ef12.png

d52195296e154ec4ac711665d8e8f0e3.png

2.3 MySQL安装

2.3.1 安装MySQL

0、资料获取

链接:https://pan.baidu.com/s/1Hcnn593Y-yRuFfGxmPg_eA

提取码:zhm6

1、上传MySQL安装包以及MySQL驱动包

mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
mysql-connector-java-5.1.37.jar

2、解压MySQL安装包

mkdir mysql_lib
tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C mysql_lib/

3、卸载系统自带的mariadb

sudo rpm -qa | grep mariadb | xargs sudo rpm -e --nodeps

4、安装MySQL依赖

cd mysql_lib
sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm

5、安装MySQL-client

sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm

6、安装MySQL-server

sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

7、启动MySQL

sudo systemctl start mysqld

8、查看MySQL密码

sudo cat /var/log/mysqld.log | grep password
2.3.2 配置MySQL

配置主要是root用户+密码,在任何主机上都能登录MySQL数据库。

1、用刚刚查到的密码进入MySQL(如果报错,给密码加单引号)

mysql -uroot -p'password'

2、设置复杂密码(由于MySQL密码策略,此密码必须足够复杂)

mysql> set password=password("Qs23=zs32");

3、更改MySQL密码策略

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;

4、设置简单好记的密码

mysql> set password=password("123456");

5、进入MySQL库

mysql> use mysql

6、查询user表

mysql> select user, host from user;

7、修改user表,把Host表内容修改为%

mysql> update user set host="%" where user="root";

8、刷新

mysql> flush privileges;

9、退出

mysql> quit;

2.3.3 卸载MySQL说明

若因为安装失败或者其他原因,MySQL需要卸载重装,可以参考一下内容

1、清空原有数据

(1)通过/etc/my.cnf查看MySQL数据的存储位置

(2)去往/var/lib/mysql路径需要root权限

2、卸载卸载MySQL相关包

(1)查看安装过的MySQL相关包

sudo rpm -qa | grep -i -E mysql

(2)一键卸载命令

rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
57 4
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
87 3
|
2月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
43 2
|
7月前
|
SQL HIVE
|
3月前
|
SQL JSON Java
Hive学习-数据查询语句
Hive学习-数据查询语句
36 6
|
3月前
|
SQL JavaScript 前端开发
Hive学习——命令行
Hive学习——命令行
62 5
|
3月前
|
SQL JavaScript 前端开发
Hive学习-数据定义语句
Hive学习-数据定义语句
47 5
|
3月前
|
SQL JavaScript 前端开发
Hive学习-lateral view 、explode、reflect和窗口函数
Hive学习-lateral view 、explode、reflect和窗口函数
60 4
|
4月前
|
SQL 分布式计算 Hadoop
Hive基本概念入门
Hive基本概念入门
87 0
|
5月前
|
SQL 分布式计算 关系型数据库
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
79 2