1 Hive简介
Hive是facebook开源,捐献给apache组织,作为apache组织的顶级项目(hive.apache.org)。 hive是一个基于大数据技术的数据仓库(DataWareHouse)技术,主要是通过将用户书写的SQL语句翻译成MapReduce代码,然后发布任务给MR框架执行,完成SQL 到 MapReduce的转换。可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
关键信息:
-
数据仓库和数据库
数据仓库和数据库一样都是用来保存数据,但是二者的定位有很大的差异。
数据库(DataBase):
-
存储复杂的表格数据,存储结构紧致,少冗余数据
-
存储的都是实时的业务数据(比如商品信息、订单信息),为应用的普通使用者使用的功能(商品详情、查询订单)提供功能支持
-
数据库中的数据即又要读(比如查看商品信息),也要写(比如产生订单,完成支付)
-
相对简单的读写操作,单次操作少量的数据。对于单次大量数据的读是支持不足的。
数据仓库(DataWareHouse):
-
存储的是相对简单的表格数据,存储结构相对松散,多冗余数据
-
存储的是应用的历史数据,包含业务数据和非业务数据(某个页面的pv和uv),为专业用户(程序员、产品经理、运营人员)分析产品运行状况、制定公司运营决策做支持
-
数据仓库中的数据主要用于读
-
相对复杂的分析查询操作,单次操作大量的数据。
-
-
Hive的特点
作用:
-
Hive是一个数据仓库
-
Hive构建在HDFS上,底层使用HDFS,也就可以存储海量数据。
-
Hive允许程序员使用SQL命令来完成数据的分析统计,底层转换为Yarn调度下的MR操作。(Hive会将SQL转化为MR操作)
优点:
-
简化程序员的开发难度,写SQL即可,避免了写MR程序,减少开发人员的学习成本
缺点:
-
延迟较高(MapReduce本身延迟,Hive SQL向MapReduce转化优化的成本),适合做大数据的离线处理(TB PB级别的数据,统计结果延迟1天产出)
不适合场景:
-
小数据量
-
实时计算
-
2 Hive的架构
相关概念:
-
HDFS:用来存储hive仓库的数据文件
-
Yarn:用来完成hive的HQL转化的MR程序的执行
-
MetaStore:保存管理hive的元数据
-
Driver:将HQL的执行,转化为MapReduce程序的执行,从而对HDFS集群中的数据进行统计。
3 Hive的安装步骤
安装涉及的软件:HDFS、Yarn、MySQL(存储hive的元数据)、Hive
3.1 下载hive压缩包
地址:https://archive.apache.org/dist/hive
选择所需的版本下载(-bin.tar.gz)结尾
3.2 上传压缩包到linux并解压
# 解压压缩包到指定目录
tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/installs
# 更改压缩包名称
mv apache-hive-2.3.7-bin hive2.3.7
3.3 配置环境变量
vim /etc/profile
# 在最后添加
export HIVE_HOME=/opt/installs/hive2.3.7
export PATH=$PATH:$HIVE_HOME/bin
# 完成后刷新环境变量
source /etc/profile
3.4 初始化hive配置
在hadoop的 core-site.xml,添加如下配置
<!--
配置任意机器(hosts=*)上任意用户组(groups=*)的用户可以使用root的身份操作hadoop
-->
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
3.5 配置 hive/conf/hive-env.sh
#复制 hive-env.sh.template 并改名为hive-env.sh
cp hive-env.sh.template hive-env.sh
#配置hive-env.sh
vi hive-env.sh
# 配置hadoop目录
HADOOP_HOME=/opt/installs/hadoop-2.9.2/
# 指定hive的配置文件目录
export HIVE_CONF_DIR=/opt/installs/hive2.3.7/conf/
3.6 配置 hive-site.xm
# 复制hive-default.xml.template 并改名hive-site.xml
cp hive-default.xml.template hive-site.xml
# 编辑 hive-site.xml
vi hive-site.xml
<!-- 将configuration中原有子标签全部删掉,保留configuration父标签-->
<!--hive的元数据保存在mysql中,需要连接mysql,这里配置访问mysql的信息-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://ip:3306/hive?useUnicode=true&characterEncoding=utf-8&useSSL=false</value>
</property>
<!--数据库驱动类名5.X版本-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--数据库驱动类名8.X版本-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<!--数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<!--数据库密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
3.6 mysql中创建hive
数据库和用户
# 使用root用户进入
mysql -u root -p
# 创建hive用户允许远程连接密码为123456
CREATE USER 'hive'@'%' IDENTIFIED BY '123456';
# 创建hive数据库
create database hive;
# 给hive用户赋予对hive数据库的所有权
grant all on hive.* to 'hive'@'%';
# 刷新mysql授权信息
flush privileges;
3.7 初始化Hive元数据
1. 下载对应mysql版本的mysql-connector-java-x.x.x.jar
地址:https://downloads.mysql.com/archives/c-j/
2.将解压好的jar包放到 hive/lib 目录下
3.执行初始化命令
schematool -dbType mysql -initSchema
Metastore connection URL: jdbc:mysql://ip:3306/hive?useUnicode=true&characterEncoding=utf-8&useSSL=false
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: hive
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed
返回schemaTool completed 说明初始化成功,此时在mysql的hive数据库中新增了很多的表,这些表用来保存hive元数据。
标签:xml,安装,hive,介绍,env,mysql,Hive,数据 From: https://blog.csdn.net/weixin_57876654/article/details/142999878