Hadoop,Hbase - 列和相应的值提取

时间:2018-06-13 15:18:35

标签: hadoop hbase

我是<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script> <link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet"/> <table id="register-data"class="display tablesorter" role="grid" aria-describedby="example_info" style="width: 100%;" cellspacing="0"> <thead> <tr> <th>ReleaseID</th> <th>ReleaseName</th> <th>DivisionID</th> <th>StatusID</th> <th>Edit</th> <th>Delete</th> </tr> </thead> <tbody> </tbody> </table>的新用户,我有一个查询,例如如何从hbasehbase单独提取列名及其对应值。

我尝试过像

这样的可能方案
  • 撰写导出整个数据excel/csv
  • shell到我们当地的位置,但它还没有工作。

有人可以给我一个解决方案

所以显示示例

hbase

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

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

2 个答案:

答案 0 :(得分:1)

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

首先,您必须确保Hive的类路径上有HBase依赖项。 存储句柄hive-hbase-handler-x.y.z.jar,必须在Hive客户端辅助路径上以及HBase,Guava和ZooKeeper jar中可用。

假设您在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>  select * from hive_table limit 10;

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

答案 1 :(得分:0)

hbase shell与get或scan一起使用,并将输出通过管道输出到sed命令以提取colunn名称和值。

但警告,HBase旨在存储数百万或可能数十亿行,因此将数据提取为csv格式不是一个正确的用例,除非您只需要检查rowkey XXX中存储的值。