数据仓库Hive

  • Hive产生背景
  • Hive概述
  • HIve体系架构
  • Hive部署架构
  • Hive和RDBMS区别
  • Hive部署以及快速入门
  • HIve DDL详解
  • Hive DML详解

  1. MapReduce编程的不便性
  2. 传统RDBMS人员的需求
  1. 由Facebook开源,用于解决海量结构化日志的数据统计问题
  2. 构建在Hadoop之上的数据仓库(Hive的数据存放在HDFS之上,可以通过MapReduce计算,并且提交到YARN上运行)
  3. Hive提供的SQL查询语言:HQL
  4. 底层支持多种不同的执行引擎(MR / Tez / Spark)

为什么要使用Hive

  1. 简单,容易上手
  2. 为超大数据集设计的计算/扩展能力
  3. 统一的元数据管理 (Hive数据是存放在HDFS上,元数据信息是存放在MySQL中)
image.png

  • image.png

Command-line shell: 命令行
Thrift/JDBC:server/client WebUI(HUE/Zeppelin 一组WEB应用,用于和MRS大数据组件进行交互)

MetaStore:元数据管理
----- database:name、location、owner
----- table:name、location、owner、column、name/type

Diver:


  • image.png

  • 主要用于离线处理

  1. 下载
  2. 解压
  3. 添加HIVE_HOME到系统环境变量
  4. 修改配置 hive-env.sh hive-site.xml(元数据存储的地方)
  5. 拷贝MySQL驱动包到$HIVE_HOME/lib
  6. 前提是要安装一个MySQL数据库

  • Hive Data Definition Laanguage
    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

HIve数据抽象/结构
database HDFS一个目录
===table HDFS一个目录
=====data 文件
=====partition 分区表
=========bucket 分桶

CREATE [REMOTE] (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
  [COMMENT database_comment]
  [LOCATION hdfs_path]
  [MANAGEDLOCATION hdfs_path]
  [WITH DBPROPERTIES (property_name=property_value, ...)];

/user/hive/warehouse是Hive默认的存储在HDFS上的路径


  • https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
 
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] [INPUTFORMAT 'inputformat' SERDE 'serde'] (3.0 or later)

LOACL: 本地系统,如果没有local就指的是HDFS路径
OVERWRITE:数据覆盖,如果没有就是追加

你可能感兴趣的:(数据仓库Hive)