spark hive区别
一:Hive本质是是什么
1:hive是分布式又是数据仓库,同时又是查询引擎,Spark SQL只是取代的HIVE的查询引擎这一部分,企业一般使用Hive+spark SQL进行开发
2:hive的主要工作
1> 把HQL翻译长map-reduce的代码,并且有可能产生很多mapreduce的job
2> 把生产的Mapreduce代码及相关资源打包成jar并发布到Hadoop的集群当中并进行运行
3:hive架构
4:hive默认情况下用derby存储元数据,所以在生产环境下一般会采用多用户的数据库进行元数据的存储,并可以读写分离和备份,一般使用主节点写,从节点读,一般使用mysql
5:hive数据仓库数据的具体存储
二:SparkSQL 和DataFrame
1:处理一切存储介质和各种格式的数据(可以扩展sparksql来读取更多类型的数据)
2:Spark SQL把数据仓库的计算速度推向了新的高度(Tungsten成熟之后会更厉害)
3:Spark SQL 推出的Dataframe可以让数据仓库直接使用机器学习,图计算等复杂算法
4:HIVE+Spark SQL+DataFrame:
i> Hive:负责廉价的数据仓库存储
ii>Spark Sql:负责高速的计算
iii> DataFrame:负责复杂的数据挖掘
三: DataFrame与RDD
1:DataFrame是一个分布式的table
2:RDD和DataFrame的根本差异
1.RDD是以Record为单位的,
2.DataFrame包含了每一个Record的Metadata信息,也就是说DataFrame的的优化是基于列的优化,RDD是基于行的优化