Hadoop,Hbase - 列及对应值提取

标签 hadoop hbase

我是 hbase 的新手,我有一个查询,比如如何将列名及其相应的值单独从 hbase 提取到 excel/csv

我已经尝试过类似的可能场景

  • 写入导出整个数据hbase
  • shell 到我们的本地位置,但没有成功。

谁能给我一个解决方案

所以为了展示例子

cf:ABC timestamp=1234, value=qwer
cf:DEF timestamp=5678, value=9874
cf:GEH  timestamp=10254, value=11223344

如果这是我们的数据那么我们的最终结果应该是 ABC qwer

DEF 9874

GEH 11223344

最佳答案

如果您想将 HBase 数据导出到 csv,一种方法是使用 HBaseStorageHandler 创建与 HBase 表映射的 Hive EXTERNAL TABLE

首先,您必须确保 HBase 依赖项在 Hive 的类路径中可用。 存储句柄 hive-hbase-handler-x.y.z.jar,它必须与 HBase、Guava 和 ZooKeeper jar 一起在 Hive 客户端 auxpath 上可用。

假设您在 HBase 中有 abc 表,您必须将其映射到 hive 表。

您可以让 Hive 访问现有的 HBase 表,使用 CREATE EXTERNAL TABLE:

CREATE EXTERNAL TABLE hive_table(rowkey int, ABC string,DEF string,GEH string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:ABC,cf1:DEF,cf1:GEH")
TBLPROPERTIES("hbase.table.name" = "abc");

使用HBase shell验证数据

>scan "abc"

再次查询回hive

hive>  select * from hive_table limit 10;

现在您在 hive 外部表中有了数据,因此您可以将其导出到带有 , 分隔符的 csv 文件。

关于Hadoop,Hbase - 列及对应值提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50840812/

相关文章:

hadoop - Tableau、Hadoop 和 Birt

java - Java路径错误Hadoop

java - 有兴趣学习Hadoop框架

java - 是否可以/支持使用 Java 进行 Impala 查询?

indexing - HBase 使用主索引吗?

java - HBase:/hbase/meta-region-server 节点不存在

hadoop - 我可以自定义InputSplit以根据异常结束进行拆分

java - flink 文档中给出的代码无法编译

java - 添加 Jar 文件到 WEB-INF/lib

HBase - Scan.setBatch 如何影响 ResultScanner 的下一个迭代次数?