我创建了一个hbase和hive表来存储一些数据记录信息。我可以从命令行查询hbase和hive没有概率。
hbase:扫描MVLogger; //带回9k以上的记录 hive:从MVLogger中选择*; //带回9k以上的记录
我的hbase表定义是
'MVLogger', {NAME => 'dbLogData', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS true
=> '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65
536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
我的hive(外部)表定义是:
CREATE EXTERNAL TABLE `MVLogger`(
`rowid` int,
`ID` int,
`TableName` string,
`CreatedDate` string,
`RowData` string,
`ClientDB` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED BY
'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
'serialization.format'='1',
'hbase.columns.mapping'=':key,dbLogData:ID,dbLogData:TableName,dbLogData:CreatedDate,dbLogData:RowData,dbLogData:ClientDB')
TBLPROPERTIES (
'hbase.table.name'='MVLogger')
当我使用sqlline并查看钻取架构时,这就是我所看到的
0: jdbc:drill:zk=ip-*.compu> show schemas;
+-------------+
| SCHEMA_NAME |
+-------------+
| hive.default |
| dfs.default |
| dfs.root |
| dfs.tmp |
| cp.default |
| hbase |
| sys |
| INFORMATION_SCHEMA |
+-------------+
当我使用[schema](除了sys之外的任何一个)然后做一个show table我什么都没得到......例如
0: jdbc:drill:zk=ip-*.compu> use hbase;
+------------+------------+
| ok | summary |
+------------+------------+
| true | Default schema changed to 'hbase' |
+------------+------------+
1 row selected (0.071 seconds)
0: jdbc:drill:zk=ip-*.compu> show tables;
+--------------+------------+
| TABLE_SCHEMA | TABLE_NAME |
+--------------+------------+
+--------------+------------+
No rows selected (0.37 seconds)
在Drill的存储选项下的Drill Web UI(ambari)中,我看到了启用的hbase和配置单元。配置单元存储的配置如下。
{
"type": "hive",
"enabled": true,
"configProps": {
"hive.metastore.uris": "thrift://ip-*.compute.internal:9083",
"hive.metastore.warehouse.dir": "/apps/hive/warehouse/",
"fs.default.name": "hdfs://ip-*.compute.internal:8020/",
"hive.metastore.sasl.enabled": "false"
}
}
为什么我无法查询hive / hbase的任何想法?
更新:该表现在显示在hive架构中,但是当我尝试使用简单的select * from来查询它时,它只是挂起而我无法在任何日志文件中找到任何内容。 hive表的实际数据存储是hbase BTW。
发现Hbase .98尚未与drill / hbase插件兼容... http://mail-archives.apache.org/mod_mbox/incubator-drill-user/201410.mbox/%3CCAKa9qDmN_fZ8V8W1JKW8HVX%3DNJNae7gR-UMcZC9QwKVNynQJkA%40mail.gmail.com%3E
答案 0 :(得分:-1)
可能为时已晚,但对于那些可能会看到帖子并遇到此问题的其他人来说。
0: jdbc:drill:zk=ip-*.compu> use hbase;
+------------+------------+
| ok | summary |
+------------+------------+
| true | Default schema changed to 'hbase' |
+------------+------------+
1 row selected (0.071 seconds)
0: jdbc:drill:zk=ip-*.compu> show tables;
+--------------+------------+
| TABLE_SCHEMA | TABLE_NAME |
+--------------+------------+
+--------------+------------+
No rows selected (0.37 seconds)
正在运行钻取的用户对hbase没有访问权限。在hbase上授予钻取用户访问权限,您将看到表格。
尝试使用钻取用户运行hbase shell并运行“list”它也将为空,直到您授予权限,然后您将看到表。