1. 程式人生 > >大資料學習之路-phoenix

大資料學習之路-phoenix

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