从 HBase 中的 HDFS 导入表
Posted
技术标签:
【中文标题】从 HBase 中的 HDFS 导入表【英文标题】:Import table from HDFS in HBase 【发布时间】:2015-11-09 15:38:17 【问题描述】:我在 pig 中创建了一个表并将其存储在 hdfs 中:
STORE mapping INTO 'hdfs://localhost:9000/hbase/data/default/mapping' USING PigStorage ('\t');
在 hdfs 上运行 ls 命令,我得到了表:
bin/hdfs dfs -ls /hbase/data/default
Found 1 item
drwxr-xr-x - hfu supergroup 0 2015-11-09 13:33 /hbase/data/default/mapping
但是在 HBase shell 中运行 list 命令时,表格没有出现。
我正在使用:
hbase-0.98.0-hadoop2
hadoop-2.6.1
pig-0.15.0
全部运行在一台虚拟机上
如何在 HBase 中导入表?
【问题讨论】:
【参考方案1】:首先使用 HBaseHCatStorageHandler 或直接从 HBase shell 在 HBase 中创建表。
CREATE TABLE meters (col1 STRING, col2 STRING) STORED BY 'org.apache.hcatalog.hbase.HBaseHCatStorageHandler' TBLPROPERTIES ( 'hbase.table.name' = 'meters', 'hbase.columns.mapping' = 'd:col2', 'hcat.hbase.output.bulkMode' = 'true' ) ;
col1- 将是 HBase 表的 Rowkey col2- 将是列族“d”下的列限定符
现在使用STORE
命令将数据加载到此表中。
【讨论】:
我从 HBase shell 创建了一个 HBase 表,然后我尝试将 pig 表中的数据存储到 HBase。但是猪shell中的store命令在连接zookeeper后停止:[main-SendThread(localhost:2181)] INFO org.apache.zookeeper.ClientCnxn - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x150ec3d937d000a, negotiated timeout = 90000
出现错误“无法存储”以上是关于从 HBase 中的 HDFS 导入表的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 hdfs 导入/导出 hbase 数据(hadoop 命令)
将数据从 hdfs 导入到 hbase 是不是会创建一个副本