Phonenix是簡化hbase的sql的工具,在linux的指令行實作sql簡化
1.下載下傳phonenix(注意:需要下載下傳對應hbase的版本)
下載下傳位址http://mirrors.cnnic.cn/apache/phoenix/
下載下傳hbase相應的版本的phonenix
2.解壓
解壓相應的包 ,比如phoenix-4.6.0-HBase-0.98-bin.tar.gz
将解壓後的包裡的phoenix-core-4.6.0-HBase-0.98.jar拷貝到叢集各個節點HBase的lib目錄下,這裡的包看版本了,記住字首是phoenix-core的包,如果這裡有phonenix舊的包需要先删掉
将此包複制到其他兩(h16,h17)個hbase目錄下
#scp phoenix-core-4.6.0-HBase-0.98.jar root@h15:/home/hbase-0.98/lib/
#scp phoenix-core-4.6.0-HBase-0.98.jar root@h16:/home/hbase-0.98/lib/
#scp phoenix-core-4.6.0-HBase-0.98.jar root@h17:/home/hbase-0.98/lib/
3.重新開機叢集
在h15上重新開機hbase叢集
#sh stop-hbase.sh
#sh start-hbase.sh
4.啟動phonenix
進入到解壓好的phonenix目錄下執行指令:
# bin/sqlline.py h15:2181
這裡的master是zookeeper叢集的節點的hostname,不建議使用ip
如果端口是2181,端口也可以省略
進入如下界面,說明成功了
執行指令#!tables出現如下界面
5\在h15上建表
#CREATE TABLE my_table ( id INTEGER not null primary key desc, date DATE, m.db_utilization DECIMAL, i.db_utilization DECIMAL);
建立序列:create sequence t_seq;
插入資料:
#UPSERT INTO my_tableVALUES(1,'2015-09-10 12:23:00');
#UPSERT INTO my_table VALUES(3,'2015-09-10 12:23:00');
#UPSERT INTO my_table VALUES(4,'2015-09-10 12:23:00');
#UPSERT INTO my_table VALUES(5,'2015-09-10 12:23:00');
#UPSERT INTO my_table VALUES(6,'2015-09-10 12:23:00');
#UPSERT INTO my_table VALUES(7,'2015-09-10 12:23:00');
#UPSERT INTO my_table VALUES(8,'2015-09-10 12:23:00');
查詢資料
#select * from my_table order by id asc ;
插入資料:準備java測試
CREATE TABLE TMP_TRAVEL (ROWKEY VARCHAR PRIMARY KEY,INFO.SP VARCHAR,INFO.EP VARCHAR,INFO.ST VARCHAR,INFO.ET VARCHAR);
CREATE SEQUENCE SEQ;
CREATE TABLE TRAVEL (ROWKEY VARCHAR PRIMARY KEY,INFO.SP VARCHAR,INFO.EP VARCHAR,INFO.ST VARCHAR,INFO.ET VARCHAR,PAGEID BIGINT);
UPSERT INTO TRAVEL SELECT ROWKEY,SP,EP,ST,ET,NEXT VALUE FOR SEQ FROM TMP_TRAVEL;
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160201112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160202112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160203112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160204112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160205112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160206112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160207112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160208112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160209112343','北京','海澱區','20160203');
UPSERT INTO TMP_TRAVEL VALUES('16357298756_20160210112343','北京','海澱區','20160203');
如果都是正常,那麼通過!