Hadoop 与工作台锁定相关的火花蜂巢嵌件

Hadoop 与工作台锁定相关的火花蜂巢嵌件,hadoop,apache-spark,hive,Hadoop,Apache Spark,Hive,只是一个简单的问题。我正在尝试使用1.6.0版本执行一个Spark程序,该版本利用配置单元表上的并发加载。在hiveContext.sql(“insert…”)中使用insert语句是一种方法,因为我希望在编写过程中确保表锁定,因为从Spark文档中看到,在使用数据帧保存操作时,表锁定和原子性不能得到保证 “保存操作可以选择采用保存模式,即 指定如何处理现有数据(如果存在)。重要的是 请认识到,这些保存模式不使用任何锁定,并且不可用 原子。此外,当执行覆盖时,数据将 在写入新数据之前删除。” 在

只是一个简单的问题。我正在尝试使用1.6.0版本执行一个Spark程序,该版本利用配置单元表上的并发加载。在
hiveContext.sql(“insert…”)
中使用
insert
语句是一种方法,因为我希望在编写过程中确保表锁定,因为从Spark文档中看到,在使用数据帧保存操作时,表锁定和原子性不能得到保证

“保存操作可以选择采用保存模式,即 指定如何处理现有数据(如果存在)。重要的是 请认识到,这些保存模式不使用任何锁定,并且不可用 原子。此外,当执行覆盖时,数据将 在写入新数据之前删除。”

在访问/插入指定配置单元表中的数据时,如何确保spark中配置单元表的原子性或锁定


任何建议都很有帮助。非常感谢。

解决方案取决于您需要原子写入的目的

最简单的可能性之一是使用分区外部表:

  • 在spark作业中,您不将数据帧写入表,而是写入HDFS目录
  • 写入完成后,您将向表中添加一个指向新目录的新分区

  • 好的,谢谢你的反馈。但是,由于spark完成的保存模式没有任何表锁定功能,如何确保表锁定发生?向外部表添加分区是原子的(当有人只看到插入数据的一部分时,将没有时间)