请问spark和hive是什么关系?
关注者
72被浏览
274,993登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏
这两种说法都没错,尝试这么理解:
- HDFS上的数据其实都是文件,没有良好的组织形式。
- Hive将这些数据规整起来,让用户可以以结构化数据库的角度去使用这些数据(建立了HDFS数据的元数据信息),在Hive上写HQL操作表翻译成了MapReduce去读HDFS的数据进行计算。
由此用户操作HIve的时候就和操作一个MySQL数据库一样没什么差别。所以即可以说Hive是一个计算引擎,也可以理解为一个数据(仓)库。
既然他是一个数据库,而Spark天然支持各种数据源的加载和运算,读Hive的数据和读MySQL的数据这个操作本身对用户来说并没有什么差别。
所以Hive可以作为一种数据源在系统中存在,Spark、Flink、Java程序都可以连接访问,只是它还自带了执行引擎HQL。