win7下intellij IDEA中使用JDBC连接虚拟机中的phoenix

来源:互联网 发布:baocms7.8完整源码 编辑:程序博客网 时间:2024/06/12 00:51

前提:在VM中安装好hadoop+zookeeper+hbase+phoenix,并可以成功启动。
1.
在win7下解压hadoop.tar.gz,在github上搜winutils,下载下来,覆盖之前解压的haodoop/bin目录下的文件。

2.设置环境变量:

HADOOP_HOME=F:\hadoop\hadoop-2.6.3

HADOOP_PREFIX=F:\hadoop\hadoop-2.6.3

在path中新加;%HADOOP_HOME%\bin

F:\hadoop\hadoop-2.6.3是我之前解压hadoop的路径。

3.从hadoop集群的master上拷贝core-site.xml、hdfs-site.xml、hbase-site.xml,三个文件到IDEA的src下,如图:

4.添加phoenix的client和core.jar包,上图有

5.在resource下新建log4j.property,新加代码如下,直接网上copy的,这步是为了看Debug和Warn信息

log4j.rootLogger=DEBUG, CAlog4j.appender.CA=org.apache.log4j.ConsoleAppenderlog4j.appender.CA.layout=org.apache.log4j.PatternLayoutlog4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
6.连接代码如下:注意,如果zookeeper用主机名称的话,需要在win7的C:\Windows\System32\drivers\etc\hosts文件中添加host和ip。
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 {        System.setProperty("hadoop.home.dir","F:\\hadoop\\hadoop-2.6.3");        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:master,data1,data2:2191";        // 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 * from \"phoenix\"";        long time = System.currentTimeMillis();        ResultSet rs = statement.executeQuery(sql);        while (rs.next()) {            String row=rs.getString("ROW");            System.out.println("row -- " + row);            String name=rs.getString("name");            System.out.println("name -- " + name);        }        long timeUsed = System.currentTimeMillis() - time;        System.out.println("time " + timeUsed + "mm");        // 关闭连接        rs.close();        statement.close();        conn.close();    }}
7.因为我运行时一直提示HADOOP_HOME or hadoop.home.dir are not set.所以加了个这个:

System.setProperty("hadoop.home.dir","F:\\hadoop\\hadoop-2.6.3");
8.结果:
row -- row001name -- phoenixrow -- row002name -- hbasetime 277mm

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 58会员账号冻结怎么办 58账号冻结资金怎么办 超市买过期东西怎么办 淘宝没发货退款怎么办 申请退款发货了怎么办 51微投票异常怎么办 信用卡逾期收到律师函怎么办 淘宝商品被模仿怎么办 电脑数字间距大怎么办 有源码没有模块怎么办 花盆里有爬虫怎么办 家里有长条爬虫怎么办 有了网站源码后怎么办 第五人格闪退怎么办 超市买东西多收钱怎么办 王者荣耀换系统怎么办 夹娃娃夹子松怎么办 天猫魔盒遥控器没了怎么办 合约机被骗了怎么办 二手苹果合约机怎么办 手机系统老化了怎么办 手机显示电池老化怎么办 手机移动数据打不开怎么办 武汉移动大王卡怎么办 红米手机卡死了怎么办 红米手机死机怎么办 红米note5装卡大怎么办 手机卡二不显示怎么办 小米手机声音小怎么办 小米4手机屏幕失灵怎么办 安装包证书异常怎么办 安装包出现异常怎么办 红米手机按键失灵怎么办 红米手机内存不足怎么办 红米note2内存不足怎么办 信号强度-98dbm怎么办 小米mix2误触怎么办 指纹功能不能用怎么办 红米手机中毒怎么办 小米4手机卡顿怎么办 红米内存大还卡怎么办