Hive技术架构
一、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技术架构的更多相关文章
- 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构) (转)
转自:http://blog.csdn.net/v_july_v/article/details/6704077 从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到 ...
- 深入浅出Hive企业级架构优化、Hive Sql优化、压缩和分布式缓存(企业Hadoop应用核心产品)
一.本课程是怎么样的一门课程(全面介绍) 1.1.课程的背景 作为企业Hadoop应用的核心产品,Hive承载着FaceBook.淘宝等大佬 95%以上的离线统计,很多企业里的离线统 ...
- 从Hadoop骨架MapReduce在海量数据处理模式(包括淘宝技术架构)
从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,认为它们非常是神奇.而神奇的东西常能勾 ...
- 宜人贷PaaS数据服务平台Genie:技术架构及功能
上篇:架构及组件 一.数据平台的发展 1.1 背景介绍 随着数据时代的到来,数据量和数据复杂度的增加推动了数据工程领域的快速发展.为了满足各类数据获取/计算等需求,业内涌现出了诸多解决方案.但大部分方 ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
- Worktile 技术架构概要
其实早就该写这篇博客了,一直说忙于工作没有时间,其实时间挤挤总会有的,可能就是因为懒吧!从2013年11月一直拖到现在,今天就简单谈谈 Worktile 的技术架构吧 . Worktile 自上线到现 ...
- 聚光灯下的熊猫TV技术架构演进
2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...
- eaby技术架构变迁
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 最近在infoq上面看到 ebay介绍其系统架构变迁以及系统设计分享方面的讲座,其中 ...
随机推荐
- PowerDesigner-VBSrcipt-自动设置主键,外键名等(SQL Server)
在PowerDesigner中的设计SQL Server 数据表时,要求通过vbScript脚本实现下面的功能: 主键:pk_TableName 外键:fk_TableName_ForeignKeyC ...
- Java 堆内存与栈内存异同(Java Heap Memory vs Stack Memory Difference)
--reference Java Heap Memory vs Stack Memory Difference 在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有 ...
- css知多少之绝对定位小记
一.position定位常见属性 对于属性position来说,属性值有static/relative/absolute/fixed/inherit以下只对绝对定位position:absolute详 ...
- Android SDK 与API版本对应关系
Android SDK版本号 与 API Level 对应关系如下表: Code name Version API level (no code name) 1.0 API level 1 ( ...
- Linux模块编程框架
Linux是单内核系统,可通用计算平台的外围设备是频繁变化的,不可能将所有的(包括将来即将出现的)设备的驱动程序都一次性编译进内核,为了解决这个问题,Linux提出了可加载内核模块(Loadable ...
- linux yum命令详解
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- ASP.NET 5 和Entity Framework 7公告仓库
ASP.NET 5 有一个公告仓库来介绍ASP.NET 5和 Entity Framework 7的主要变更说明,这个对于日夜更新的项目来说,很多人经常会遇到问题但是不知道去哪里寻找帮助,很多同学在做 ...
- MyBatis1:MyBatis入门
MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...
- Top Coder算法题目浏览器
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/top-code-offline-browser/ 关于 左耳朵耗子 ...