HBase 6、用Phoenix Java api操作HBase
生活随笔
收集整理的這篇文章主要介紹了
HBase 6、用Phoenix Java api操作HBase
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
開發環境準備:eclipse3.5、jdk1.7、window8、hadoop2.2.0、hbase0.98.0.2、phoenix4.3.0
1、從集群拷貝以下文件:core-site.xml、hbase-site.xml、hdfs-site.xml文件放到工程src下
2、把phoenix的phoenix-4.3.0-client.jar和phoenix-core-4.3.0.jar添加到工程classpath
3、配置集群中各節點的hosts文件,把客戶端的hostname:IP添加進去
4、在客戶端host文件中加入集群的hostname和IP
5、工程截圖
例子1:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;public class Phoenix_Test {/*** 使用phoenix提供的api操作hbase讀取數據*/public static void main(String[] args) throws Throwable {try {// 下面的驅動為Phoenix老版本使用2.11使用,對應hbase0.94+// Class.forName("com.salesforce.phoenix.jdbc.PhoenixDriver");// phoenix4.3用下面的驅動對應hbase0.98+Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");} catch (Exception e) {e.printStackTrace();}// 這里配置zookeeper的地址,可單個,也可多個。可以是域名或者ipString url = "jdbc:phoenix:node5,node6,node7";// String url =// "jdbc:phoenix:41.byzoro.com,42.byzoro.com,43.byzoro.com:2181";Connection conn = DriverManager.getConnection(url);Statement statement = conn.createStatement();String sql = "select count(1) as num from WEB_STAT";long time = System.currentTimeMillis();ResultSet rs = statement.executeQuery(sql);while (rs.next()) {int count = rs.getInt("num");System.out.println("row count is " + count);}long timeUsed = System.currentTimeMillis() - time;System.out.println("time " + timeUsed + "mm");// 關閉連接rs.close();statement.close();conn.close();} }執行結果:
例子2:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;public class Phoenix_Test2 {/*** 使用phoenix提供的api操作hbase中讀取數據*/public static void main(String[] args) throws Throwable {try {//下面的驅動為Phoenix老版本使用2.11使用,對應hbase0.94+//Class.forName("com.salesforce.phoenix.jdbc.PhoenixDriver");//phoenix4.3用下面的驅動對應hbase0.98+Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");} catch (Exception e) {e.printStackTrace();}//這里配置zk的地址,可單個,也可多個。可以是域名或者ipString url = "jdbc:phoenix:node5,node6,node7";Connection conn = DriverManager.getConnection(url);Statement statement = conn.createStatement();String sql = "select * from web_stat where core = 1";long time = System.currentTimeMillis();ResultSet rs = statement.executeQuery(sql);while (rs.next()) {//獲取core字段值int core = rs.getInt("core");//獲取core字段值String host = rs.getString("host");//獲取domain字段值String domain = rs.getString("domain");//獲取feature字段值String feature = rs.getString("feature");//獲取date字段值,數據庫中字段為Date類型,這里代碼會自動轉化為string類型String date = rs.getString("date");//獲取db字段值String db = rs.getString("db");System.out.println("host:"+host+"\tdomain:"+domain+"\tfeature:"+feature+"\tdate:"+date+"\tcore:" + core+"\tdb:"+db);}long timeUsed = System.currentTimeMillis() - time;System.out.println("time " + timeUsed + "mm");//關閉連接rs.close();statement.close();conn.close();} }執行結果:
總結
以上是生活随笔為你收集整理的HBase 6、用Phoenix Java api操作HBase的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 25个经典的Spring面试问答
- 下一篇: AWK的数组