• Hive 能做什么,与mapreduce 相比优势在哪里(相对于开发)
  • 为什么说Hive 是Hadoop 的数据仓库,从【数据存储和分析】 方面理解
  • Hive 架构,分为三个部门来理解,画图理解

1.Hive 能做什么,与mapreduce 相比优势在哪里(相对于开发)

1.1.hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 相对于mapreduce 离线计算需要写很多java代码去实现数据提取,hive可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用开发程序,更适合数据仓库的统计分析。

2. 为什么说Hive 是Hadoop 的数据仓库,从【数据存储和分析】 方面理解

2.1. Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。**可以将SQL 查询转换为MapReduce 的job 在Hadoop集群上执行。**2.2 Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据.Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型:**表(Table),外部表(External Table),分区(Partition),桶(Bucket)。**2.3 Hive 中的 Table 和数据库中的 Table 在概念上是类似的,每一个 Table 在 Hive 中都有一个相应的目录存储数据。例如,一个表 pvs,它在 HDFS 中的路径为:/wh/pvs,其中,wh 是**在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的数据仓库的目录**,所有的 Table 数据(不包括 External Table)都保存在这个目录中。
Partition 对应于数据库中的 Partition 列的密集索引,但是 Hive 中 Partition 的组织方式和数据库中的很不相同。在 Hive 中,表中的一个 Partition 对应于表下的一个目录,**所有的 Partition 的数据都存储在对应的目录中**。例如:pvs 表中包含 ds 和 city 两个 Partition,则对应于 ds = 20090801, ctry = US 的 HDFS 子目录为:/wh/pvs/ds=20090801/ctry=US;对应于 ds = 20090801, ctry = CA 的 HDFS 子目录为;/wh/pvs/ds=20090801/ctry=CA
**Buckets 对指定列计算 hash,根据 hash 值切分数据,目的是为了并行,每一个 Bucket 对应一个文件。**将 user 列分散至 32 个 bucket,首先对 user 列的值计算 hash,对应 hash 值为 0 的 HDFS 目录为:/wh/pvs/ds=20090801/ctry=US/part-00000;hash 值为 20 的 HDFS 目录为:/wh/pvs/ds=20090801/ctry=US/part-00020

3.Hive 架构,分为三个部门来理解,画图理解

3.1 用户接口

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

3.2 元数据存储

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

3.3 解释器、编译器、优化器、执行器

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

转载于:https://blog.51cto.com/flyfish225/2096881

hive 的功能和架构相关推荐

  1. 一篇文章解读提速、降费黑科技:PCDN定义、功能、架构、场景和优势

    写在前面: CDN是目前广泛应用于视频云行业的内容分发加速网络,最近,基于P2P和CDN实现互补和融合的新技术PCDN在圈内蹿红.PCDN是在CDN内容分发加速网络之中引入P2P技术,通过这种模式在确 ...

  2. hadoop、hbase、hive、spark分布式系统架构原理

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 机器学习.数据挖掘等各种大数据处理都离不开各种开源分布式系统,hadoop用户分布式存储和map-reduce计算,spark用于分布式机器学习,hi ...

  3. centos7下搭建hadoop、hbase、hive、spark分布式系统架构

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 如果想了解架构原理,可以参考:https://blog.csdn.net/luanpeng825485697/article/details/8031 ...

  4. Hue概述,核心功能,架构说明

    Hue简单介绍 HUE=Hadoop User Experience 个人理解:可视图的webui界面,方便大数据技术之间的CRUD操作. 官方定义:Hue是一个能够与Apache Hadoop交互的 ...

  5. Linux内核功能及架构

    简介   Linux内核的作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址.Linux进程采用层次结构,每个进程都依赖于一个父进程.内核启动 init 程序作为第 ...

  6. 【.NET Core项目实战-统一认证平台】第一章 功能及架构分析

    从本文开始,我们正式进入项目研发阶段,首先我们分析下统一认证平台应该具备哪些功能性需求和非功能性需求,在梳理完这些需求后,设计好系统采用的架构来满足已有的需求和未来的扩展应用. 1 功能性需求 统一认 ...

  7. KDB支持单步调试功能(ARM架构)

    0    实践发现KDB不支持step调试功能 (本文针对的是arm CotexA9架构,各种架构的实现方式不一样,    X86的好像已经支持,不过本人没有验证过) 1    首先看下要调试的代码段 ...

  8. 汽车SoC全生命周期功能+网络安全架构设计

    随着汽车电子产业的快速发展,供应链中复杂的SoC设计,硅片生命周期管理(SLM)以及芯片现场监控和管理面临新的挑战. 要确保这些复杂设备正确和安全的运行,不仅需要功能安全来检查由于硅缺陷和老化导致的可 ...

  9. BSN IPFS(星际文件系统)专网简介、功能、架构及特性、接入说明

    当今,随着信息技术.互联网的日益发达,人类的交流与协作方式已发生了颠覆性的变革.无论是数字,还是文字.图片.音乐.视频,都能从网上获得,点点手指就能掌握这一切.信息技术.互联网极大便捷了我们的生产.生 ...

  10. 区块链数字资产交易所包含的功能与架构

    本文介绍一下成熟的交易所包含的功能 现货交易系统 功能成熟.应用广泛.强大的内存撮合引擎保证高并发量交易:完善的前后台系统,提供配套中心化钱包:系统安全稳定,可保障平台和用户双方的隐私安全.系统安全和 ...

最新文章

  1. 单网卡Squid AS4 U5 设置
  2. elementui树形复选框_Element-ui表格树形控件结合复选框实践
  3. SQL15 查看学校名称中含北京的用户(通配符使用)
  4. 作者:罗威,男,中国国防科技信息中心副研究员。
  5. 干货:资深架构师教你一篇文看懂Hadoop
  6. 8.9. 最大连续子段和,以及循环最大连续子段和。
  7. 安装php服务图解,图文详解安装PHP运行环境
  8. SCM供应链管理系统有源码可以共享一下吗?
  9. VB text控件如何实现换行
  10. EDA技术及应用实验2 h_adder程序
  11. python项目实战:免费下载kugou任意付费音乐
  12. 斗鱼实时计算平台的演进
  13. 解决方案:yarn 出现error An unexpected error occurred错误的解决办法
  14. Oracle建表语句及日期处理(oracle)
  15. 物联网驱动数字化转型
  16. 区域经济发展的扬州创新:融合工业化与信息化
  17. java 机器人捡豆子,【小孩老是注意力不集中】_小儿_怎么办-大众养生网
  18. H3C基础配置学习笔记1-端口配置
  19. 出错信息:Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column 'username'
  20. 为什么计算机专业毕业生还要参加IT培训?

热门文章

  1. gitserver提交代码的总结
  2. Bootstrap页面布局4 - 嵌套布局
  3. JS等比例缩小图片尺寸
  4. 【QT学习】搭建环境+hello world
  5. js将数值格式化成金额形式
  6. Asp.net页面之间传“大量的参数”
  7. HDU 4746 Mophues(莫比乌斯反演)题解
  8. 2019牛客多校第一场I Points Division(DP)题解
  9. 声源测向: TDOA-GCC-PATH方法
  10. BZOJ3757: 苹果树【树上莫队】