我总共有10个节点。3个节点运行Zookeeper,其余7个节点运行HDFS和Hbase。而且Hbase已经存储了很多数据。我错误地初始化了Zookeeper节点的(I'm using Cloudera, by mistake clicked the Initialize Button)。我想知道这3个Zookeeper节点是否丢失了可能是Hbase mata数据的持久数据。或者说,Hbase将元数据存储在Hmaster中,而Zookeeper只存储一些内存数据。
我试图在现有的Hbase表上创建一个Hive表,如下所示:
create external table h2h (
key int -- int or string?
col1 string
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ('hbase.columns.mapping' = ':key,info:col1');
演示了key的几种数据类型。
如何确定列key的数据类型,该列映射到Hbase表中的
我有一个安装了HBase的小型开发集群。我的集群的磁盘使用量已经满了,所以我需要删除一些数据,但是我不能启动regionservers。它们会失败,并在日志中显示以下消息:
File /hbase/.logs/<some file> could only be replicated to 0 nodes, instead of 1
我猜是因为集群中没有剩余的空间了。
我想知道,我可以从HBase中安全地手动删除(通过hdfs)什么,而不会导致任何类型的元数据损坏?
hdfs中占用空间最多的区域是
/hbase/.logs
/hbase/mytable
如果我不再关心mytable中
我看到了一个存储HBase数据的外部Hive表:
CREATE EXTERNAL TABLE IF NOT EXISTS ods.demo_table(
rowkey String COMMENT 'rowkey of hbase',
....
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:...") TBLPROPER