diff --git a/README.md b/README.md index 7f16623..c71f98c 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,9 @@ 3. [集群资源管理器——YARN](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hadoop-YARN.md) ## 二、Hive + +1. [数据仓库——Hive](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hive.md) + ## 三、Spark ## 四、Flume ## 五、Oozie diff --git a/notes/Hive.md b/notes/Hive.md index 33687f0..5c696c0 100644 --- a/notes/Hive.md +++ b/notes/Hive.md @@ -39,14 +39,14 @@ Hive构建在Hadoop之上的,可以将结构化的数据文件映射成表, hive里的表名、表结构、字段名、字段类型、表的分隔符等信息就叫做元数据。Metastore是用来存储Hive的元数据,默认元数据是存储在derby关系型数据库中,但是derby是能同时只有一个实例,也就是说不能多个命令行接口同时使用,所以可以替换mysql等。 -这里还需要说明的是hive进行的是同一的元数据管理,就是说你在hive上创建了一张表,然后在presto/impala/sparksql 都是可以直接使用的,同样的你在presto/impala/sparksql中创建一张表,在hive中也是可以使用的。 +这里还需要说明的是hive进行的是同一的元数据管理,就是说你在hive上创建了一张表,然后在presto/impala/sparksql 中都是可以直接使用的,同样的你在presto/impala/sparksql中创建一张表,在hive中也是可以使用的。 ### 2.3 执行流程 -1. 客户端提交的sql后首先会通过Driver,然后通过SQL Parser进行sql解析,首先把语句解析成***抽象语法树***之后才能转换成***逻辑性执行计划***; -2. 接着查询优化工具Query Optimizer对我们***逻辑性执行计划***进行优化,最终再生成***物理性执行计划***(physical plan); +1. 客户端提交的sql后首先会通过Driver,然后通过SQL Parser进行sql解析,首先把语句解析成**抽象语法树**之后才能转换成**逻辑性执行计划**; +2. 接着查询优化工具Query Optimizer对我们**逻辑性执行计划**进行优化,最终再生成**物理性执行计划**(physical plan); 3. 在物理性执行计划中还包括序列化和反序列化(SerDes),用户自定义函数(User Defined Functions,UTFs); -4. 把最终的物理执行计划生成***执行引擎***(Execution)提交到mapreduce上去执行; +4. 把最终的物理执行计划生成**执行引擎**(Execution)提交到mapreduce上去执行; 5. mapreduce的执行肯定有输入和输出,那么这个输入输出可以是hadoop文件系统上的(Hadoop Storage)比如hdfs,hbase包括本地的文件也都是可以的。