• 1. CDH4.1实战系列 讲师:Cloudy(北风网版权所有)10、Hive工作原理和基本使用
  • 2. 上节课补充Jps命令
  • 3. Hive体系结构
  • 4. Hive体系结构•用户接口,包括 CLI(hive shell),JDBC/ODBC,WebUI •元数据存储,通常是存储在关系数据库如 mysql, derby 中 •解释器、编译器、优化器、执行器 •Hadoop:用 HDFS 进行存储,利用 MapReduce 进行计算 组件的基本功能 •用户接口主要有三个:CLI,JDBC/ODBC和 WebUI •CLI,即hive Shell命令行 •JDBC/ODBC 是 Hive 的JAVA,与使用传统数据库JDBC的方式类似 •WebGUI是通过浏览器访问 Hive
  • 5. Hive体系结构•Hive 将元数据存储在数据库中,如mysql、derby等 元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等 •解释器、编译器、优化器完成 HQL(hive的sql) 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行 •Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务)
  • 6. Metastore元数据•Metastore Hive表的元数据信息 •Metastore包含如下的部分: •Database 是表(table)的名字空间。默认的数据库(database)名为‘default’ •Table 表(table)的原数据包含信息有:列(list of columns)和它们的类型(types),拥有者(owner),存储空间(storage)信息 •Partition 每个分区(partition)都有自己的列(columns)
  • 7. Compiler•Driver调用编译器(compiler)处理HiveQL字串,这些字串可能是一条DDL、DML或查询语句 •编译器将字符串转化为策略(plan) •策略仅由元数据操作和HDFS操作组成,元数据操作只包含DDL语句,HDFS操作只包含LOAD语句 •对插入和查询而言,策略由map-reduce任务中的具有方向的非循环图(directedacyclic graph,DAG)组成
  • 8. Hive运行模式 •Hive的运行模式即任务的执行环境 •分为本地与分布式两种 •我们可以通过mapred.job.tracker 来指明 •设置方式 •hive > SET mapred.job.tracker=local ;
  • 9. 欢迎访问我们的官方网站 www.ibeifeng.com