大資料學習之路-phoenix
阿新 • • 發佈:2018-11-16
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(); } } }
5.好的博文推薦
5.1淺談Phoeix在HBase中的應用以及講解了效能測試,主要是將Phoenix和Hive、Impala作一個對比
https://www.cnblogs.com/ballwql/p/8371234.html
5.2從入門到精通
https://www.jianshu.com/p/91decdd7fc5d
5.3 Hbase匯入資料同時與phoenix實現同步對映
http://blog.sina.com.cn/s/blog_628cc2b70102x5lq.html
5.4圖文講解
https://www.cnblogs.com/xirongliu/p/4603246.html