HQL执行过程

MapReduce 的容错机制

  1. 重复执行 重复4次后失败
  2. 推测执行 保证不会因为某一两个tasktracker失败而影响整个计算

数据仓库是一个面向主题的,集成的,不可更新的,随时间不变化的数据集合,它用户支持企业或组织的决策分析处理

数据源:业务数据系统,文档系统,其他数据
数据存储及管理: 抽取(Extract),转换(Transform),装载(Load)
仓库引擎:服务器,
前端展示:数据查询,数据报表,数据分析,各类应用

OLTP应用 人机事物处理 银行转账
OLAP应用 人机分析处理 商品推荐系统

数据仓库中的数据模型:
星型模型

+----------------------+ +-----------------+
| | | |
| | | |
| 客户信息 | | 订单信息 |
| | | |
| | | |
+----------------------+ +-------+-----------------+
| |
| |
| |
+-----+-------------------+
| |
| |
| 商品信息 |
| |
| |
+-----------+--------------+----+
| | |
| | +--------+---------------------------+
| | | |
+----------------+ | | 物流信息 |
| | | | |
| 厂家信息 | | +---------------------------+
| | |
+----------------+ |
|
|
|
+-----+----------+
| |
| |
| 促销信息 |
| |
+----------------+

  • Hive 是建立在Hadoop HDFS上的数据仓库基础架构
  • Hive 可以用来进行数据提取转化加载(ETL)
  • Hive 定义了简单的类似SQL查询语言,称为HQL它允许数据SQL的用户查询数据
  • Hive 允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作
  • Hive 是SQL解析引擎,他将SQL语句专一成M/R Job然后再Hadoop执行
  • Hive 的表其实就是HDFS的目录/文件

  • Hive 元数据

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

HQL的执行过程

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

Hive 的安装

  • 嵌入模式
    • 元数据信息被存储在Hive自带的Derby数据库中
    • 值允许创建一个连接
    • 多用于Demo
  • 本地模式
    • 元数据信息被存储在MySQL数据库中
    • MySQL数据库与Hive运行在同一台物理机器上
    • 多用户与开发和测试
  • 远程模式
    • Hive和MySQL运行在不同的操作系统上