一共60个。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>HBaseClientDemo</groupId><artifactId>com.learn</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.3.1</version></dependency></dependencies><build><!--<plugins><!– 该插件可以生成一个带依赖和不带依赖的jar包 –><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.0</version><configuration><createDependencyReducedPom>true</createDependencyReducedPom></configuration><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><!– 主类的全限定名 –><mainClass>com.healchow.consumer.Main</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins>--><plugins><!-- 该插件会把jar放到dependency目录 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><!--<configuration>--><!--<outputDirectory>${project.build.directory}/lib--><!--</outputDirectory>--><!--</configuration>--></execution></executions></plugin></plugins></build></project>
基本API使用
package com.learn.demo;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hbase.util.Bytes;import java.io.IOException;public class HBaseDemo {private static Configuration conf = null;private static Admin admin = null;private static Connection connection = null;static {try {conf = HBaseConfiguration.create();conf.set("hbase.zookeeper.quorum","hadoop101,hadoop102,hadoop13");connection = ConnectionFactory.createConnection(conf);admin = connection.getAdmin();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws IOException {isExistsTable1("aaa");}/*** 老版本API*/public static boolean isExistsTable1(String tableName) throws IOException {HBaseConfiguration conf = new HBaseConfiguration();conf.set("hbase.zookeeper.quorum","hadoop101,hadoop102,hadoop13");//由于设置了 hbase.zookeeper.property.clientPort 默认为2181 ,所有hbase.zookeeper.quorum只需写道ip ,否则需要加上端口//conf.set("hbase.zookeeper.quorum","hadoop101:2181,hadoop102:2181,hadoop13:2181");HBaseAdmin admin = new HBaseAdmin(conf);return admin.tableExists(tableName);}/*** 新版本API*/public static boolean isExistsTable2(String tableName) throws IOException {Configuration conf = HBaseConfiguration.create();conf.set("hbase.zookeeper.quorum","hadoop101,hadoop102,hadoop13");//由于设置了 hbase.zookeeper.property.clientPort 默认为2181 ,所有hbase.zookeeper.quorum只需写道ip ,否则需要加上端口//conf.set("hbase.zookeeper.quorum","hadoop101:2181,hadoop102:2181,hadoop13:2181");Connection conn = ConnectionFactory.createConnection(conf);Admin admin = conn.getAdmin();return admin.tableExists(TableName.valueOf(tableName));}/*** 创建表* @param tableName 表名* @param cfs 列族名称* @throws IOException*/public static void createTable(String tableName , String...cfs) throws IOException {if (cfs.length <= 0){System.out.println("参数不全");return;}if (isExistsTable2(tableName)){System.out.println("表已经存中");return;}//创建表描述器HTableDescriptor descriptor = new HTableDescriptor(TableName.valueOf(tableName));//循环添加列族信息for (String cf : cfs) {//创建列族描述信息HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(cf);//添加具体的列族信息descriptor.addFamily(hColumnDescriptor);}//创建表admin.createTable(descriptor);}/*** 删除表* @param tableName* @throws IOException*/public static void dropTable(String tableName) throws IOException {if (!isExistsTable2(tableName)){System.out.println("表不存在");return;}//使表不可用admin.disableTable(TableName.valueOf(tableName));//删除表admin.deleteTable(TableName.valueOf(tableName));}/*** 创建命名空间* @param ns* @throws IOException*/public static void creatNamespace(String ns) throws IOException {NamespaceDescriptor descriptor = NamespaceDescriptor.create(ns).build();admin.createNamespace(descriptor);}/*** 插入数据* @param tableName 表名* @param rowKey* @param cf 列族* @param cn 列名* @param value 数据* @throws IOException*/public static void insertData(String tableName, String rowKey , String cf , String cn , String value) throws IOException {//获取表对象Table table = connection.getTable(TableName.valueOf(tableName));//创建Put对象Put put = new Put(Bytes.toBytes(rowKey));/*** @param family family name* @param qualifier column qualifier* @param value column value*/put.addColumn(Bytes.toBytes(cf) , Bytes.toBytes(cn) , Bytes.toBytes(value));table.put(put);table.close();}}
