1. 程式人生 > >apache phoenix的JAVA客戶端訪問

apache phoenix的JAVA客戶端訪問

在Phoenix-4.0.0(注意要配合hbase0.98.1+,否則會拋異常)的安裝目錄下,有hadoop-1和hadoop-2,目錄,目錄中有phoenix-4.0.0-incubating-client.jar將其拷貝到工程目錄下,我用的是Hadoop1

然後就可以通過jdbc來訪問phoenix資料介面。

查詢的程式碼

package org.tcse.electric.local;


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


public class TestConnectPhoenix {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
            Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
        } catch(ClassNotFoundException ex) {
            ex.printStackTrace();
        }
		try {
			Connection conn = DriverManager
					.getConnection("jdbc:phoenix:133.133.134.188");
			Statement statement = conn.createStatement();
			ResultSet ret = statement.executeQuery("select * from ph_devices");
			while(ret != null && ret.next())
			{
//				System.out.println(ret);
				System.out.println(ret.getString(1));
				System.out.println(ret.getString(2));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


更新的程式碼:

package org.tcse.electric.local;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.RequestParam;

public class GetMeterLogLocal {
	public String helloRequestBody( String eleData) {
		try {
			Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
		} catch (ClassNotFoundException ex) {
			ex.printStackTrace();
			return "pheonix error!";
		}

		Map<String, Integer> nameMap = new HashMap<String, Integer>() {
			{
				put("DevId", 1);
				put("Time", 2);
				put("U", 3);
				put("I", 4);
				put("Usage", 5);
				put("Sum", 6);
			}
		};
		Connection conn;
		try {
			conn = DriverManager.getConnection("jdbc:phoenix:133.133.134.188");

			String deviceSql = "UPSERT INTO ph_meterlogData(DEVID,TIME,U,I,Usage,Sum) VALUES(?,?,?,?,?,?)";
			PreparedStatement statement = conn.prepareStatement(deviceSql);
			String[] line = eleData.split(";");
			for (int i = 0; i < line.length; i++) {
				if(line[i].equals(""))
					continue;
				String[] cell = line[i].split("_");
				for (int j = 0; j < cell.length; j++) {
					String[] kv = cell[j].split(":");
					if (kv[0].trim().equals("DevId")) {
						statement.setInt(1, Integer.parseInt(kv[1]));
					} else if (kv[0].trim().equals("Time")) {
						SimpleDateFormat sdf = new SimpleDateFormat(
								"yyyyMMddHHmmssS");
						Date time = sdf.parse(kv[1]);
						statement
								.setTimestamp(2, new Timestamp(time.getTime()));
					} else if (kv[0].trim().equals("U")) {
						statement.setFloat(3, Float.parseFloat(kv[1]));
					} else if (kv[0].trim().equals("I")) {
						statement.setFloat(4, Float.parseFloat(kv[1]));
					} else if (kv[0].trim().equals("Usage")) {
						statement.setFloat(5, Float.parseFloat(kv[1]));
					} else if (kv[0].trim().equals("Sum")) {
						statement.setFloat(6, Float.parseFloat(kv[1]));
					}
					
				}
				statement.setFloat(5, 0);
				statement.execute();
				if (i % 1000 == 0 )
					conn.commit();
			}
			conn.commit();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return e.getMessage();
		}
		return "helloRequestBody";

	}
}


相關推薦

apache phoenix的JAVA客戶訪問

在Phoenix-4.0.0(注意要配合hbase0.98.1+,否則會拋異常)的安裝目錄下,有hadoop-1和hadoop-2,目錄,目錄中有phoenix-4.0.0-incubating-client.jar將其拷貝到工程目錄下,我用的是Hadoop1 然後就可以通

如何讓網站判斷是手機客戶訪問,如果是跳到手機版

自動 nsh 發現 代碼 one dir pps 一個 com <script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript">&l

外網客戶訪問校園內網的服務器——socket連接

ron 地址 分析 ora 客戶端 ref 情況 訪問 數據 在做客戶端與服務器的socket連接並發送數據應用中,通常有以下四種情況: 1)、客戶端在內網,服務器在內網。 對於這種情況,只需要用服務器的內網IP即可。 2)、客戶端在外網,服務器在內網。 對於這種情況,服務

WCF分布式4:客戶訪問寄宿在IIS中的WCF服務

ram order ble style 部署過程 比較 logs 一個 model 部署過程比較簡單,新建一個站點,指向服務的物理路徑,設置一個端口。即可。 新建的站點對應一個應用程序池,設置應用程序池中的.NET版本為4.0 寫一個測試客戶端,訪問IIS中的WCF服務,可

ios http2客戶訪問nginx失敗bug

tps bsp bgp -h refused htm 騰訊雲 連接 b- 我們將項目遷入騰訊雲後,外網訪問流量轉發如下外網---》大禹BGP(BGPAntiDDoS)高防----》lbc(LoadBalance cluster)----》lb-----》project i

客戶訪問方式MAPI

數據 訪問方式 自動 ges 客戶端 存檔 change sof 客戶端訪問 1.是微軟為ExchangeServer定制的訪問方式,也是微軟推薦的Exchange訪問方式;2.客戶端必須安裝MicrosoftOfficeOutlook(2007或2010);3.客戶端使用

exchange客戶訪問服務器日誌

IIS logIIS日誌:IIS log (默認位置: C:\inetpub\logs\LogFiles\W3SVC1, 針對OWA, IIS, ActiveSync, EWS等客戶端);IIS記錄的是HTTP的訪問,比如OWA等。 RPC Client Access Server 日誌:RPC client

淺談Exchange 2010中客戶訪問服務器陣列ClientAccessArray

忽略 介紹 con 單獨 mark cit type cto 創建 除了 RPC 客戶端訪問服務之外,Exchange 2010 還向 Exchange 組織引入了一個新的邏輯結構:客戶端訪問服務器陣列(Client Access Server Array)。當在某個 Ac

解決Exchange2010中無法顯示客戶訪問服務器ClientAccessArray中成員的問題

查看 加域 ext 單擊 decimal pcc color ads ems 最近在搭建Exchange2010的過程中,在部署了兩臺客戶端訪問服務器角色後,添加了客戶端訪問服務器陣列後發現少了一個CAS 成員,如下圖所示:我的環境可是有兩臺CAS服務器角色的,如下圖:於是

EXCHANGE客戶訪問服務器(CAS)中的身份驗證方式

傳輸 郵箱服務器角色 找到 輸入 驗證 管理器 orm 虛擬 code 在部署完畢exchange後系統會自動建立IIS服務來響應相應的請求。客戶端訪問服務器(以下簡稱CAS)實質上是一臺IIS服務器,在服務器中部署一套名為“Default web site”的站點來完成O

python socket 套接字編程 單進程服務器 實現多客戶訪問

host port list 不能 ioerror 存儲 utf8 所有 tin 服務器: 1 import socket 2 #單進程服務器 實現多客戶端訪問 IO復用 3 #吧所有的客戶端套接字 放在一個列表裏面,一次又一次的便利過濾 4 #這就是apache

Docker部署mysql並提供客戶訪問

1.獲取mysql映象    $ docker search mysql //查詢mysql映象 $ docker pull mysql //拉取最新的mysql映象 $ docker images //檢視是否獲取mysql映象  

Apache Curator客戶

一:Apache Curator簡介 1. Curator主要從以下幾個方面降低了zk使用的複雜性 重試機制:提供可插拔的重試機制, 它將給捕獲所有可恢復的異常配置一個重試策略,並且內部也提供了幾種標準的重試策略(比如指數補償) 連線狀態監控: Curator初始化

CXF 客戶訪問webService

WSDL webService描述語言。 cxf 客戶端生成就是根據WSDL描述進行生產。 首先 ,下載cxf  地址 :下載地址 ,  選擇下載版本。 放到自己的目錄下(建議不要含有中午路徑)  

第7章 Apache Curator客戶的使用

Apache Curator客戶端的使用 7-1 curator簡介與客戶端之間的異同點 7-2 搭建maven工程,建立curator與zkserver的連線 7-3 zk名稱空間以及建立節點 7-9 zk-watcher例項 統一更新N臺節點的配置

Windows 下使用Git 客戶訪問 GitLab 原始碼管理庫

Windows 下使用Git 客戶端訪問 GitLab 原始碼管理庫 在Windows下使用Git客戶端訪問GitLab原始碼資源: 第一步: 客戶端下載地址: http://download.csdn.net/detail/accesine960/9913786

誇伺服器遠端客戶訪問hbase叢集需要開通的防火牆

問題:hbase客戶端訪問hbase叢集需要怎麼申請開通防火牆? 場景:誇伺服器遠端客戶端訪問hbase叢集需要開通的防火牆和注意事項? 答案: 1)hbase叢集的所有zookeeper伺服器和埠,一般埠預設為2181 2)hbase叢集的所有hmaster伺服器和埠。

使用雙引擎,讓kbmmw 的客戶訪問更方便(既給瀏覽器做服務,也給桌面程式做服務)

前面我們一直都講了如何使用kbmmw smarthttpservice 給客戶端提供REST  服務。主要都是返回給 瀏覽器訪問的,如果我們使用delphi 開發桌面應用,如何使用這些服務呢?其實一切都不是問題,kbmmw 除了 有強大的smartservice,也有強大的smartclient

網路程式設計——用執行緒實現可供多客戶訪問的伺服器

#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <string.h> #includ

客戶訪問不到伺服器Oracle的解決辦法

1.telnet 伺服器IP(192.168.1.120) Oracle埠號(1521);若連線成功檢查資料庫本身問題,若連線不通執行下述步驟;2.命令列執行netstat -a –n,檢視1521埠是否處於監聽狀態; ① 若沒有處於監聽狀態先啟動監聽:     【命令列