请问spark和hive是什么关系?

Hive Tables - Spark 2.4.3 Documentation 这个文章说spark可以把hive作为一个datasource Hiv…
关注者
72
被浏览
274,993
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

这两种说法都没错,尝试这么理解:

  • HDFS上的数据其实都是文件,没有良好的组织形式。
  • Hive将这些数据规整起来,让用户可以以结构化数据库的角度去使用这些数据(建立了HDFS数据的元数据信息),在Hive上写HQL操作表翻译成了MapReduce去读HDFS的数据进行计算。

由此用户操作HIve的时候就和操作一个MySQL数据库一样没什么差别。所以即可以说Hive是一个计算引擎,也可以理解为一个数据(仓)库。

既然他是一个数据库,而Spark天然支持各种数据源的加载和运算,读Hive的数据和读MySQL的数据这个操作本身对用户来说并没有什么差别。

所以Hive可以作为一种数据源在系统中存在,Spark、Flink、Java程序都可以连接访问,只是它还自带了执行引擎HQL。