
一、概述
(資料圖)
1、HBase基礎上架構的SQL中間件,使得可以通過SQL/JDBC來操作HBase
二、安裝
1、上傳/下載Phoenix安裝包到linux服務器并解壓,這臺linux服務器最好是Hbase Master節點。所以,如果是Hbase集群,則不需要在全部的服務節點上來安裝Phoenix,只需要在HMaster節點上安裝即可
2、將Phoneix安裝目錄下的兩個jar包,拷貝到Hbase安裝目錄下的lib目錄
cp phoenix-4.8.1-HBase-0.98-server.jar /home/software/hbase/lib
cp phoenix-4.8.1-HBase-0.98-client.jar /home/software/hbase/lib
3、在 etc/profile文件中配置Hbase的目錄路徑
export HBASE_HOME=/home/software/hbase
export PATH=$PATH:$HBASE_HOME/bin
4、重新生效,source /etc/profile
5、啟動Hadoop、ZK、HBase集群
6、進入Phoenix安裝目錄的bin目錄
7、執行:./sqlline.py hadoop01,hadoop02,hadoop03:2181
如上圖所以,證明Phoenix安裝成功
此外,此時進入hbase,執行list查看,會發現多出如下的表:
8、如果需要kill掉Phoenix進程,則執行: pstree -p
查看 py進程,殺掉Sqlline的父進程
Phoenix使用
1、創建表:
?create table tab1(id integer primary key,name varchar);
注:
①Phoenix建表必須有聲明主鍵,否則報錯
②Phoenix建表的表名,在hbase里的表名是大寫的,此外,列名也是大寫的。
③這條建表語句,并未聲明表的列族,則默認就一個列族,且列族的名字為:0。
④在列族0中,除主鍵列外,其余的列都屬于0列族里的列
2、查看所有表:
tables
3、插入數據:
upsert into tab1 values(1,"hello");
注:字符串類型用 " "包起來,不要用“ ”,否則報錯。
4、查詢數據:
select * from tab1;
5、刪除數據:
delete from tab1 where id=2;
6、刪除表:
drop table tab1;
7、創建小寫的表名:
create table "tab2" (id integer primary key,name varchar);
create table "tab2" ("id" integer primary key,"name" varchar);
select * from "tab2";
注:CRUD都以 "tab2"為表名來操作
8、自定義列族名
create table tab3 (id integer primary key,info.name varchar,info.age integer);
upsert into tab3 values(1,"tom",23);
然后在hbase里查看會發現:describe "TAB3"
scan "TAB3"