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的地址,可单个,也可多个。可以是域名或者ip
String 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的地址,可单个,也可多个。可以是域名或者ip
String 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的更多相关文章
- linux 下通过过 hbase 的Java api 操作hbase
hbase版本:0.98.5 hadoop版本:1.2.1 使用自带的zk 本文的内容是在集群中创建java项目调用api来操作hbase,主要涉及对hbase的创建表格,删除表格,插入数据,删除数据 ...
- Java API 操作HBase Shell
HBase Shell API 操作 创建工程 本实验的环境实在ubuntu18.04下完成,首先在改虚拟机中安装开发工具eclipse. 然后创建Java项目名字叫hbase-test 配置运行环境 ...
- hadoop2-HBase的Java API操作
Hbase提供了丰富的Java API,以及线程池操作,下面我用线程池来展示一下使用Java API操作Hbase. 项目结构如下: 我使用的Hbase的版本是 hbase-0.98.9-hadoop ...
- Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结
转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...
- 【Hbase三】Java,python操作Hbase
Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...
- JAVA API访问Hbase org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=32
Java使用API访问Hbase报错: 我的hbase主节点是spark1 java代码访问hbase的时候写的是ip 结果运行程序报错 不能够识别主机名 修改主机名 修改主机hosts文 ...
- java api操作
java api操作 导入开发包 将hbase安装包中lib下包导入java项目 创建表 Configuration conf = HBaseConfiguration.create(); c ...
- hive-通过Java API操作
通过Java API操作hive,算是测试hive第三种对外接口 测试hive 服务启动 package org.admln.hive; import java.sql.SQLException; i ...
- 使用Java API操作HDFS文件系统
使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ...
随机推荐
- 页面动态数据的滚动效果——jquery滚动组件(vticker.js)
<script language="javascript" src="lirms/Test/jquery-1.4.2.js"></script ...
- POJ3260:The Fewest Coins(混合背包)
Description Farmer John has gone to town to buy some farm supplies. Being a very efficient man, he a ...
- [LeetCode] 034. Search for a Range (Medium) (C++/Java)
索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 035. Sea ...
- Oracle11g x64使用Oracle SQL Developer报错:Unable to find a Java Virtual Machine
原因oracle 11g中安装的Oracle SQL Developer是32位的,而我们现在给他指定的java.exe却是64位的,所以会出现这种错误.解决方法1)从网上下载Oracle SQL D ...
- Linux 挂载命令 --mount
1.挂载光盘命令 mount : mount [-t vfstype] [-o options] device dir mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点 -t ...
- CSS - 关于li中图文混排不能垂直居中的问题
图片和文字一起放在li标签下不能同时垂直居中 解决办法: 1.设置图片的position:absolute; 2.把文字加上span标签: span{ height:30px;line-heigh ...
- asp.net 发送邮件函数两则
using System.Net.Mail; using System.Text; using System.Net; #region 邮件发送 /// <summary> /// 邮件发 ...
- Nohttp网络请求数据,Post以及Get的简单实用以及设置缓存文字的的请求
开局声明:这是基于nohttp1.0.4-include-source.jar版本写的教程 由于nohttp功能强悍,因此需要多种权限,仅仅一个联网的权限是不够的,如果只给了Internet的权限,去 ...
- iOS 发布证书错误 Your build settings specify a provisioning profile with the UUID, no provisioning profile was found
解决办法 1.找到项目中的**.xcodeproj文件,点击右键,show package contents(打开包内容). 2.打开后找到project.pbxproj文件,用文本编辑器打开.其实就 ...
- codeforces 519E A and B and Lecture Rooms(LCA,倍增)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud E. A and B and Lecture Rooms A and B are ...