一、Hive概念

Facebook为了解决海量日志数据的分析而开发了Hive,Hive是一种用SQL语句来读写、管理存储在分布式存储设备上的大数据集的数据仓库框架。

1、
数据是存储在HDFS上的,Hive本身并不提供数据的存储功能。

2、
Hive是用类似SQL的方式来读写、管理数据的,但是底层最终是将语句转换为一个个的MapReduce Job来执行的。

3、
Hive是将数据映射成数据库和一张张的表,库和表的元数据信息一般存在关系型数据库上(比如MySQL)。元数据信息包括:

Owner

库、表的所属者

CreateTime

创建时间

LastAccessTime

最后修改时间

Location

存储位置

Table Type

表类型(内部表、外部表)

表的字段信息

二、Hive的优势

1、 Hive通过SQL来分析大数据,而避免了写MapReduce Java程序来分析数据,这样使得分析数据更容易。

2、 Hive的元数据一般存放在关系型数据库中,这样可以统一管理,并且可以实现与其他框架共享元数据。

3、 Hive更容易扩展

(1)     集群部署方面:因为Hive中的数据实际是存放在HDFS上的,所以当数据量增加需要扩展时,扩展HDFS即可。

(2)     分析方面:Hive自带了很多内置函数以利于分析数据,当内置函数不满足需求时,可以通过写Java程序的方式自定义函数,这大大增加了数据分析时程序的可扩展性。

三、Hive技术架构

1、   架构图

2、   Hive的核心

Hive的核心是驱动引擎,驱动引擎由四部分组成:

(1)     解释器:解释器的作用是将HiveSQL语句转换为语法树(AST)。

(2)     编译器:编译器是将语法树编译为逻辑执行计划。

(3)     优化器:优化器是对逻辑执行计划进行优化。

(4)     执行器:执行器是调用底层的运行框架执行逻辑执行计划。

3、   Hive的底层存储

Hive的数据是存储在HDFS上的。Hive中的库和表可以看做是对HDFS上数据做的一个映射。所以Hive必须是运行在一个Hadoop集群上的。

4、   Hive程序的执行

Hive中的执行器,是将最终要执行的MapReduce程序放到YARN上以一系列Job的方式去执行。

5、   Hive的元数据存储

Hive的元数据是一般是存储在MySQL这种关系型数据库上的,

6、   Hive客户端

Hive有很多种客户端。

(1)   
cli命令行客户端:采用交互窗口,用hive命令行和Hive进行通信。

(2)   
HiveServer2客户端:用Thrift协议进行通信,Thrift是不同语言之间的转换器,是连接不同语言程序间的协议,通过JDBC或者ODBC去访问Hive。

(3)   
HWI客户端:hive自带的一个客户端,但是比较粗糙,一般不用。

(4)   
HUE客户端:通过Web页面来和Hive进行交互,使用的比较多。

附件列表

Hive技术架构的更多相关文章

  1. 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构) (转)

    转自:http://blog.csdn.net/v_july_v/article/details/6704077 从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到 ...

  2. 深入浅出Hive企业级架构优化、Hive Sql优化、压缩和分布式缓存(企业Hadoop应用核心产品)

    一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景       作为企业Hadoop应用的核心产品,Hive承载着FaceBook.淘宝等大佬 95%以上的离线统计,很多企业里的离线统 ...

  3. 从Hadoop骨架MapReduce在海量数据处理模式(包括淘宝技术架构)

    从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,认为它们非常是神奇.而神奇的东西常能勾 ...

  4. 宜人贷PaaS数据服务平台Genie:技术架构及功能

    上篇:架构及组件 一.数据平台的发展 1.1 背景介绍 随着数据时代的到来,数据量和数据复杂度的增加推动了数据工程领域的快速发展.为了满足各类数据获取/计算等需求,业内涌现出了诸多解决方案.但大部分方 ...

  5. Spark学习笔记0——简单了解和技术架构

    目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...

  6. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

  7. Worktile 技术架构概要

    其实早就该写这篇博客了,一直说忙于工作没有时间,其实时间挤挤总会有的,可能就是因为懒吧!从2013年11月一直拖到现在,今天就简单谈谈 Worktile 的技术架构吧 . Worktile 自上线到现 ...

  8. 聚光灯下的熊猫TV技术架构演进

    2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...

  9. eaby技术架构变迁

    如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 最近在infoq上面看到 ebay介绍其系统架构变迁以及系统设计分享方面的讲座,其中 ...

随机推荐

  1. 读python源码--对象模型

    学python的人都知道,python中一切皆是对象,如class生成的对象是对象,class本身也是对象,int是对象,str是对象,dict是对象....所以,我很好奇,python是怎样实现这些 ...

  2. git快速get

    配置:git config --global user.name 'yangshaoxiang' git config --global user.email '254135495@qq.com' s ...

  3. FastClick 填坑及源码解析

    最近产品妹子提出了一个体验issue —— 用 iOS 在手Q阅读书友交流区发表书评时,光标点击总是不好定位到正确的位置: 如上图,具体表现是较快点击时,光标总会跳到 textarea 内容的尾部.只 ...

  4. What is Away3D

    做了几个基于Flash平台的3D的项目,一路走来收获颇多.Away3D作为一个开源的Flash3D引擎,在3D页游领域,无疑是当前OGRE在国内的地位. 翻译出了多年前做Away3D中国社区的时候翻译 ...

  5. CSharpGL(21)用鼠标拾取、拖拽VBO图元内的点、线或本身

    CSharpGL(21)用鼠标拾取.拖拽VBO图元内的点.线或本身 效果图 以最常见的三角形网格(用GL_TRIANGLES方式进行渲染)为例. 在拾取模式为GeometryType.Point时,你 ...

  6. mysql向表中某字段后追加一段字符串:

    mysql向表中某字段后追加一段字符串:update table_name set field=CONCAT(field,'',str) mysql 向表中某字段前加字符串update table_n ...

  7. NLog在Asp.Net MVC的实战应用

    Asp.Net MVC FilterAttribute特性.读取xml反序列化.NLog实战系列文章 首先新建一个MVC project. 一.NLog的配置. 作者:Jarosław Kowalsk ...

  8. 【Win 10 应用开发】三维变换

    所谓三维变换,其实是在二维平面上产生三维的视觉效果.前面老周简单提了一下透视效果,如果透视效果不能满需求,那可以考虑用三维变换. UIElement类有一个属性叫Transform3D,它定义的类型为 ...

  9. 【Win 10应用开发】把文件嵌入到XML文档

    把文件内容嵌入(或存入)到XML文档中,相信很多朋友会想到把字节数组转化为Base64字符串,再作为XML文档的节点.不过,有人会说了,转化后的base64字符串中含有像“+”这样的符号,写入到XML ...

  10. 慕课网H5圣诞主题

    继七夕之后,我又出了一个圣诞主题的课程.圣诞主题是基于HTML5+CSS+JS编写与实现的,同时也是七夕主题的故事延续.圣诞主题依旧延续着七夕主题设计的思路,引入了3个经典的场景页面,在每个场景中表述 ...