最近学习接触HBase的东西,看了《Habase in Action》,但里面关于HBase接口都是过时的接口,以下为HBase新的客户端接口:
package com.n10k; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; import java.io.IOException; public class NewClientAPIExample extends Configured implements Tool { /** 定义HBase的表. */ private static final TableName TABLE_NAME = TableName.valueOf("MyTable"); /** 列族名 */ private static final byte[] CF = Bytes.toBytes("cf1"); public int run(String[] argv) throws IOException { setConf(HBaseConfiguration.create(getConf())); /** 连接集群. 一个单连接被所有应用线程共享. */ Connection connection = null; /* 一个针对特定表的轻量级句柄。被一个单线程使用*/ Table table = null; try { // 建立到集群的连接 connection = ConnectionFactory.createConnection(getConf()); // 拿到目标表的句柄 table = connection.getTable(TABLE_NAME); //描述我们想要写的数据 Put p = new Put(Bytes.toBytes("someRow")); p.addColumn(CF, Bytes.toBytes("qual"), Bytes.toBytes(42.0d)); // 发送数据 table.put(p); } finally { // 关闭释放资源 if (table != null) table.close(); if (connection != null) connection.close(); } return 0; } public static void main(String[] argv) throws Exception { int ret = ToolRunner.run(new NewClientAPIExample(), argv); System.exit(ret); } }
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句