Hive基础

 一、Apache Hive 概述

Hive是一个SQL转化转化工具,将SQL的计算转为MapReduce的计算,让开发人员更加方便进行大数据开发

select count(*) from stu

二、 模拟实现Hive功能

hive如何将hdfs上的数据转为结构化的表数据?

一张表的数据构成

1-表的元数据 描述表的基本信息

表名字,字段名,字段类型,字段约束

2-表的行数据

表中每一行的数据内容

表名:tb_stu

id int

name varchar(20)

gander varchar(20)

1

张三

2

李四

3

王五

在mysql,oracle等数据库中,表的元数据和行数是数据库统一管理

在hive中表的元数据和行数据由metastore和hdfs共同管理

表的元数据由metastore管理存储

行数据由hdfs管理存储

三、 Hive基础架构

​编辑

  1. 三种客户端模式:
  • 命令行模式 hive
  • 第三方服务(要遵循jdbc协议) : java database connection datagrip beeline
  • web页面: 几乎不用
  • 帮助我们查询元数据
  1. HiveDriver hive驱动
  • 解析sql语句
  • 制定执行任务
  • 提交mr任务
  • 优化执行方案
  1. 执行计算任务
  • 向yarn申请资源
  • 从hdfs中提取数据

注意: hivedriver支持多种计算引擎, 例如 MapReduce Tez Spark

四、Hive部署(了解)

前提 : hadoop 服务 和 mysql 服务可以正常使用.

Hive的三种安装模式

  • ==内嵌模式==(体验)
  • 1、元数据存储在内置的derby
  • 2、不需要单独配置metastore 也不需要单独启动metastore服务
  • ​​

适合测试体验。

​编辑

本地模式 

1、元数据使用外置的RDBMS,常见使用最多的是MySQL。
2、不需要单独配置metastore 也不需要单独启动metastore服务
缺点:
如果使用多个客户端进行访问,就需要有多个Hiveserver服务,此时会启动多个Metastore
有可能出现资源竞争现象

 ​编辑

 远程模式

1、元数据使用外置的RDBMS,常见使用最多的是MySQL。
2、metastore服务单独配置  单独手动启动  全局唯一。

这样的话各个客户端只能通过这一个metastore服务访问Hive.

​编辑

  • 对比

metadata存储在哪

metastore服务如何

内嵌模式

Derby

不需要配置启动

本地模式

MySQL

不需要配置启动

==远程模式==

==MySQL==

==单独配置、单独启动==

在公共服务中已经将hive部署完成

Hive服务是单机服务,但是,可以进行分布式存储和分布式计算 (基于hdfs和MapReduce)

hive部署完成后,只有node1可以启动服务,但是node2,node3....都可以使用hive服务,因为其可以使用客户端远程链接node1上的服务.

五.Hive客户端
 

5-1 本地使用

使用一代客户端在本地服务器上连接hive完成sql操作

需要先把metastore的元数据管理服务启动起来

  • 启动metastore服务

hive --service metastore

​编辑

实际开发中让服务后台运行

nohup hive --service metastore &

​编辑

 hive使用java开发,服务运行后可以jps查看java运行的程序

 ​编辑

​编辑

使用一代客户端连接,不需要输入账号密码

hive

​编辑

5-2 远程使用

可以在其他服务器中连接hive进行相关操作

可以使用二代客户端进行连接,二代客户端支持jdbc,并且需要使用账号进行登录

  • 1-启动metastore服务
    • 管理元数据
  • 2-启动hiveserver2服务
    • 底层调用thriftserver
    • 运行服务支持jdbc连接

nohup hive --service hiveserver2 &

注意不要重复启动

 ​编辑

hiveserver2的启动时间会比较长,可以通过端口查看确认hiveserver2是否真的启动

hiveserver2运行时会绑定10000端口

lsof  -i:10000

​编辑

使用hive自带的二代客户端,通过jdbc方式连接hive

beeline

​编辑

 ​编辑

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值