Phoenix安裝與JDBC鏈接Phoenix

簡介

    原生的HBaseAPI使用起來真的比較麻煩,固然公司有架構師作一層封裝,提供給開發人員使用應該還不錯。若是麼有架構師怎麼辦?Apache出的Phoenix就是幹了架構師的工做,提供了jdbc接口對HBase表進行操做。java

Phoenix安裝

1.下載sql

打開網址http://mirror.bit.edu.cn/apache/phoenix/,能夠看到以下相似的頁面。phoenix對hbase版本有嚴格的要求,所以在使用的時候要格外當心,若是公司的hbase升級後,使用phoenix編寫的代碼也須要更新jar,甚至修改代碼(這個有點蛋疼,不知道會不會由於這一點致使其很難普遍被使用)apache

我本身的hbase是0.98,因此我下的第一個架構

2.上傳解壓maven

tar -xf apache-phoenix-4.13.1-HBase-0.98.tar.gzoop

3.複製以下兩個jar包到hbase\lib目錄下測試

hbase集羣中的全部機器都要執行spa

cp apache-phoenix-4.13.1-HBase-0.98/phoenix-4.13.1-HBase-0.98-server.jar hbase-0.98.17-hadoop2/lib/phoenix-4.13.1-HBase-0.98-server.jar命令行

cp apache-phoenix-4.13.1-HBase-0.98/phoenix-4.13.1-HBase-0.98-client.jar hbase-0.98.17-hadoop2/lib/phoenix-4.13.1-HBase-0.98-client.jar設計

4.配置環境變量

####################### hbase ##########################
export HBASE_HOME=/home/hadoop/proc/hbase-0.98.17-hadoop2
PATH=$PATH:$HBASE_HOME/bin
export PATH

5.啓動測試

啓hadoop\zk\hbase

啓動phoenix

在phoenix\bin目錄下執行

sqlline.py hadoop01,hadoop02,hadoop03:2181

--hadoop01,hadoop02,hadoop03:2181是zk集羣地址串

命令行操做

**建立表**

create table ph_test(id integer primary key,name varchar);

**查詢表**

select * from ph_test;

建立的表字段雖然給的小寫,但表的元信息其實默認是大寫的,若是要想字段名是小寫,能夠在建立表的時候用雙引號將列包含起來。

phoenix中建立的表實際上就是在hbase上建立了一張表,相似於hive中建立表在hdfs上建立了一個文件夾同樣

phoenix表中的主鍵會成爲hbase表的行鍵

若是不聲明phoenix表中的普通列會成爲hbase表中默認列族(名字叫0)中的普通列,也可使用語法指定列族的名字(通常沒什麼必要,幾乎設計的表都是一個列族)

注:若是hbase中有一張存在的表,而phoenix中沒有,則只須要建立一個表名同樣,列數同樣的表便可。

**插入數據**

upsert into ph_test(id) values(123);

upsert into ph_test(id,name) values(123,'Messi');

upsert表示插入和更新是同一個命令,由於id是行鍵,不容許不指定id的值

**刪除數據**

delete from ph_test where id=124;

刪除表

drop table ph_test;

API操做

1.新建一個maven工程

2.在pom文件中加入

<dependencies>
	<dependency>
	    <groupId>org.apache.phoenix</groupId>
	    <artifactId>phoenix-core</artifactId>
	    <version>4.13.0-HBase-0.98</version>
	</dependency>
    <dependency>  
        <groupId>jdk.tools</groupId>  
        <artifactId>jdk.tools</artifactId>  
        <version>1.8</version>  
        <scope>system</scope>  
        <systemPath>C:\Users\jionsvolk\.m2\repository\jdk\tools\jdk.tools\1.8\jdk.tools-1.8.jar</systemPath>  
    </dependency>  
  </dependencies>

jdk.tools自動下載老是不成功,就我本身本機的jdk目錄中把tools.jar複製到Maven本地倉庫對應的目錄下,文件名修改成jdk.tools-1.8.jar

3.寫代碼

package com.jv.phoenixm;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestPhoenix {
	public static void main(String[] args) throws Exception {
		Connection conn = DriverManager.getConnection("jdbc:phoenix:hadoop01,hadoop02,hadoop03:2181");
		Statement stat = conn.createStatement();
		ResultSet rs = stat.executeQuery("select * from ph_test");
		while(rs.next()){
			String v1 = rs.getString("ID");
			System.out.println(v1);
			String v2 = rs.getString("NAME");
			System.out.println(v2);
		}
		stat.close();
		conn.close();
	}
}

 

執行輸出結果

 

更多的增刪改操做和jdbc同樣,隨便看看之前的jdbc的insert update delete就能夠咯

相關文章
相關標籤/搜索