• apache-phoenix-5.0.0-HBase-2.0 服务端集成及客户端调用


    1、下载并拷贝 htrace-core-3.1.0-incubating.jar 和 phoenix-5.0.0-HBase-2.0-server.jar 到 Hbase 的 /home/hbase-2.2.4/lib 目录下;

           重启Hbase服务。

    2、客户端代码:

    package test;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import org.apache.log4j.Logger;
    
    public class PhoenixHelper {
    
        
        private static final Logger LOG = Logger.getLogger(PhoenixHelper.class);
        private static final String JDBC_DRIVER_CLASS = "org.apache.phoenix.jdbc.PhoenixDriver";
        // jdbc:phoenix:192.168.1.19:2181:/hbase中的/hbase为HBase注册到zooKeeper的根目录, 如使用HBase自带的zooKeeper,默认为"hbase"
        private static final String JDBC_URL          = "jdbc:phoenix:39.108.***.***:2181:/hbase";
     
        public static Connection getConn(){
            try {
                // 注册Driver
                Class.forName(JDBC_DRIVER_CLASS);
                // 返回Connection对象
                return DriverManager.getConnection(JDBC_URL);
            } catch (SQLException |  ClassNotFoundException e ) {
                e.printStackTrace();
                LOG.error("获得连接失败!");
                return null;
            }
        }
     
        public static void closeConn(Connection conn){
            try {
                if (!conn.isClosed())
                    conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                LOG.error("关闭连接失败!");
            }
        }
     
        public static void main(String[] args){
            Connection conn = getConn();
            System.out.println(conn.toString());
            try {
                Statement stat = conn.createStatement();
                
    //            String sql="create table test_phoenix_api(mykey integer not null primary key ,mycolumn varchar )";
    //            stat.executeUpdate(sql);
    //            conn.commit();
                
    //            String sql1="upsert into test_phoenix_api values(1,'test1')";
    //            String sql2="upsert into test_phoenix_api values(2,'test2')";
    //            String sql3="upsert into test_phoenix_api values(3,'test3')";
    //            stat.executeUpdate(sql1);
    //            stat.executeUpdate(sql2);
    //            stat.executeUpdate(sql3);
    //            conn.commit();
                
                
                ResultSet rs = stat.executeQuery("select * from test_phoenix_api");
    
                while (rs.next()) {
                    String mykey = rs.getString("mykey"); //表中的列名
                    String mycolumn = rs.getString("mycolumn"); //表中的列名
    
                    System.out.println("mykey=" + mykey + " mycolumn="+mycolumn);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            closeConn(conn);
        }
    }

    如提示用户不存在:

    2021-01-27 14:38:51,671 WARN  [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=16000] security.ShellBasedUnixGroupsMapping: unable to return groups for user LX
    PartialGroupNameException The user name 'LX' is not found. id: ‘LX’: no such user
    id: ‘LX’: no such user
    
    	at org.apache.hadoop.security.ShellBasedUnixGroupsMapping.resolvePartialGroupNames(ShellBasedUnixGroupsMapping.java:212)
    	at org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:133)
    	at org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:72)

    则在   /home/hbase-2.2.4/conf/hbase-site.xml  文件追加配置:

    <property>
    <name>hbase.superuser</name>
    <value>hbase,root,lixj,LX</value>
    </property>

    李小家
  • 相关阅读:
    【spring cloud】spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient
    【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
    【IntelliJ IDEA】idea显示工具栏
    笔记:git基本操作
    Spring Boot中使用AOP统一处理Web请求日志
    Spring Boot应用的后台运行配置
    RSA加密
    Java汉字md5值不一致问题
    如何判断一个请求是不是ajax请求
    SpringBoot拦截器中service或者redis注入为空的问题
  • 原文地址:https://www.cnblogs.com/101key/p/14335445.html
Copyright © 2020-2023  润新知