Hive程序设计.pdfVIP

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hive的原理与操作 Hive简介 Hive可以被认为是一种数据仓库,包括数据的存储以及查询 Hive包括一个高层语言的执行引擎,类似于SQL的执行 Hive建立在Hadoop的其它组成部分之上,包括Hive依赖于HDFS 进行数据保存,依赖于MapReduce完成查询操作 Hive最初的开发由Facebook推动,在Facebook内部每天会搜集 大量的数据,并需要在这些数据上进行大量分析 最初的分析是通过手工的python脚本形式进行 数据分析的数量十分巨大,在2006年每天需要分析数十个10 GB 左右的数据,在2007年增长到大约TB的量级,现在数据分析的数 量可能是这个数量的10倍 使用Hadoop进行数据分析 通过前面的课程知道,上述的分析任务可以通过Hadoop集群 进行,即可以通过Hadoop集群将任务分布到数百甚至上千个 节点中进行分析,通过并行执行锁定分析的时间 如果原始数据使用数据库形式的话,则需要进行数据的转换, 将数据存储到分布式文件系统HDFS中,然后通过 MapReduce程序进行分析 Hadoop通过MapReduce的并行化方式进行并行处理,能够 充分利用数目庞大的分析机器 但是,MapReduce是一个底层的编程接口,对于数据分析人 员来说,这个编程接口并不是十分友好,还需要进行大量的编 程以及调试工作 在Hadoop上加入数据分析的功能 显然,为了能够支持一个类似于SQL相关的数据查询语言, Hadoop还需要加入一些额外的模块才能够方便数据分析人员 的使用,这些额外的模块包括: • 数据查询语言本身的定义与构造,这是与终端用户进行交互的接 口,最简单的可以通过命令行接口的方式展开用户与系统的交互 • 构造数据查询语言的执行引擎,即将上述的查询语言进行编译, 并通过分布式的执行引擎完成查询,在Hive中,执行引擎会将查 询语言翻译为多个MapReduce的任务序列,交给MapReduce程 序去执行 • 数据查询语言本身需要定义一套数据组织的格式 Hive的组成模块(1 ) Hive的模块非常类似于传统的数据库的模块,下面是 Hive的必要组成模块以及对应的功能介绍 HiveQL :这是Hive的数据查询语言,与SQL非常类似。 Hive提供了这个数据查询语言与用户的接口,包括一个 shell的接口,可以进行用户的交互,以及网络接口与 JDBC接口。 JDBC接口可以用于编程,与传统的数据库编程类似, 使得程序可以直接使用Hive功能而无需更改 Driver: 执行的驱动,用以将各个组成部分形成一个有 机的执行系统,包括会话的处理,查询获取以及执行驱 动 Hive的组成模块(2 ) Compiler :Hive需要一个编译器,将HiveQL语言编译成中 间表示,包括对于HiveQL语言的分析,执行计划的生成以及 优化等工作 Execution Engine :执行引擎,在Driver的驱动下,具体完 成执行操作,包括MapReduce执行,或者HDFS操作,或者 元数据操作 Metastore :用以存储元数据:存储操作的数据对象的格式信 息,在HDFS中的存储位置的信息以及其他的用于数据转换的 信息SerDe等 Hive的系统结构 Hive的数据模型 每一个类似于数据库的系统都首先需要定义一个数据模型,然 后才是在这个数据模型之上的各种操作 Tables :Hive的数据模型由数据表组成 • 数据表中的列是有类型的(int, float, string, data, boolean ) • 也可以是复合的类型,如list: map (类似于JSON形式的数据) Partitions :数据表可以按照一定的规则进行划分Partition • 例如,通过日期的方式将数据表进行划分 Buckets :数据存储的桶 元数据存储:Metastore 在Hive中由一系列的数据表格组成一个名字空间,关于这个 名字空间的描述信息会保存在Metastore的空间中 元数据使用SQL的形式存储在传统的关系数据库中,因此可 以使用任意一种关系数据库,例如Derby(apache的关系数 据库实现) ,MySQL以及其他的多种关系数据库存储方法 数据的物理分布情况 Hive在HDFS中有固定的位置,通常被放置在HDFS的如下目 录中 /home/hive/warehouse 每个数据表被存放在warehouse的子目录中 • 数据划分Partition ,数据桶

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档