Phoenix提供以sql的形式读写HBase,以下是相关信息
Apache Phoenix 官方站点:https://phoenix.apache.org/
Phoenix支持的sql语句: https://phoenix.apache.org/language/index.html
Phoenix 支持的DataTypes:https://phoenix.apache.org/language/datatypes.html
Phoenix 支持的函数:https://phoenix.apache.org/language/functions.html
下载地址
https://mirrors.tuna.tsinghua.edu.cn/apache/phoenix/
或者
http://phoenix.apache.org/download.html
环境的HBase是2.1的,目前phoenix最高集成到了2.0版本,所以下载最高版本
wget https://mirrors.tuna.tsinghua.edu.cn/apache/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
之后
tar -zxvf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
cd apache-phoenix-5.0.0-HBase-2.0-bin/
将 phoenix-5.0.0-HBase-2.0-server.jar 和 phoenix-core-5.0.0-HBase-2.0.jar 放到所有regionserver的lib下,如果有jar的权限问题,则修改jar权限。最后重启HBase即可。
1.regionserver启动失败,出现
ClassNotFoundException: org.apache.htrace.Sampler
或者
ClassNotFoundException: org.apache.htrace.SpanReceiver
是因为没有相关的jar,这里可以通过maven去找到相关的jar
org.apache.htrace
htrace-core
3.1.0-incubating
compile
jar下载完成后,去maven仓库找到对应的jar,然后上传到所有regionserver的lib下,如果有jar的权限问题,则修改jar权限。
再重启HBase即可。
2.使用phoenix建表,指定压缩格式为snappy,建表语句如下:
CREATE TABLE IF NOT EXISTS testtabb(
T UNSIGNED_TINYINT,
DNO varchar not null,
RID varchar,
SID UNSIGNED_SMALLINT,
DS UNSIGNED_TINYINT,
PR varchar ,
CT varchar ,
DT bigint,
UNO varchar,
CONSTRAINT PK PRIMARY KEY (DNO)) SALT_BUCKETS=32, TTL=2592000, compression='snappy';
会报错!!!!! 可以去hmaster后台查看报错信息或者等很久,也会返回报错信息:
No enum constant org.apache.hadoop.hbase.io.compress.Compression.Algorithm.snappy
坑爹,查了好久,才发现,这里的snappy要大写。PS:在1.X版本,是可以小写的。这里我使用的是2.1.1版本的hbase
再 cd bin/
将其中的hbase-site.xml文件替换成集群的hbase-site.xml。
启动命令行
./sqlline.py zk1,zk2,zk3:2181