大数据开发之Hive应用分析
Hive架构
1.用户接口:Client
CLI(hive shell) JDBC(java访问hive) WEBUI(浏览器访问hive)
2.元数据(Metastore)-数据库
元数据包括:表名称、表所属的数据库、表的拥有者、列/分区字段名、表的类型(外部/内部)、表的数据所在的目录
默认存储在自带的derby的数据库中,推大数据培训荐使用Mysql来存储元数据
3.hadoop
hive使用HDFS进行数据的存储,使用MR进行数据的计算
4.驱动器:driver
包含:解析器 -> 优化器 -> 编译器 -> 执行器
Hive的优点和使用场景
1.简单易用(操作接口采用类SQL语法,提供快速开发的能力)
2.避免我们去写MR,减少开发人员的学习成本
3.统一的元数据管理,可与impala、spark等共享数据
4.易扩展
5.数据的离线处理:比如日志分析,海量结构化数据离线分析
6.Hive的执行延迟比较高,因此Hive常用于数据离线分析,适合实时性要求不高的场景
7.Hive优势在于处理大数据,对于处理小数据没有优势,因为hive的执行延迟性很高。
Hive常用的命令
; ; ; ; ( , , , ) ; ; ; ; () ; ; ; ; ; ; ; ,() ;
Hive常用的配置属性
1.Hive数据仓库位置配置:hive-default.xml
...
//赋权命令 $ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
2.Hive运行日志的配置:hive-log4j.properties
.. ...
3.Hive运行日志的级别:hive-log4j.properties
hive.root.logger=info,DRFA //可改为(DEBUG,DRFA)
4.在cli命令行上显示当前数据库名称,以及查询表的表头信息:hive-site.xml
... ....
5.在启动hive时设置配属属性项信息
: ...
要注意此种方式的设置,仅仅在当前会话session中有效,退出则失效。
6.查看hive当前所有的配置信息
; ...; ...;
修改配置信息优先级:
set -> --hiveconf -> hive-site.xml -> hive-defualt.xml
Hive shell常用的操作
bin/hive -help
: , . .. , . .. , , ( )
1. bin/hive -e "select * from db_hive.student" bin/hive -e "select count(1) from db_hive.student" 可直接执行查询语句
.
. .
Hive中数据库的操作方式
() [ ] [ ] [ ] [ (, )];
; ;
() [ ] []; ; ;
;
Hive中数据库表的创建方式(三种)
第一种:创建Textfile类型以“,”为分隔符的表
. ( ) ; : ( , ) ;
第二种:复制已有表或视图的结构
. : . .
第三种:复制已有表的结构和数据
. . .