一、Hive 架构

下面是Hive的架构图。

Hive的体系结构可以分为以下几部分:

1、用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动 Client模式的时候,需要指出Hive Server所在节点,并且在该节点启动Hive Server。 WUI是通过浏览器访问Hive。

2、Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

3、解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。

4、Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成(包含*的查询,比如select * from tbl不会生成MapRedcue任务)。

二、元数据存储

Hive将元数据存储在RDBMS中,有三种模式可以连接到数据库:

1、元数据库内嵌模式:此模式连接到一个In-memory 的数据库Derby,一般用于Unit Test。

2、元数据库mysql模式:通过网络连接到一个数据库中,是最经常使用到的模式。

3、MetaStoreServe访问元数据库模式:用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。

对于数据存储,Hive没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。Hive中所有的数据都存储在HDFS中,存储结构主要包括数据库、文件、表和视图。Hive中包含以下数据模型:Table内部表,External Table外部表,Partition分区,Bucket桶。Hive默认可以直接加载文本文件,还支持sequence file 、RCFile。

4、三种模式汇总:

三、Hive 工作原理

Hive 工作原理如下图所示。

Hive构建在Hadoop之上

1、HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的

2、所有的数据都是存储在Hadoop中

3、查询计划被转化为MapReduce任务,在Hadoop中执行(有些查询没有MR任务,如:select * from table)

4、Hadoop和Hive都是用UTF-8编码的

Hive编译器的组成:

Hive编译流程如下

四、Hive安装和部署

1、解压缩 hive 安装包

2、安装并启动mysql

3、修改 mysql 密码

4、给root用户访问授权

5、建立链接,该命令在 hive 安装目录的 lib 目录下建立软链接,指向/usr/share/java/mysql-connector-java.jar

6、配置环境变量

生效环境变量

7、修改hadoop的配置文件core-site.xml

增加如下:

8、修改hive的配置文件hive-site.xml

增加如下:

注释:

hive.metastore.uris 中的“hadoop“含义为 metastore 所在的机器(启动metastore 的方法见下一节)

javax.jdo.option.ConnectionURL 中的“hadoop”为 mysql 安装机器的hostname

javax.jdo.option.ConnectionUserName 和javax.jdo.option.ConnectionPassword

分别为 mysql 的访问用户和密码

fs.defaultFS 为 HDFS 的 namenode 启动的机器地址

beeline.hs2.connection.user 和 beeline.hs2.connection.password 是 beeline 方式

访问的用户名和密码,可任意指定,但在 beeline 访问时要写入你指定的这个

(具体参考最后一部分)

9、启动hive metastore

10、启动 hiveserver2

11、hive 常见两种访问方式

hive

beeline

!connect jdbc:hive2://bigdata:10000/default bigdata bigdata

后记:

码完了。

汇总一下下:

一 Hive 架构

二 元数据存储

1、元数据库内嵌模式

2、元数据库mysql模式

3、MetaStoreServer访问元数据库模式

4、三种模式汇总

三 Hive工作原理

1、编译器/优化器/执行器

2、hive编译器工作流程

四 Hive安装和部署

1、解压缩 hive 安装包

2、安装并启动mysql

3、修改 mysql 密码

4、给root用户访问授权

5、建立mysql-connector-java.jar的链接

6、配置环境变量HIVE_HOME

7、修改hadoop的配置文件core-site.xml

8、修改hive的配置文件 hive-site.xml

9、启动hive metastore

10、启动 hiveserver2

11、hive 常见两种访问方式

Hive架构和工作原理相关推荐

  1. 原理c++_浅谈C/S和B/S架构的工作原理及优缺点

    C/S架构 一.C/S架构及其背景 C/S架构是一种比较早的软件架构,主要应用于局域网内.在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C/S架 ...

  2. CPU的内部架构和工作原理

    2019独角兽企业重金招聘Python工程师标准>>> 一直以来,总以为CPU内部真是如当年学习<计算机组成原理>时书上所介绍的那样,是各种逻辑门器件的组合.当看到纳米技 ...

  3. kubernetes的部署架构以及工作原理

    kubernetes 整体架构 Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统,所以整体的架构和borg很相似,整个架构有api server,control ...

  4. 三层架构学习的困难_浅谈C/S和B/S架构的工作原理及优缺点

    C/S架构 一.C/S架构及其背景 C/S架构是一种比较早的软件架构,主要应用于局域网内.在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C/S架 ...

  5. jetty架构及工作原理

    1. jetty 是什么 jetty是一个轻量级的servelt容器,是一个提供HHTP服务器.HTTP客户端和javax.servlet容器的开源项目. 2. 和tomcat比较 2.1 架构层面 ...

  6. 微服务架构及工作原理!

    在移动计算时代,应用程序开发人员应该能够快速部署操作并进行更改,而无需重新部署整个应用程序.结果,它导致了一种称为"微服务"的构建软件的新方法. 微服务是应用程序中独立的小部分,每 ...

  7. B/S架构的工作原理

    工作原理 直接上图..

  8. HDFS2.X架构及工作原理

    1 HDFS简介 1.1 Hadoop 2.0介绍 Hadoop是Apache的一个分布式系统基础架构,可以为海量数据提供存储和计算.Hadoop 2.0即第二代Hadoop系统,其框架最核心的设计是 ...

  9. Impala架构和工作原理

    1. Impala架构 Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具(实时SQL查询引擎Impala),Impala没有再使用缓慢的Hive+ ...

最新文章

  1. Sort_Buffer_Size 设置对服务器性能的影响
  2. paddlepaddle安装
  3. 用户操作计算机系统的基本工具是什么,在Windows支持下,用户操作计算机系统的基本工具是______。...
  4. VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题
  5. matlab高级图形设计实训上机答案,Matlab实验第一次实验答案[共8页]
  6. 负数比较大小_【教研活动】整体把握负数脉络 深度解读教材意图——鲤城区实验小学数学组单元整体教学系列研讨活动...
  7. mysql 事务 myisam,InnoDB和MyISAM的差别(mysql事务处理)
  8. html无损转换pdf,Pdf2html :高保真PDF至HTML转换
  9. 2017,互联网出海应该注意哪些问题?
  10. 为Autodesk Infrastructure Map Server(AIMS) Mobile Viewer创建自定义控件
  11. 频率波数域matlab,频率-波数域方法的发展及其在台阵数据分析中的应用
  12. Node.js:POST请求、文件上传
  13. 执行git命令出现 xcrun: error:
  14. [系统安全] 十五.Chrome密码保存功能渗透解析、Chrome蓝屏漏洞及音乐软件漏洞复现
  15. java p12证书,如何使用已安装的.p12 证书在 Mac OS X 上签名 jar?
  16. 跨语言词嵌入模型调研报告
  17. 史上最全linux内核配置详解
  18. mysql中rpl_MySQL半同步复制之rpl_semi_sync_master_wait_point
  19. 【随笔1】石榴红,依旧。
  20. 【Ubuntu疑难杂症】无法定位软件包?

热门文章

  1. 基于51单片机PM2.5空气质量检测仪设计(毕设)
  2. uniapp下载文件保存自定义目录
  3. 蓝桥杯比赛个人注意事项
  4. 陕西铨讯电子厂工程师_关注2020陕西中高级工程师职称评审安排
  5. 《地理信息系统导论》绪论 复习题
  6. 使用JavaPython爬取网页包括js文件,css文件和图片
  7. SQLServr 2008 R2安装教程 附带百度云下载地址
  8. nfs 安装教程 centos6
  9. 走进神秘的Google X实验室
  10. MYIE2拖拽搜索中文关键词google乱码的解决方法