Hive学习笔记(1)初识Hive

Hive是一个数据仓库基础工具,在Hadoop中用来处理结构化的数据。它架构在Hadoop之上,hive底层数据存储是hdfs文件,文件中是结构化的数据,hive提供了sql化的方案,将sql语句转化为MapReduce任务运行在hadoop之上,从而降低了大数据开发者对MapReduce的技术门槛。

什么是Hive?

Hive由Facebook开发,后经Apache基金会孵化并开源。Hive是基于Hadoop分布式文件系统HDFS的一个数据仓库工具,用于处理结构化数据,底层数据存储在HDFS上。Hive将结构化的HDFS文件映射为一张数据库表,并提供了Hive SQL语言实现查询功能。Hive的原理是将SQL语句翻译为Hadoop识别的MapReduce任务并提交给Hadoop运行,解决了原始数据开发人员编写复杂晦涩难懂的MapReduce任务所面临的困难。Hive目前主要用于数仓建设中的离线数据存储和批任务的加工分析。

为什么是Hive?

假如没有Hive会怎样?
Hadoop的问世完美地解决了大数据的存储和计算问题,在没有Hive时,数据开发工程师通过开发MapReduce任务来进行离线数据分析计算。但MapReduce通常需要工程师将加工逻辑拆分为map和reduce两个阶段,要实现复杂的逻辑时,开发难度可想而知,并且数据开发人员往往都是从事SQL编写,而MR的开发则增加了开发语言等学习成本,这往往让初期通过MR进行数据分析的开发人员和公司很痛苦。我们猜测应该是Facebook更容易接受SQL的工程师们推动了Hive的问世。
好了,总结一下:

Hive是基于HDFS的离线大数据存储和加工分析的数仓工具,提供了十分友好的交互接口,支持Hive SQL语法(而Hive SQL很大程度上继承了传统SQL语法),一个十分熟悉SQL开发的数据工程师能够在很短的时间内上手Hive开发,极大地降低了学习成本,并且有很好的扩展性,可以方便地扩展集群,用户也可以自定义函数。

Hive有什么特点?

任意一个产品都有它的优缺点,Hive也不例外。

优点

  • 良好的扩展性。Hive可以自由地横向扩展集群,且无需重启服务,从而扩大集群规模。也可以通过提高服务器cpu和内存的方式进行纵向扩展,从而降低集群规模。
  • 延展性。Hive支持用户自定义函数,这极大地给用户提供了更开放的开发空间。
  • 容错性。即使有节点出现问题,SQL语句依然可以完成执行。

缺点

  • Hive不支持记录级别的删改操作。低版本的Hive。
  • Hive查询延时,不使用于低延时的场景。
  • Hive没有事务的概念。

Hive是不是关系型数据库?

Hive不是关系型数据库。

Hive有事务吗?

Hive有事务,不过hive的事务是表级和分区级的事务,Hive数据都是离线数据,不能用于联机的事务处理。

Hive是否可以用于实时系统架构?

Hive的定位是离线海量数据的存储和加工处理的数仓工具,所以不能用户实时系统架构组件来使用,也不能用于行级数据的更新操作。

Hive架构

image.png

Hive架构主要由四个模块组成:

  • 接口层:提供了hive用户界面,Web UI,shell交互窗口,对外API等。
    CLI(Command Line Interface)是hive的终端命令行接口,通常我们初学和调试生成等场景下最常用的工具。
    JDBC/ODBC是Hive基于JDBC操作的客户端,用户通过这个连接到Hive Server。
    Web UI是通过浏览器来访问Hive。、
    Thrift Server让用户可以通过多种不同的语言来操作Hive。Thrift是Facebook开发的一款软件框架,用来进行可扩展的跨语言的服务开发。

  • 查询引擎:hive引擎主要由编译器(Compiler),优化器(Optimizer)和执行器(Executor)组成。编译器负责SQL的解析,语义分析等;优化器负责优化执行任务,执行器负责构建MapReduce任务并提交给Hadoop集群执行。

  • 元数据:hive将结构化的HDFS文件映射为数据库表,其中反映这种映射关系的元数据存储在关系型数据中。元数据存储由第三方提供支持,通常为mysql数据库。Hive通过MetaStore服务和RDBMS进行交互。

  • Hadoop:hive构建于Hadoop的分布式文件系统HDFS之上,是Hive存储和计算的载体。

Hive的核心查询引擎(Query Engine/Driver)

hive的核心查询引擎分三个模块:

  • Complier:编译器。包括HQL的解析,语义分析等。
  • Runtime:运行时。包括QueryPlan需要的驱动,算子等。
  • Aux Utils:其他辅助工具。包括日志,配置管理等。

Hive的执行流程

接口层接收客户端的提交——>编译器根据元数据等信息进行编译和语义分析,构建执行计划——>优化器优化执行方案,构建MR任务并执行

Hive的数据模型(Data Model)

Hive数据模型包括数据库,内表,外表,视图,分区,桶,数据。其中数据库,表,分区,视图在HDFS中对应的是一个目录,其中内表由hive管理,外表的数据由用户管理;桶和数据在HDFS中对应的是文件,其中桶是根据某个字段的值进行hash散列之后的多个文件。

Hive表都有哪些类型?

Hive表分为内部表,外部表,分区表和分桶表。

Hive内部表和外部表的区别是什么?

内部表的数据由Hive进行管理,外部表的数据由用户管理;最大的区别就是在删除表的时候,内部表会删除元数据和数据文件(数据不可恢复);外部表只会删除元数据,数据文件并不会删除。

如何选择内部表和外部表?

如果模型结构稳定(不会经常发生修改模型结构的情况),且数据加工都是基于Hive完成,则推荐用内部表;如果是数仓建设初期,业务逻辑还不太稳定,表模型存在经常改动的阶段,或数据来源于其他工具(如Flume等),或多种工具对数据文件进行加工处理,则选择外部表。

Hive分区表和分桶表的区别是什么?

Hive分区表根据某些字段进行分区(如时间字段),表现为不同的分区目录;而分桶表是表和分区在文件层面的更进一步的细化,将数据文件根据某个字段的hash散列为多个分桶文件。分区和分桶都是对数据的精细化管理,分桶比分区更精细化,查询准确性和速度会更高。

一句话描述Hive

Hive是支持SQL开发的,处理基于Hadoop分布式文件系统HDFS存储的结构化数据的离线海量数据的统计分析工具,用于构建数据仓库。Hive有内部表,外部表,分区表,分桶表,视图等,支持HQL类SQL查询语法。

再谈Hive的设计架构

Impala知识体系:https://www.cnblogs.com/zlslch/category/993482.html
Impala是使用CDH的首选PB级大数据实时查询分析引擎。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342