配置phoenix连接hbase_使用 Phoenix-4.11.0连接 Hbase 集群 ,并使用 JDBC 查询测试
什么是 Phoenix ?
Apache Phoenix 是運(yùn)行在Hbase之上的高性能關(guān)系型數(shù)據(jù)庫,通過Phoenix可以像使用jdbc訪問關(guān)系型數(shù)據(jù)庫一樣訪問hbase。
Phoenix,操作的表以及數(shù)據(jù)存儲在hbase上。phoenix只需要和hbase進(jìn)行表關(guān)聯(lián)。然后在用工具進(jìn)行一些讀寫操作。
可以把Phoenix 只看成一種代替Hbase語法的工具。雖然Java可以用jdbc來連接phoenix,然后操作hbase,但是在生產(chǎn)環(huán)境中,不可以用OLTP中。
phoenix在查詢hbase時,雖然做了一些優(yōu)化,但是延遲還是不小。所以依然用在OLAT中,在將結(jié)果返回存儲下來。
準(zhǔn)備工作
環(huán)境
JDK:1.8
Hadoop Release:2.7.4
centos:7.3
node1(master) 主機(jī): 192.168.252.121
node2(salve) 從機(jī): 192.168.252.122
node3(salve) 從機(jī): 192.168.252.123
node4(ZooKeeper) 主機(jī): 192.168.252.124
依賴環(huán)境
Hadoop
HBase
安裝
下載解壓
在 ndoe1 上操作
su hadoop
cd /home/hadoop/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/phoenix/apache-phoenix-4.11.0-HBase-1.3/bin/apache-phoenix-4.11.0-HBase-1.3-bin.tar.gz
tar -zxvf apache-phoenix-4.11.0-HBase-1.3-bin.tar.gz
mv apache-phoenix-4.11.0-HBase-1.3-bin phoenix-4.11.0
配置 Phoenix
復(fù)制 JAR
進(jìn)入 /phoenix-4.11.0 文件目錄
cd /home/hadoop/phoenix-4.11.0/
把兩個 jar 包 phoenix-4.11.0-HBase-1.3-client.jar,phoenix-core-4.11.0-HBase-1.3.jar 拷貝至 Hbase的/lib文件夾。
cp phoenix-4.11.0-HBase-1.3-client.jar /home/hadoop/hbase-1.3.1/lib/
cp phoenix-core-4.11.0-HBase-1.3.jar /home/hadoop/hbase-1.3.1/lib/
復(fù)制 base-site.xml
進(jìn)入 Hbase conf配置目錄
cd /home/hadoop/hbase-1.3.1/conf/
把 Hbase 的配置文件 base-site.xml拷貝至 Phoenix 根目錄中的 /bin 文件夾下到此就完成了配置。
cp hbase-site.xml /home/hadoop/phoenix-4.11.0/bin
配置集群
復(fù)制節(jié)點(diǎn)
將 phoenix-4.11.0文件夾重打包后復(fù)制到其他子節(jié)點(diǎn)
cd /home/hadoop/
tar zcvf phoenix.tar.gz phoenix-4.11.0
scp phoenix.tar.gz hadoop@node2:/home/hadoop/
scp phoenix.tar.gz hadoop@node3:/home/hadoop/
在 node2,node3 節(jié)點(diǎn)解壓
cd /home/hadoop/
tar -zxvf phoenix.tar.gz
進(jìn)入 node2,node3 節(jié)點(diǎn) phoenix-4.11.0 文件目錄
cd /home/hadoop/phoenix-4.11.0/
把兩個 jar 包 phoenix-4.11.0-HBase-1.3-client.jar,phoenix-core-4.11.0-HBase-1.3.jar 拷貝至 Hbase的/lib文件夾。
cp phoenix-4.11.0-HBase-1.3-client.jar /home/hadoop/hbase-1.3.1/lib/
cp phoenix-core-4.11.0-HBase-1.3.jar /home/hadoop/hbase-1.3.1/lib/
啟動
cd /home/hadoop/phoenix-4.11.0/bin
./sqlline.py 192.168.252.124:2181
如果看到如下信息,證明,配置沒毛病
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:node4:2181 none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:node4:2181
17/09/21 13:58:09 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Connected to: Phoenix (version 4.11)
Driver: PhoenixEmbeddedDriver (version 4.11)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
92/92 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:node4:2181>
命令行測試
創(chuàng)建表
create table test (mykey integer not null primary key, mycolumn varchar);
增加,修改表數(shù)據(jù)
upsert into test values (1,'Hello');
upsert into test values (2,'www.ymq.io');
查詢表數(shù)據(jù)
select * from test;
響應(yīng)
+--------+-------------+
| MYKEY | MYCOLUMN |
+--------+-------------+
| 1 | Hello |
| 2 | www.ymq.io |
+--------+-------------+
2 rows selected (0.083 seconds)
刪除表
drop table test;
常用命令
!tables #查看表
!exit #退出phoenix
create table、drop table、desc table
phoenix 語法
JDBC 測試
public static void main(String[] args) throws Throwable {
try {
Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
//這里配置zookeeper的地址,可單個,多個(用","分隔)可以是域名或者ip
String url = "jdbc:phoenix:node4:2181";
Connection conn = DriverManager.getConnection(url);
Statement statement = conn.createStatement();
long time = System.currentTimeMillis();
ResultSet rs = statement.executeQuery("select * from test");
while (rs.next()) {
String myKey = rs.getString("MYKEY");
String myColumn = rs.getString("MYCOLUMN");
System.out.println("myKey=" + myKey + "myColumn=" + myColumn);
}
long timeUsed = System.currentTimeMillis() - time;
System.out.println("time " + timeUsed + "mm");
// 關(guān)閉連接
rs.close();
statement.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
響應(yīng)
myKey=1myColumn=Hello
myKey=2myColumn=www.ymq.io
time 127mm
Contact
作者:鵬磊
版權(quán)歸作者所有,轉(zhuǎn)載請注明出處
Wechat:關(guān)注公眾號,搜云庫,專注于開發(fā)技術(shù)的研究與知識分享
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的配置phoenix连接hbase_使用 Phoenix-4.11.0连接 Hbase 集群 ,并使用 JDBC 查询测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对称加密1
- 下一篇: openssl rsa密钥