From 7a54b5f41f8317069107cb6e92cbeaeb1b341967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com> Date: Fri, 15 Mar 2019 17:49:13 +0800 Subject: [PATCH] add hive note --- notes/Hive.md | 64 ++++++++++++++++++++++++++++++++++ pictures/hive体系架构.png | Bin 0 -> 45276 bytes 2 files changed, 64 insertions(+) create mode 100644 notes/Hive.md create mode 100644 pictures/hive体系架构.png diff --git a/notes/Hive.md b/notes/Hive.md new file mode 100644 index 0000000..33687f0 --- /dev/null +++ b/notes/Hive.md @@ -0,0 +1,64 @@ +# 数据仓库——Hive + + + + + + +## 一、简介 + +Hive构建在Hadoop之上的,可以将结构化的数据文件映射成表,并提供类SQL查询功能,分析查询SQL语句被转化为MapReduce任务在Hadoop框架中运行。 + +**特点**: + +1. 简单、容易上手(提供了类似sql查询语言hql),使得精通sql 但是不了解 Java 编程的人也能很好的进行大数据分析; + +2. 其执行延迟高,不适合做实时数据的处理,但其适合做海量数据的离线处理; +3. 灵活性高,可以自定义用户函数(UDF)和自定义存储格式; +4. 为超大的数据集设计的计算/存储扩展能力(基于Hadoop,MR计算,HDFS存储),集群扩展容易; +5. 统一的元数据管理(可与presto/impala/sparksql等共享数据,详见下文)。 + + + +## 二、Hive的体系架构 + +
+ +### 2.1 command-line shell & thrift/jdbc + +我们可以用command-line shell和thrift/jdbc两种方式来操作数据:可以通过hive脚本的方式来操作,也可以通过服务器,通过thrift协议按照编译jdbc的方式就能够完成对hive里面的数据进行相应的操作。 + +### 2.2 Metastore + +hive里的表名、表结构、字段名、字段类型、表的分隔符等信息就叫做元数据。Metastore是用来存储Hive的元数据,默认元数据是存储在derby关系型数据库中,但是derby是能同时只有一个实例,也就是说不能多个命令行接口同时使用,所以可以替换mysql等。 + +这里还需要说明的是hive进行的是同一的元数据管理,就是说你在hive上创建了一张表,然后在presto/impala/sparksql 都是可以直接使用的,同样的你在presto/impala/sparksql中创建一张表,在hive中也是可以使用的。 + +### 2.3 执行流程 + +1. 客户端提交的sql后首先会通过Driver,然后通过SQL Parser进行sql解析,首先把语句解析成***抽象语法树***之后才能转换成***逻辑性执行计划***; +2. 接着查询优化工具Query Optimizer对我们***逻辑性执行计划***进行优化,最终再生成***物理性执行计划***(physical plan); +3. 在物理性执行计划中还包括序列化和反序列化(SerDes),用户自定义函数(User Defined Functions,UTFs); +4. 把最终的物理执行计划生成***执行引擎***(Execution)提交到mapreduce上去执行; +5. mapreduce的执行肯定有输入和输出,那么这个输入输出可以是hadoop文件系统上的(Hadoop Storage)比如hdfs,hbase包括本地的文件也都是可以的。 + + + +## 三、Hive环境搭建 + + + + + +## 参考资料 + +1. [Hive Getting Started](https://cwiki.apache.org/confluence/display/Hive/GettingStarted) +2. [Hive - 建立在Hadoop架构之上的数据仓库](https://zhuanlan.zhihu.com/p/29209577) + diff --git a/pictures/hive体系架构.png b/pictures/hive体系架构.png new file mode 100644 index 0000000000000000000000000000000000000000..c26e9c646e4e2f2f967de0074612d81b7f071b2c GIT binary patch literal 45276 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 Ns3>bFl_{78{U4YWF~0x+ literal 0 HcmV?d00001