hadoop - 检查 Hbase 表中是否存在键会影响后续的 get 调用

标签 hadoop hbase cloudera

我确定在下面的代码段中忽略了某些内容,但我不知道是什么。如前所述,如果我调用“exists”以快速检查表中是否存在键,则后续的“get”最终不会返回任何内容;然而,注释掉“存在”调用会使代码工作。但是,现在我必须在解析从 Hbase 获取的结果之前进行额外的检查,以确保它不为空/null。

...
final Get g = new Get(someKey);
g.setCacheBlocks(true);
g.setMaxVersions(1);
g.addColumn(colFamily, colName);


/* --- THIS DOES NOT WORK --- */
if (this.someHbaseTab.exists(g)) {
    final Result res = this.someHbaseTab.get(g);
    // res is empty!!!
}
// --- --- ---

/* --- THIS WORKS --- */
// No call to 'exists'
final Result res = this.someHbaseTab.get(g);
// Valid result
// --- --- ---
...

我正在运行 Cloudera CDH5。

最佳答案

您不必调用存在。只需检查 res.isEmpty()get() 之后称呼

关于hadoop - 检查 Hbase 表中是否存在键会影响后续的 get 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30341938/

相关文章:

postgresql - Hadoop 适合这个吗?

hadoop - HBase Shell给出loadError

hadoop - 使用mapreduce处理文件

Eclipse 在 Cloudera 快速启动 VM 中崩溃并出现计算错误

hadoop - 将文件从本地文件复制到hdfs时出现错误消息

hadoop - Streamsets Mapr FS 起点/终点。 KerberosPrincipal 异常(使用 hadoop 模拟(在 mapr 6.0 中))

hadoop - 如何在 Dataproc 集群启动时自动安装 Python 库?

python - 用于 HBase 支持的 Django 模型层

eclipse - 找不到MapReduce(Hadoop-2.6.0)+ HBase-1.0.1.1类异常

hadoop - HBase中的WAL文件