网站建设优化一年赚几十万,江西宣传片制作公司,北京专业做网站公司,深圳品牌衣服店名称HIve介绍
Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具#xff0c;可以用来进行数据提取转化加载#xff0c;可以简称为ETL。 Hive 定义了简单的类SQL查询语言#xff0c;称为HQL#xff0c;它允许熟悉SQL的用户直接查询Hadoop中的数据#xf…HIve介绍
Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具可以用来进行数据提取转化加载可以简称为ETL。 Hive 定义了简单的类SQL查询语言称为HQL它允许熟悉SQL的用户直接查询Hadoop中的数据同时这个语言也允许熟悉MapReduce的开发者开发自定义的mapreduce任务来处理内建的SQL函数无法完成的复杂的分析任务。 Hive中包含的有SQL解析引擎它会将SQL语句转译成M/R Job,然后在Hadoop中执行。Hive可以通过sql查询Hadoop中的数据并且sql底层也会转化成mapreduce任务所以hive是基于hadoop的。
Hive的数据存储
Hive的数据存储基于Hadoop的 HDFS Hive没有专门的数据存储格式 Hive默认可以直接加载文本文件TextFile还支持SequenceFile、RCFile等文件格式 针对普通文本数据我们在创建表时只需要指定数据的列分隔符与行分隔符Hive即可解析里面的数据。
Hive的系统架构 1用户接口包括 CLI、JDBC/ODBC、WebGUI CLI即Shell命令行表示我们可以通过shell命令行操作Hive JDBC/ODBC 是 Hive 的Java操作方式与使用传统数据库JDBC的方式类似
2元数据存储(Metastore)注意这里的存储是名词Metastore表示是一个存储系统 Hive中的元数据包括表的相关信息Hive会将这些元数据存储在Metastore中目前Metastore只支 持 mysql、derby。
3Driver包含编译器、优化器、执行器 编译器、优化器、执行器可以完成 Hive的 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划最终存储在 HDFS 中并在随后由 MapReduce 调用执行
4HadoopHive会使用 HDFS 进行存储利用 MapReduce 进行计算 Hive 的数据存储在 HDFS 中大部分的查询由 MapReduce 完成特例 select * from table 不会生 成 MapRedcue 任务如果在SQL语句后面再增加where过滤条件就会生成MapReduce任务了。
注意Hive2开始其实官方就不建议默认使用MapReduce引擎了而是建议 使用Tez引擎或者是Spark引擎不过目前一直到最新的3.x版本中mapreduce还是默认的执行引擎
Metastore元数据存储
Metastore是Hive元数据的集中存放地。 Hive 中的元数据包括表的名字表的列和分区及其属性表的属性是否为外部表等表的数据所在的hdfs目录等 Metastore默认使用内嵌的derby数据库 Derby数据库的缺点在同一个目录下一次只能打开一个会话 使用derby存储方式时Hive会在当前目录生成一个derby.log文件和一个metastore_db目录 metastore_db里面会存储具体的元数据信息