大数据之九 Hive

本文详细介绍了Hive数据仓库工具,包括其作为Hadoop数据仓库的用途,SQL查询功能,以及Hive的执行原理。文章讨论了Hive的驱动引擎组成部分,并概述了三种Hive搭建模式:内嵌、本地和远程。远程模式的搭建过程包括安装MySQL,配置Hive以连接远程元数据服务。此外,还介绍了Hive的多种连接方式,如CLI、Beeline和JDBC,以及通过WEB UI进行操作的方法。
摘要由CSDN通过智能技术生成

Hive简介

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据库表,并提供类SQL(HQL)查询功能,适用于离线的批量数据计算

Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,它的表其实就是一个Hadoop的目录/文件(默认存放在Hive工作目录中)

Hive设计目的是让SQL技能良好,但Java技能较弱的分析师可以查询海量数据

Hive本质就是一个SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行

Hive架构

hive架构

Hive的执行原理

Hive 的核心是驱动引擎Driver, 驱动引擎由四部分组成:
解释器:将 HiveSQL 语句转换为抽象语法树(AST)
编译器:将语法树编译为逻辑执行计划
优化器:对逻辑执行计划进行优化
执行器:调用底层的运行框架执行逻辑执行计划

HQL 通过命令行或者客户端提交,Driver 组件对其进行词法分析,语法分析,编译,优化,最后生成逻辑执行计划。生成的逻辑执行计划存储在 HDFS 中,并随后由MapReduce 调用执行

Hive搭建模式

hive有三种搭建模式:内嵌模式,本地模式,远程模式

元数据:描述数据的数据,这里指存储在 Hive 中的数据的描述信息。元数据存储在关系型数据库中。
Hive 中的元数据通常包括:表的名字,表的列和分区及其属性,表的属性(内部表和 外部表),表的数据所在目录

内嵌模式:hive将源数据存储在HDFS中,而元数据默认存储在hive自带的数据库Derby中。但是Derby不支持多用户同时访问,所以这种模式仅供测试使用。

本地模式:使用mysql数据库替代Derby来存储元数据,以解决多用户并发访问问题

远程模式:以本地模式为基础,mysql数据库所在的节点提供metastore service服务,其他节点可以连接该服务来获取元数据信息

  • 这里我们搭建一个远程模式,首先因为hive依赖于hadoop,所以需要先搭建好hadoop环境
  • 搭建好hadoop环境后,随机选择一个节点作为 hive 远程模式的服务端,即mysql安装在该节点上,在该节点上首先安装mysql,然后配置hive,到这里这就是一个本地模式,最后开启metastore服务
  • 服务端开启服务后,对客户端进行配置,仅配置hive即可

mysql在线安装

在线安装mysql数据库

 yum install -y mysql-server

开启mysql服务

 Service mysqld start

设置开机启动

chkconfig mysqld on

安装完毕数据库是没有密码的,输入以下命令进入mysql,提示输入密码时直接回车就ok

mysql -uroot -p

进入mysql后,设定权限,修改密码

修改root权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
刷新:
flush privileges;

这里我们再添加一个新用户用来操作数据库,毕竟root权限太高

添加用户:
CREATE USER 'hive'@'%' IDENTIFIED BY '123';

授权用户:这里给hive用户操作hive_meta数据库的权限
grant all privileges on hive_meta.* to hive@"%" identified by '123';

刷新:
flush privileges;

设置完成后,我们为hive用户创建数据库 hive_mata,然后查看一下数据库

mysql> create databas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值