phonenix使用说明

查询hbase状态

hbase(main):004:0> status

1 active master, 0 backup masters, 3 servers, 0 dead, 4.6667 average load

hbase(main):005:0> version

1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017

列表

hbase(main):006:0> list
TABLE                                                                                               
AK_TEST1                                                                                            
SYSTEM.CATALOG                                                                                      
SYSTEM.FUNCTION                                                                                     
SYSTEM.SEQUENCE                                                                                     

SYSTEM.STATS 


hbase(main):001:0> exit
[root@master01 bin]# 

查询表的行数 count

1.secureCRT中,点击【选项】【回话选项】【终端】【仿真】,右边的终端选择linux 颜色方案勾掉ANSI选择下个颜色方案

2.ctrl+backspace 删除hbase无法回退的内容




1、

maven配置:---------------------------------------------
<dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase</artifactId>
            <version>1.2.6</version>
        </dependency>


        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>1.2.6</version>
        </dependency>




2、java例子:


  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:2.22.2.98,2.22.2.81,2.22.2.88:2181"; 
        // 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 ak_test1";
        long time = System.currentTimeMillis();
        ResultSet rs = statement.executeQuery(sql);
        while (rs.next()) {
            int count = rs.getInt("ID");
            System.out.println("row count is " + count);
        }


        long timeUsed = System.currentTimeMillis() - time;
        System.out.println("time " + timeUsed + "mm");
        // 关闭连接
        rs.close();
        statement.close();
        conn.close();


4、-------------------------------------------------------
常用命令:
进入phoenix:
切换到安装目录的bin下。登录:
 ./sqlline.py m01:2181


显示所有表:
!tables


创建表:
CREATE TABLE ak_test1( id BIGINT not null primary key);


插入和更新都是upsert
upsert into test(area,point_id) values('moushi','014807412950') "


问题:
比如我主键有2个字段非空,,
我更新就必须知道这2个非空的字段值,才能更新,而无法where用某个字段批量更新


Phoenix driver closed because server is shutting down  异常:
修改为批量提交解决


select id,road_start_timestamp,end_timestamp from test

where id='014807391845' and tart_timestamp>=1480000000 and start_timestamp<=1490000000; 

HBase 官方:https://hbase.apache.org/

Phoenix 官方:https://github.com/forcedotcom/phoenix





猜你喜欢

转载自blog.csdn.net/qq_37928340/article/details/79480825