Hbase之使用Phoenix連接

本文介紹了如何使用Phoenix來連接Hbase并完成增刪改查

1.概述

Phoenix作為應用層和HBASE之間的中間件,以下特性使它在大數(shù)據(jù)量的簡單查詢場景有著獨有的優(yōu)勢

二級索引支持(global index + local index)
編譯SQL成為原生HBASE的可并行執(zhí)行的scan
在數(shù)據(jù)層完成計算,server端的coprocessor執(zhí)行聚合
下推where過濾條件到server端的scan filter上
利用統(tǒng)計信息優(yōu)化咙轩、選擇查詢計劃(5.x版本將支持CBO)
skip scan功能提高掃描速度

2.下載

https://phoenix.apache.org/download.html
選擇對應的Hbase版本下載即可

3.安裝

3.1.上傳解壓

tar -zxvf apache-phoenix-4.14.0-HBase-1.2-bin.tar.gz -C /opt/soft

3.2.拷貝jar到Hbase的lib下

scp phoenix-4.14.0-HBase-1.2-server.jar hadoop@hadoop1:/opt/soft/hbase-1.2.6/lib/
scp phoenix-4.14.0-HBase-1.2-server.jar hadoop@hadoop2:/opt/soft/hbase-1.2.6/lib/
scp phoenix-4.14.0-HBase-1.2-server.jar hadoop@hadoop3:/opt/soft/hbase-1.2.6/lib/

4.啟動

4.1.啟動Hbase

4.2.進入Phoenix控制臺

./bin/sqlline.py

通過 help 可以查看命令

0: jdbc:phoenix:> !tables
+------------+--------------+----------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------+
| TABLE_CAT  | TABLE_SCHEM  |   TABLE_NAME   |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME  | REF_GENERATION  | INDEX_STATE  | IMMUTABLE |
+------------+--------------+----------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------+
|            | SYSTEM       | CATALOG        | SYSTEM TABLE  |          |            |                            |                 |              | false     |
|            | SYSTEM       | FUNCTION       | SYSTEM TABLE  |          |            |                            |                 |              | false     |
|            | SYSTEM       | LOG            | SYSTEM TABLE  |          |            |                            |                 |              | true      |
|            | SYSTEM       | SEQUENCE       | SYSTEM TABLE  |          |            |                            |                 |              | false     |
|            | SYSTEM       | STATS          | SYSTEM TABLE  |          |            |                            |                 |              | false     |
|            |              | TEST           | TABLE         |          |            |                            |                 |              | false     |
|            |              | US_POPULATION  | TABLE         |          |            |                            |                 |              | false     |
+------------+--------------+----------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------+

CRUD

0: jdbc:phoenix:> !sql
. . . . . . . . > create table test1 (mykey integer not null primary key, mycolumn varchar);
No rows affected (1.538 seconds)
0: jdbc:phoenix:> !sql
. . . . . . . . > upsert into test1 values (1,'Hello');
1 row affected (0.064 seconds)
0: jdbc:phoenix:> !sql
. . . . . . . . > select * from test1;
+--------+-----------+
| MYKEY  | MYCOLUMN  |
+--------+-----------+
| 1      | Hello     |
+--------+-----------+
1 row selected (0.09 seconds)
0: jdbc:phoenix:> !sql
. . . . . . . . >  delete from test1 where mykey = 1;
1 row affected (0.074 seconds)
0: jdbc:phoenix:> select * from test1;
+--------+-----------+
| MYKEY  | MYCOLUMN  |
+--------+-----------+
+--------+-----------+
No rows selected (0.153 seconds)

鍵入 !quit 退出shell

5.JavaAPI

5.1.引入依賴

<dependency>
    <groupId>org.apache.phoenix</groupId>
    <artifactId>phoenix-core</artifactId>
    <version>4.14.0-HBase-1.2</version>
</dependency>

5.2.CRUD

public class PhoenixTest {
    public static void main(String[] args) throws Exception {
        Statement stmt = null;
        ResultSet rset = null;

        Connection con = DriverManager.getConnection("jdbc:phoenix:hadoop1,hadoop2,hadoop3");
        stmt = con.createStatement();
        stmt.executeUpdate("create table test (mykey integer not null primary key, mycolumn varchar)");
        stmt.executeUpdate("upsert into test values (1,'Hello')");
        stmt.executeUpdate("upsert into test values (2,'World!')");
        con.commit();

        PreparedStatement statement = con.prepareStatement("SELECT * from test");
        rset = statement.executeQuery();
        while (rset.next()) {
            System.out.println(rset.getString("mycolumn"));
        }
        statement.close();
        con.close();
    }
}

參考:
[Phoenix] 一腿准、快速入門

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昨登,一起剝皮案震驚了整個濱河市妆绞,隨后出現(xiàn)的幾起案子峰搪,更是在濱河造成了極大的恐慌愕难,老刑警劉巖嵌洼,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赖捌,死亡現(xiàn)場離奇詭異祝沸,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門奋隶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擂送,“玉大人,你說我怎么就攤上這事唯欣∴诙郑” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵境氢,是天一觀的道長蟀拷。 經(jīng)常有香客問我,道長萍聊,這世上最難降的妖魔是什么问芬? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮寿桨,結(jié)果婚禮上此衅,老公的妹妹穿的比我還像新娘。我一直安慰自己亭螟,他們只是感情好挡鞍,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著预烙,像睡著了一般墨微。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扁掸,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天翘县,我揣著相機與錄音,去河邊找鬼谴分。 笑死锈麸,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的狸剃。 我是一名探鬼主播掐隐,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钞馁!你這毒婦竟也來了虑省?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤僧凰,失蹤者是張志新(化名)和其女友劉穎探颈,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體训措,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡伪节,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年光羞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怀大。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡纱兑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出化借,到底是詐尸還是另有隱情潜慎,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布蓖康,位于F島的核電站铐炫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蒜焊。R本人自食惡果不足惜倒信,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泳梆。 院中可真熱鬧鳖悠,春花似錦、人聲如沸鸭丛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳞溉。三九已至,卻和暖如春鼠哥,著一層夾襖步出監(jiān)牢的瞬間熟菲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工朴恳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抄罕,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓于颖,卻偏偏與公主長得像呆贿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子森渐,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 簡介 HBase是高可靠性做入,高性能,面向列同衣,可伸縮的分布式存儲系統(tǒng)竟块,利用HBase技術(shù)可在廉價PC Serve...
    九世的貓閱讀 2,177評論 1 6
  • 1 使用概述 2 環(huán)境配置 3 SQL特性詳解 1)create:可以創(chuàng)建一張表或視圖。表名如果沒有用雙引號括起來...
    4ea0af17fd67閱讀 12,435評論 0 10
  • 一耐齐、簡介 Hbase:全名Hadoop DataBase浪秘,是一種開源的蒋情,可伸縮的,嚴格一致性(并非最終一致性)的分...
    菜鳥小玄閱讀 2,369評論 0 12
  • 文/小葉 Waiting I like a beautiful girl thought day to night...
    博土閱讀 275評論 2 1
  • 以前不離不棄的叫夫妻搅窿, 現(xiàn)在不離不棄的是手機白指, 一機在手,天長地久吗伤! 機不在手刷后,魂都沒有的畴。 其實古人早已了然, 并...
    你左思右想閱讀 335評論 0 0