Hive基础(二)-hive的基本概念

举报
bigdata张凯翔 发表于 2021/03/25 23:53:27 2021/03/25
【摘要】 2.hive的基本概念 1.hive的概念 hive:是hadoop的一个数据仓库。提供了一个类sql的功能,通过写一个sql语句完成数据的分析。 将结构化的数据映射成一张表 结构化数据: 存有关系的数据(关系型数据库)、有一定规则的文本 半结构化数据:非关系模型的、有基本固定结构模式的数据,例如日志文件、XML文档、JSON文档、Email等。 非结构化数据:没有固定模式的...

2.hive的基本概念

1.hive的概念

hive:是hadoop的一个数据仓库。提供了一个类sql的功能,通过写一个sql语句完成数据的分析。

  • 将结构化的数据映射成一张表
  • 结构化数据: 存有关系的数据(关系型数据库)、有一定规则的文本
  • 半结构化数据:非关系模型的、有基本固定结构模式的数据,例如日志文件、XML文档、JSON文档、Email等。
  • 非结构化数据:没有固定模式的数据,如WORD、PDF、PPT、EXL,各种格式的图片、视频等。

hive本身不存储数据,数据存储到hdfs上,当执行sql语句的时候,实际是将sql语句转换成mapreduce去处理。

2.hive的架构

(1)用户的接口:写sql的地方,shell/cli jdbc odbc web接口
(2)解析器:

  • 1)编译器:需要将sql编译成mapreduce
  • 2)优化器:写一个sql,对sql进行一个优化
  • 3)执行器:将mr交由yarn去执行

2.hive的架构:
​ 1)用户接口:Hive提供多种用户接口,主要通过shell的client完成相关操作
​ 2)解析器:
​ 1)编译器:用于sql的解析,转化为mapreduce
​ 2)优化器:在编译后的结果进行优化。
​ 3)执行器:执行sql(最终执行mapreduce)


image.png

​ 1)用户接口:Hive提供多种用户接口,主要通过shell的client完成相关操作
​ 2)解析器:
​ 1)编译器:用于sql的解析,转化为mapreduce
​ 2)优化器:在编译后的结果进行优化。
​ 3)执行器:执行sql(最终执行mapreduce)


image.png

MetaStore : 提供元数据服务。
Driver : 管理HQL执行的生命周期,贯穿Hive任务整个执行期间。
Compiler : 编译HQL并将其转化为一系列的Map/Reduce任务。
Optimizer : 优化器,优化HQL生成的执行计划和MapReduce任务。
Executor : 执行Map/Reduce任务。
ThriftServer : 提供thrift接口,作为JDBC和ODBC的服务端,将Hive和其他应用程序集成起来。
Clients :为用户访问提供命令行接口Beeline和JDBC/ODBC接口。
image.png

(3)元数据:默认存储derby数据库

    1. /hive bin/hive 产生两个库,元数据导致不一致
  • 2.只允许一个人连接
  • 3.实际中,我们使用mysql数据进行元数据的存储和管理
3.hive的安装部署

在使用hive之前,一定要启动hadoop
(1)详见文档
(2)hive使用beeline的方式:
​ 使用beeline连接,hive中没有设置对于自己的用户名和密码,输入用户名和密码,对于用户名要使用hadoop安装时的用户名,输入root

hive的使用方式:
有3种
元数据存放在mysql
​ 1)hive shell
​ 2)通过jdbc的方式连接,beeline
===[首先启动metastore,再启动hiveserver2]
​ 首先要启动服务,hiveserver2
​ 前台启动方式: bin/hive --service hiveserver2
​ 后台启动方式:nohup bin/hive --service hiveserver2 2>&1 &
​ 然后通过beeline的方式访问:
​ bin/beeline
​ !connect jdbc:hive2://node03:10000
3)hive 命令
​ hive -e #指定一个sql语句执行
​ bin/hive -e "use test;select * from test001;“
​ hive -f #指定一个sql脚本执行
​ bin/hive -f text.sql


2.hive的介绍
​ hive:是基于hadoop的数据仓库的工具。hive中数据的存储在hadoop的hdfs上进行存储。
​ hive中数据的分析,使用类sql的语言进行分析---HQL
​ hive中sql的自行,最终会转换成mapreduce去执行。
学习hive的原因:
​ 1)学习成本的降低
​ 2) 降低项目开发周期
​ 3)mapreduce的难度大
​ 使用hive:
​ 1)操作简单易上手
hive的特点:
​ 1)可扩展:hive可以自由扩展集群的规模。
​ 注意:hive没有集群的概念,只是一个工具。
​ 2)延展性:功能可以扩展,主要是用户自定义函数(udf)
​ 3)容错:hadoop的容错机制。

​ hive和hadoop的关系:

​ hive中数据存储是基于hdfs
​ hive的HQL执行是基于mapreduce
​ hive和hadoop的关系:紧耦合

hive:数据仓库,基于hadoop实现
架构:hadoop,
执行引擎:mr
存储:hdfs
安装:默认使用derby,我们要使用mysql

客户端的连接:
1 bin/hive
2 beeline
3bin/hive 
-e 执行sql
-f执行sql文件

Hive和数据库比较
Hive 和数据库除了拥有类似的查询语言,再无类似之处。
1)数据存储位置
1、Hive 存储在 HDFS 。
2、数据库将数据保存在块设备或者本地文件系统中。
2)数据更新
Hive中不建议对数据的改写。
而数据库中的数据通常是需要经常进行修改的。
3)执行延迟
Hive 执行延迟较高。数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出优势。
4)数据规模
Hive支持很大规模的数据计算;数据库可以支持的数据规模较小。

Hive架构

image.png

文章来源: www.jianshu.com,作者:百忍成金的虚竹,版权归原作者所有,如需转载,请联系作者。

原文链接:www.jianshu.com/p/e48e759bb5f5

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。