Spark + 写入Hive表+变通措施

问题描述 投票:0回答:1

我想了解一下我在工作区经常听到的一种方法的优缺点。

Spark在将数据写入Hive表(InsertInto)时,会出现以下情况。

  1. 写到暂存文件夹
  2. 使用输出committer将数据移动到hive表中。

现在,我看到人们在抱怨上述2步方法很耗时,因此求助于

    1) Write files directly to HDFS

    2) Refresh metastore for Hive

而且我看到人们报告说用这种方法有很多改进。

但不知为何,我还不相信这是安全正确的方法,这不是对Automiticy的权衡吗?(要么全表写,要么不写)

如果正在向HDFS写入文件的执行器崩溃了怎么办?我没看到有什么办法可以完全恢复写了一半的文件。

我也觉得如果是正确的方法,Spark应该会这么做吧?

我的问题有道理吗?你觉得上面的方法有什么好的地方吗?请大家评论一下。

apache-spark hadoop hive apache-spark-sql hiveql
1个回答
0
投票

这不是100%正确的,因为在hive v3中,为了不破坏新的事务机,你只能用hive驱动访问hive数据。

即使你使用的是hive2,你至少应该记住,你将无法直接访问数据,只要你升级。

© www.soinside.com 2019 - 2024. All rights reserved.