我是 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/