You're missing a colon between the port and root znode in your JDBC URL.

From http://phoenix.apache.org/

```
jdbc:phoenix [ :<zookeeper quorum> [ :<port number> [ :<root node> [ :<principal> [ :<keytab file> ] ] ] ] ]
```

On 7/23/20 4:24 AM, Istvan Toth wrote:
The code looks OK.
Check that you can resolve the name of, and have IP connectivity to *each *HBase host (master/regionserver) in the cluster.

regards
Istvan

On Wed, Jul 22, 2020 at 3:01 PM 黄乐平 <18702515...@163.com <mailto:18702515...@163.com>> wrote:

    My code is like this:

    public class PhoenixDemo {

         public static void main(String[] args) {
             Connection connection =null;
             Statement statement =null;
             ResultSet rs =null;
             PreparedStatement ps =null;
             org.apache.hadoop.conf.Configuration conf =null;

    try {
                 Connection conn =null;
                 Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
                 connection = 
DriverManager.getConnection("jdbc:phoenix:cdp2.hadoop.com:2181/hbase:hb...@hadoop.com:C
    <http://cdp2.hadoop.com:2181/hbase:hb...@hadoop.com:C>:\\hbase.keytab");
                 System.out.println("Connection established....");
                 // Create a JDBC statement
                 statement = connection.createStatement();
                 // Execute our statements
                 statement.executeUpdate(
                         "create table user (id INTEGERNOT NULL PRIMARY KEY, 
d.first_name
    VARCHAR,d.last_name VARCHAR)");
                 statement.executeUpdate("upsert into user values 
(1,'John','Mayer')");
                 statement.executeUpdate("upsert into user values 
(2,'Eva','Peters')");
                 connection.commit();

                 // Query for selecting records from table
                 ps = connection.prepareStatement("select *from user");
                 rs = ps.executeQuery();
                 System.out.println("Table Values");
    while (rs.next()) {
                     Integer id = rs.getInt(1);
                     String name = rs.getString(2);
                     System.out.println("\tRow: " + id +" = " + name);
                 }
             }catch (SQLException | ClassNotFoundException e) {
                 e.printStackTrace();
             }finally {
                 if (ps !=null) {
                     try {
                         ps.close();
                     }catch (Exception e) {
                     }
                 }
                 if (rs !=null) {
                     try {
                         rs.close();
                     }catch (Exception e) {
                     }
                 }
                 if (statement !=null) {
                     try {
                         statement.close();
                     }catch (Exception e) {
                     }
                 }
                 if (connection !=null) {
                     try {
                         connection.close();
                     }catch (Exception e) {
                     }
                 }
             }

         }
    }

      the code running result is a long time no response. are there any
    errors with my code?
        
    黄乐平
    18702515...@163.com

    
<https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=%E9%BB%84%E4%B9%90%E5%B9%B3&uid=18702515445%40163.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fsm3214e50fe940c3f555b8ce0825ca3497.jpg&items=%5B%2218702515445%40163.com%22%5D>

    签名由 网易邮箱大师
    <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制

Reply via email to