我想了解一下我在工作区经常听到的一种方法的优缺点。
Spark在将数据写入Hive表(InsertInto)时,会出现以下情况。
现在,我看到人们在抱怨上述2步方法很耗时,因此求助于
1) Write files directly to HDFS
2) Refresh metastore for Hive
而且我看到人们报告说用这种方法有很多改进。
但不知为何,我还不相信这是安全正确的方法,这不是对Automiticy的权衡吗?(要么全表写,要么不写)
如果正在向HDFS写入文件的执行器崩溃了怎么办?我没看到有什么办法可以完全恢复写了一半的文件。
我也觉得如果是正确的方法,Spark应该会这么做吧?
我的问题有道理吗?你觉得上面的方法有什么好的地方吗?请大家评论一下。
这不是100%正确的,因为在hive v3中,为了不破坏新的事务机,你只能用hive驱动访问hive数据。
即使你使用的是hive2,你至少应该记住,你将无法直接访问数据,只要你升级。