使用获取/放置进行 HBBASE 更新/插入



谁能建议什么是满足我要求的最佳方法。

我有以下

  1. 一个 Hbase 表
  2. HDFS 中的输入文件

我的要求如下

  1. 读取输入文件并获取密钥。使用键从中获取数据赫巴斯。
  2. 做一个比较来检查。
  3. 如果比较失败,请插入
  4. 如果比较成功,请更新。

我知道我可以使用get来获取数据并将其写回。这是前进的最好方式吗?我希望我将使用 mapreduce,以便我可以让进程并行运行。

HBase 有一个 checkAndPut() 和一个 checkAndDelete() 操作,如果你有你期望的值,它允许你执行放置或删除(比较=NO_OP如果你不关心值,只关心键)。https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html

根据您的问题的大小,我实际上在这里推荐一种略有不同的方法。虽然在MapReduce作业中实现HBase放置可能是可行的,但这听起来像是一个相当复杂的任务。

我建议将数据从HBase加载到MapReduce中,连接两个表,然后将它们导出回HBase。使用Pig,这将很容易实现。看看Pig HBaseStorage。按照这条路线,您将加载两个文件,加入它们,然后写回 HBase。如果它的全部内容是比较键,这可以通过 5 行 PigLatin. 来实现。

相关内容

  • 没有找到相关文章

最新更新