数据分析框架Hive学习总结!

一hive本质
将Hql数据转化为MR程序进行数据分析的过程。

二hive与数据库的比较
1.hive没有索引而数据库有索引
2.hive有执行延迟(没有索引)而mysql相对执行速度较快
3.查询语言不完全相同,Hql是类Sql语言。
4.数据更新:hive不支持实时更新,主要是存数据然后进行分析,而数据库则支持实时数据更新
5.可扩展性,hive是基于hadoop的一种分析框架,所以hive也具有良好的扩展性。而数据库处理的数据量相对较少/
6.数据存储位置不同,hive的数据存储在HDFS,而数据库存在本地。

三数据类型
hive数据类型基本和java相似,然后特有的数据类型有: array,map,struct

四DDL数据定义
主要是建库建表语句(较简单)

伍DMlL数据操作
导入数据方式:
1load
2.insert into(overwrite)

六ETL数据清洗
写MR,打包到hive,运行(清洗数据),建表,导入数据

七企业优化
1.fetch抓取(不走MR)
2本地模式(用于测试)
3groupby(相当于combiner)
4.distinct去重 (多个ReduceTask执行任务)
5.严格模式(需要开启防止笛卡儿积产生)
6建立动态分区(关闭严格模式),以表格某个字段作为分区值,动态导入

八存储格式和压缩格式
存储: TextFile ,squenceTextFile,orc(企业存储格式),parquet
压缩:Bzip2,Gzip,LZO,snappy(企业压缩方式)

九控制数据倾斜
控制MapTask(设置MaxSize的值去决定切片值大小从而决定切片数)
控制ReduceTask个数(setjobReduces)

十JVM重用(企业优化)
根据你的业务量去设置JVM重用数,进而优化MR从而提升job运行效率。

猜你喜欢

转载自blog.csdn.net/qq_43151441/article/details/88877712