hbase通过java客户端写入数据和查询数据。
写入数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 public static Configuration hbaseConfiguration = HBaseConfiguration.create ();public static Connection connection = null ;public static Admin admin = null ;//date format public static SimpleDateFormat dateFornat = new SimpleDateFormat("yyyyMMddHHmmss"); //初始化hbase的连接和获取admin 对象 public static void init() { hbaseConfiguration.set ("hbase.zookeeper.property.clientPort", "2181"); hbaseConfiguration.set ("hbase.zookeeper.quorum", "192.168.1.180"); try { connection = ConnectionFactory.createConnection(hbaseConfiguration); admin = connection .getAdmin(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { init(); insert ("person_sale", "186xxxxxxxx_", "content", "content", "11111============2222=========333"); close (); } //批量写入 public static void insert (String tableName, String rowKey, String colFamily, String col, String value ) throws IOException, InterruptedException { Table table = connection .getTable(TableName.valueOf(tableName)); Calendar calendar = null ; List<Put> putList = new ArrayList<Put>(); for (int i = 0 ; i < 20 ; i++) { calendar = Calendar.getInstance(); Date date = calendar.getTime(); System .out .println("========" + dateFornat.format(date )); Put put = new Put(Bytes.toBytes(rowKey + dateFornat.format(date ))); put.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col), Bytes.toBytes(value )); putList.add (put); java.util.concurrent.TimeUnit.SECONDS.sleep(1 ); } //批量添加数据 table .put(putList); table .close (); } public static void close () { try { if (null != admin ) { admin .close (); } if (null != connection ) { connection .close (); } } catch (IOException e) { e.printStackTrace(); } }
查询数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 public static Configuration hbaseConfiguration = HBaseConfiguration . create() ; public static Connection connection = null; public static Admin admin = null; public static SimpleDateFormat dateFornat = new SimpleDateFormat("yyyyMMddHHmmss" ) ; public static void init() { hbaseConfiguration.set("hbase.zookeeper.property.clientPort" , "2181" ); hbaseConfiguration.set("hbase.zookeeper.quorum" , "192.168.1.180" ); try { connection = ConnectionFactory . createConnection(hbaseConfiguration ) ; admin = connection.getAdmin() ; } catch (IOException e) { e.printStackTrace() ; } } public static void main(String[] args) throws IOException { init() ; showTablesContent("person_sale" ) ; close() ; } public static void showTablesContent(final String tableName ) throws IOException { Table table = connection.getTable(TableName.valueOf (tableName ) ); Scan scan = new Scan() ; scan.setMaxVersions() ; scan.setBatch(10000) ; scan.setStartRow(Bytes.toBytes ("186xxxxxxxx_20170330132405" ) ); scan.setStopRow(Bytes.toBytes ("186xxxxxxxx_20170330132418" ) ); ResultScanner result = table.getScanner(scan ) ; for (Result r : result) { System . out.println(Bytes .to String(r .getValue (Bytes.toBytes ("content" ) , Bytes .to Bytes("content" ) ))); } table.close() ; } public static void close() { try { if (null != admin) { admin.close() ; } if (null != connection) { connection.close() ; } } catch (IOException e) { e.printStackTrace() ; } }
注意点 1、hbase的机器名称要在客户端机器上面的hosts文件里面标明,否则会一直卡在connection.getAdmin();这句上。这里会从zk中获取master的hbase实例,zk返回的是master的主机名,不是ip地址。所以在这里一定要在客户端hosts中添加主机名到ip的映射关系。
<
storm核心术语介绍
oracle常用sql
>