- Hive产生背景
- Hive概述
- HIve体系架构
- Hive部署架构
- Hive和RDBMS区别
- Hive部署以及快速入门
- HIve DDL详解
- Hive DML详解
- MapReduce编程的不便性
- 传统RDBMS人员的需求
- 由Facebook开源,用于解决海量结构化日志的数据统计问题
- 构建在Hadoop之上的数据仓库(Hive的数据存放在HDFS之上,可以通过MapReduce计算,并且提交到YARN上运行)
- Hive提供的SQL查询语言:HQL
- 底层支持多种不同的执行引擎(MR / Tez / Spark)
为什么要使用Hive
- 简单,容易上手
- 为超大数据集设计的计算/扩展能力
- 统一的元数据管理 (Hive数据是存放在HDFS上,元数据信息是存放在MySQL中)
-
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
-
主要用于离线处理
- 下载
- 解压
- 添加HIVE_HOME到系统环境变量
- 修改配置 hive-env.sh hive-site.xml(元数据存储的地方)
- 拷贝MySQL驱动包到$HIVE_HOME/lib
- 前提是要安装一个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上的路径
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:数据覆盖,如果没有就是追加
网友评论