HBase查詢引擎—Phoenix


1. 簡介

Apache Phoenix,是由saleforce.com開源的一個項目,后又捐給了Apache基金會。它相當於一個Java中間件,提供jdbc連接,操作hbase數據表,Phoenix 使得Hbase 支持通過JDBC的方式進行訪問,並將你的SQL查詢轉換成Hbase的掃描和相應的動作。

地址:http://phoenix.apache.org/

兼容性:

  • Phoenix 2.x - HBase 0.94.x
  • Phoenix 3.x - HBase 0.94.x
  • Phoenix 4.x - HBase 0.98.1+

2. 安裝

hadoop2.5.1

hbase0.98.6.1

phoenix-4.4.0-HBase-0.98/

 

 

  • download and expand our installation tar
  • copy the phoenix jar into the HBase lib directory of every region server
  • restart the region servers
  • add the phoenix client jar to the classpath of your HBase client
  • download and setup SQuirrel as your SQL client so you can issue adhoc SQL against your HBase cluster

 

2.1下載

官網下載地址:http://www.apache.org/dyn/closer.cgi/phoenix/

2.2解壓

上傳到主節點指定目錄下解壓:

tar –zxvf phoenix-4.4.0-HBase-0.98-bin.tar.gz

2.3拷貝文件

將phoenix-4.4.0-HBase-0.98-server.jar拷貝到hbase集群的lib目錄下

重啟hbase集群,使其生效

2.4驗證

cd /usr/local/phoenix-4.4.0-HBase-0.98-bin/bin

./sqlline.py 192.168.0.177

success

3. 創建表和視圖

phoenix操作hbase,我們有兩種方式,創建表,創建視圖。

創建表的話,可讀可寫,就可以對HBase進行插入,查詢,刪除操作。

視圖的話,是只讀的,一般就只可以進行查詢操作

雖然看起來,表的功能,比視圖更強大一些。但是就像是mysql等關系型數據庫一樣,刪除表操作,會將表刪掉。但是刪除視圖操作,卻不會影響原始表的結構。

因為使用phoenix,創建表后,會自動和hbase建立關聯映射。當你使用phoenix刪除和hbase之間的關系時,就會將hbase中的表也刪掉了

所以如果只是用到查詢功能,只需要建立視圖就ok了。

創建表

create htablename(

    --這句話直接寫就可以了,這樣的話,HBase中的RowKey轉換成phoenix中的主鍵,列名就叫 pk。
    --rowkey自動會和primary key進行對應。
    pk VARCHAR primary key null,

    --將名為cf的columnFamily下,字段名為col1的字段,寫在這里。
    "cf"."col1" VARCHAR null,

    --將名為cf的columnFamily下,字段名為col2的字段,寫在這里。。。下面就以此類推
    "cf"."col2" VARCHAR null,
    "cf2"."col3" VARCHAR null,
    "cf2"."col4" VARCHAR null
)

 

創建hbase中已存在表的視圖

CREATE VIEW "login_log" ( pk VARCHAR PRIMARY KEY,"login"."usr" VARCHAR, "login"."timestamp" VARCHAR, "login"."ip" VARCHAR, "login"."province" VARCHAR, "login"."city" VARCHAR, "login"."district" VARCHAR, "login"."success" VARCHAR, "login"."type" VARCHAR)DEFAULT_COLUMN_FAMILY='login';


注意:phoenix區分大小寫

"login_log" 用雙引號是因為hbase中表名為login_log,為小寫,雙引號使創建的視圖為小寫,與hbase表對應。

如此處不加雙引號,則創建的視圖為LOGIN_LOG

字段也如此。

4. SQuirreL

第一步: 下載安裝SQuirreL SQL Client :    http://www.squirrelsql.org/ 

第二步:  拷貝phoenix-{version}-client.jar 和 phoenix-core-{version}.jar到SQuirreL 安裝目錄下的lib文件夾下,這兩個jar可以在phoenix的安裝目錄下找到。

第三步:  打開SQuirreL , 點擊Drivers,新建一個driver:

name : 可以自定義一個名稱

Example URL : 這個是為了讓你新建一個連接的時候作為提示用的

Java Class Path : 這個需要選中之前上傳的JAR

Class Name: org.apache.phoenix.jdbc.PhoenixDriver

第四步:創建Aliases(就是創建一個hbase的connection):

Name: 可以自定義

Driver: 選擇之前配置好的phoenix driver

URL: 這里初始化顯示的是之前配置的Example URL, 可以在這里做具體的修改,192.168.0.177修改為zk地址

配置好以后點擊Test,輸入服務器用戶名、密碼,測試連接,連接成功后進入如下頁面:

查詢已創建的視圖:

此處只有一級索引,在通過非rowkey進行查詢時查詢速度會比較慢,300W數據會在10s左右,目前的Phoenix已支持二級索引,通過二級索引進行查詢會實現毫秒級響應,下篇會介紹Phoenix二級索引的創建

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM