hadoop - BigSQL-HBase 集成

标签 hadoop hbase bigsql

我是 BigSQL 的新手。我开始知道 HBase 可以与 BigSQL 集成。我曾尝试在创建 HBase 表之前和之后执行 BigSQL-HBase 创建命令,但我收到了下面提到的错误。

SQL1:

CREATE HBASE TABLE dbname.reviews_hive (
REVIEWID int,
PRODUCT int
)
COLUMN MAPPING
(
key MAPPED BY (REVIEWID),
summary:product MAPPED BY (PRODUCT)
);

(或)

SQL2:

CREATE HBASE TABLE dbname.reviews_hive (
REVIEWID int primary key not null,
PRODUCT int
)
COLUMN MAPPING
(
key MAPPED BY (REVIEWID),
summary:product MAPPED BY (PRODUCT)
);

Error: [State: 42601][Code: -104]: An unexpected token "key" was found following "(". Expected tokens may include: "".. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.68.61

谁能帮我解决这个问题?

提前谢谢你们。

最佳答案

我假设您使用的是 Big Insights 4.x。在 BigInsights 4 之前,Big SQL 的 SQL 接口(interface)仅在 BigSQL v1 中可用。

当我运行以下测试脚本(包括您的两个 CREATE HBASE TABLE 语句)时(我通过 jsqsh db2 命令行运行此示例),我得到这些结果:

\connect bigsql
drop table if exists stack.issue3;

create hbase table if not exists stack.issue3 (
f1 integer,
f2 integer,
f3 varchar(200),
f4 integer
)
column mapping(
    key mapped by (f1, f2),
    cf0:f3 mapped by (f3,f4)
    encoding delimited
    fields terminated by '\b'
)
default encoding binary
;

insert into stack.issue3 (f1,f2,f3,f4) values (0,0,'Detroit',0);
insert into stack.issue3 (f1,f2,f3,f4) values (1,1,'Mt. Pleasant',1);
insert into stack.issue3 (f1,f2,f3,f4) values (2,2,'Marysville',2);
insert into stack.issue3 (f1,f2,f3,f4) values (3,3,'St. Clair',3);
insert into stack.issue3 (f1,f2,f3,f4) values (4,4,'Port Huron',4);

select * from stack.issue3;

drop table if exists dbname.reviews_hive;
CREATE HBASE TABLE if not exists dbname.reviews_hive (
        REVIEWID int,
        PRODUCT int
)
COLUMN MAPPING (
key MAPPED BY (REVIEWID),
summary:product MAPPED BY (PRODUCT)
);

insert into dbname.reviews_hive(reviewid,product) values (0,0);
insert into dbname.reviews_hive(reviewid,product) values (1,1);
insert into dbname.reviews_hive(reviewid,product) values (2,2);
insert into dbname.reviews_hive(reviewid,product) values (3,3);

select * from dbname.reviews_hive;


drop table if exists dbname.reviews_hive1;
CREATE HBASE TABLE if not exists dbname.reviews_hive1 (
        REVIEWID int primary key not null,
        PRODUCT int
)
COLUMN MAPPING (
        key MAPPED BY (REVIEWID),
        summary:product MAPPED BY (PRODUCT)
);

insert into dbname.reviews_hive1(reviewid,product) values (-1,1);
insert into dbname.reviews_hive1(reviewid,product) values (-2,2);
insert into dbname.reviews_hive1(reviewid,product) values (-3,3);
insert into dbname.reviews_hive1(reviewid,product) values (-4,4);

select * from dbname.reviews_hive1;
\quit

我得到以下结果:

jsqsh --autoconnect --input-file=./t2.sql --output-file=t2.out
0 rows affected (total: 3.75s)
0 rows affected (total: 1.63s)
1 row affected (total: 0.29s)
1 row affected (total: 0.27s)
1 row affected (total: 0.15s)
1 row affected (total: 0.25s)
1 row affected (total: 0.26s)
5 rows in results(first row: 0.22s; total: 0.23s)
0 rows affected (total: 4.6s)
0 rows affected (total: 1.65s)
1 row affected (total: 0.29s)
1 row affected (total: 0.15s)
1 row affected (total: 0.25s)
1 row affected (total: 0.15s)
4 rows in results(first row: 0.18s; total: 0.18s)
0 rows affected (total: 3.70s)
0 rows affected (total: 1.66s)
1 row affected (total: 0.30s)
1 row affected (total: 0.26s)
1 row affected (total: 0.16s)
1 row affected (total: 0.15s)
4 rows in results(first row: 0.18s; total: 0.18s)

cat t2.out
+----+----+--------------+----+
| F1 | F2 | F3           | F4 |
+----+----+--------------+----+
|  0 |  0 | Detroit      |  0 |
|  1 |  1 | Mt. Pleasant |  1 |
|  2 |  2 | Marysville   |  2 |
|  3 |  3 | St. Clair    |  3 |
|  4 |  4 | Port Huron   |  4 |
+----+----+--------------+----+
+----------+---------+
| REVIEWID | PRODUCT |
+----------+---------+
|        0 |       0 |
|        1 |       1 |
|        2 |       2 |
|        3 |       3 |
+----------+---------+
+----------+---------+
| REVIEWID | PRODUCT |
+----------+---------+
|       -4 |       4 |
|       -3 |       3 |
|       -2 |       2 |
|       -1 |       1 |
+----------+---------+

关于hadoop - BigSQL-HBase 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34763180/

相关文章:

hadoop - 有向图中的 MapReduce 长度为 3 条路径

eclipse - Eclipse中使用Hadoop MapReduce报错

java - 无法在 habase 谷歌云中将存储的 python 整数返回到 java 中

java - 使用 spark 读取 hbase 表

hadoop - 用于Apache Hadoop Big SQL的Bluemix Analytics-如何访问日志以进行调试?

hadoop - 如何在长度大于VARCHAR(32k)的BIGSQL表中存储字符串数据

hadoop - 客户端机器上有哪些数据可用

java - Hadoop上下文中Java的内存问题

exception - 帮助 : org. apache.hadoop.hbase.MasterNotRunningException 12.34.56.78:60000