11、Hive核心概念与架构
1、 Hive核心概念和架构原理
1.1、 Hive概念
Hive由FaceBook开发,用于解决海量结构化日志的数据统计。
Hive是基于Hadoop的数据仓库工具,可以将结构化数据映射为一张表,提供类似SQL语句查询功能
本质:将Hive SQL转化成MapReduce程序。
1.2、Hive与数据库的区别
读时模式:Hive在加载数据到表中的时候不会校验.
写时模式:Mysql数据库插入数据到表的时候会进行校验.
总结:Hive只适合用来做海量离线的数据统计分析,也就是数据仓库。
1.3、Hive的优缺点
优点:操作接口采用了类SQL语法,提供快速开发的能力,避免了去写MapReduce;Hive还支持用户自定义函数,用户可以根据自己的需求实现自己的函数。
缺点:Hive不支持纪录级别的增删改操作;Hive查询延迟很严重;Hive不支持事务。
1.4、Hive架构原理
(1)用户接口:CLI(hive shell);JDBC(java访问Hive);WEBUI(浏览器访问Hive)
(2)元数据:MetaStore
元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段,标的类型(表是否为外部表)、表的数据所在目录。这是数据默认存储在Hive自带的derby数据库中,推荐使用MySQL数据库存储MetaStore。
(3)Hadoop集群:
使用HDFS进行存储数据,使用MapReduce进行计算。
(4)Driver:驱动器
解析器(SQL Parser):将SQL字符串换成抽象语法树AST,对AST进行语法分析,像是表是否存在、字段是否存在、SQL语义是否有误。
编译器(Physical Plan):将AST编译成逻辑执行计划。
优化器(Query Optimizer):将逻辑计划进行优化。
执行器(Execution):把执行计划转换成可以运行的物理计划。对于Hive来说默认就是Mapreduce任务。
通过Hive对数据进行数据分析过程:
2、 Hive交互方式
需要先启动hadoop集群和MySQL服务
2.1、Hive交互shell
cd /opt/bigdata2.7/hive (hive的安装路径,根据自己实际情况改变)
bin/hive
相关文章