1.phoenix安裝
------------------
1.安裝phoenix
a)下載apache-phoenix-4.10.0-HBase-1.2-bin.tar.gz 下載網址:https://phoenix.apache.org/download.html
b)tar 解壓壓縮包
c)復制xxx-server.jar到hbase的lib目錄,並且分發 ,刪除以前的phoenixjar包。
d)重啟hbase
2.使用phoenix的命令行程序
$>/apps/phoenix-4.14.1-HBase-1.2/bin/sqlline.py master //啟動phoenix
$phoenix>!tables //查看表 這里面都是phoexi自己的系統表默認
$phoenix>!help //查看幫助
2.SQL Client安裝 phoenix圖形化界面
a)下載squirrel-sql-3.7.1-standard.jar 下載鏈接:http://squirrel-sql.sourceforge.net/
該文件是安裝文件,執行的安裝程序。
$>jar -jar squirrel-sql-3.7.1-standard.jar
$>下一步...
b)復制phoenix-4.10.0-HBase-1.2-client.jar到SQuerrel安裝目錄的lib下(c:\myprograms\squirrel)。
c)啟動SQuirrel(GUI)
定位安裝目錄->執行squirrel-sql.bat
d)打開GUI界面
d)在左側的邊欄選中"Drivers"選項卡,
點擊 "+" ->
Name: clc
ExampleURL : jdbc:phoenix:192.168.231.202
Driverclass : org.apache.phoenix.jdbc.PhoenixDriver
d)測試。
3.SQLLine客戶端操作
//建表
$jdbc:phoenix>create table IF NOT EXISTS test.Person (IDCardNum INTEGER not null primary key, Name varchar(20),Age INTEGER);
//插入數據 插入和更新的SQL關鍵字都是upsert
$jdbc:phoenix>UPSERT INTO test.PERSON(IDCardNum , Name,Age) VALUES (1,'tom',12);
//刪除數據
$jdbc:phoenix>delete from test.persion where idcardnum = 1 ;
//更新數據
$upsert into test.PERSON(IDCardNum , Name,Age) VALUES (1,'tom',12);
2.注意
2.1
Phoenix 無法自動識別 HBase 中原有的表,所以需要將 HBase 中已有的做映射,才能夠被 Phoenix 識別並操作。說白了就是要需要告訴 Phoenix 一聲 xx 表的 xx 列是主鍵,xx 列的數據類型。
2.2
如果你使用的是 Phoenix 4.10 及以上的版本,映射表過后可能會遇到查不出數據的情況
CREATE TABLE "test_table" ( "ROW" varchar primary key, "0"."name" varchar) column_encoded_bytes=0;
解決辦法:https://blog.csdn.net/Colton_Null/article/details/83387995
2.3
我們在Phoeix中建立的表都默認建立在HBase default名字空間中的
2.4
Phoenix查詢報錯總結以及解決辦法
https://www.jianshu.com/p/a3c24638b498
3.二級索引
https://www.cnblogs.com/haoxinyue/p/6724365.html
4.在Java項目中集成Phoenix
4.1在Java項目中實現Phoenix操作Hbase,maven引入Phoenix的依賴包:
<dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core</artifactId> <version>4.9.0-HBase-1.1</version> </dependency>
4.2但是引入這個包是不夠的,還需要另外引入一個依賴包phoenix-4.9.0-HBase-1.1-client.jar,這個依賴包可以在Phoenix文件中找到,也可以通過下載Phoenix源碼,自行編譯后導入,自此就可以通過java的JDBC訪問操作Hbase。
java測試的源碼如下:
public static void main(String args[]) { Connection connection = null; Statement statement = null; try { Class.forName("org.apache.phoenix.jdbc.PhoenixDriver"); connection = DriverManager.getConnection("jdbc:phoenix:master:2181","",""); statement = connection.createStatement(); statement.execute("upsert into yinxiang_note values (3, 'note of huhong')"); } catch (Exception e) { e.printStackTrace(); } finally { try { connection.close(); statement.close(); } catch (Exception e) { e.printStackTrace(); } } }
