Hbase 客户端 API 系列(一) - Put And Get 操作 时间: 2018-10-25 15:57 分类: JAVA,hadoop ####前言 作为 Hbase 客户端 API 系列学习的第一篇,除了`Put`与`Get`操作,还包含了客户端项目的构建。 ####实践 首先,由于《Hbase 权威指南》中使用到的`jar`包已经过时了,所以,在这里说明下`pom.xml`项目依赖文件: ``` log4j log4j 1.2.17 org.apache.hadoop hadoop-common 2.7.7 org.apache.hadoop hadoop-hdfs 2.7.7 org.apache.hbase hbase-client 2.0.2 ``` 接下来新建我们的测试类`InsertTest.java`: ```java package me._0o0; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.Cell; import java.io.IOException; public class InsertTest { public static void main(String[] args) throws IOException { Configuration conf = HBaseConfiguration.create(); Connection conn = ConnectionFactory.createConnection(conf); HTable table = (HTable) conn.getTable(TableName.valueOf("tb_test")); Put put = new Put(Bytes.toBytes("book:1")); put.addColumn(Bytes.toBytes("baseinfo"), Bytes.toBytes("isbn"), Bytes.toBytes("11111111")); put.addColumn(Bytes.toBytes("baseinfo"), Bytes.toBytes("publisher"), Bytes.toBytes("人民出版社")); put.addColumn(Bytes.toBytes("baseinfo"), Bytes.toBytes("name"), Bytes.toBytes("计算机组成原理")); put.addColumn(Bytes.toBytes("baseinfo"), Bytes.toBytes("price"), Bytes.toBytes("25")); table.put(put); Get get = new Get(Bytes.toBytes("book:1")); Result rs = table.get(get); for (Cell cell : rs.rawCells()) { System.out.println("列簇:" + Bytes.toString(CellUtil.cloneFamily(cell)) + "\t" + "列修饰符:" + Bytes.toString(CellUtil.cloneQualifier(cell)) + "\t" + "列值:" + Bytes.toString(CellUtil.cloneValue(cell)) + "\t" + "时间戳:" + cell.getTimestamp()); } table.close(); conn.close(); } } ``` 需要注意的是`Configuration conf = HBaseConfiguration.create();`,新建配置对象,客户端如何与我们服务器上的`Hbase`进行通信呢? 很简单,客户端只要配置服务器上面的`Zookeeper`节点就可以了。 默认`HBaseConfiguration.create()`读取`CLASSPATH`类路径下的`hbase-site.xml`文件,在这里我在`Resources`目录下新建了一个`hbase-site.xml`文件: ``` hbase.zookeeper.quorum 192.168.0.11 ``` 上面只配置了`Zookeeper`的地址,端口使用默认2181,如果端口不是2181可以通过`hbase.zookeeper.property.clientPort`属性配置。 当然了,也可以没有该配置文件,`Configuration`对象可以通过如下方式进行配置: > conf.set("hbase.zookeeper.quorum", "192.168.0.11"); //设置zookeeper地址,多个用逗号隔开 > conf.set("hbase.zookeeper.property.clientPort", "2181"); //设置zookeeper端口 以上程序运行结果: ![微信截图_20181025160335.png][1] 服务器上使用命令查看: ![微信截图_20181025160436.png][2] 可以看到,确实插入成功了。 [1]: https://0o0.me/usr/uploads/2018/10/3291181084.png [2]: https://0o0.me/usr/uploads/2018/10/2986558543.png 标签: hbase