环境介绍:
- hbase-2.3.3
- Windows10
- jdk1.8.0_261
- 修改C:\Windows\System32\drivers\etc目录下的hosts文件,添加host映射:
192.168.43.202 hadoop02
- 关闭Windows的防火墙,使Linux和Windows可以互相ping通
- 在pom文件引入hbase依赖包:
<!--hbase 引用的包开始-->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>2.3.3</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-hadoop</artifactId>
<version>2.3.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--hbase 引用的包结束-->
- JavaApi测试代码:
package com.evan.wj.utils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 环境:
* 1.linux文件系统搭建的单机hbase
* 2.javaApi连接linux的hbase
*/
public class test {
public static void main(String[] args) throws IOException {
//1、创建一个configuration对象
Configuration conf = HBaseConfiguration.create();
//2、设置hbase连接参数
conf.set("hbase.zookeeper.quorum","192.168.43.202");
conf.set("hbase.zookeeper.property.clientPort", "2181");
// 设置超时时间限制
conf.set("hbase.client.pause", "60");
conf.set("hbase.client.retries.number", "3");
conf.set("hbase.rpc.timeout", "2000");
conf.set("hbase.client.operation.timeout", "3000");
conf.set("hbase.client.scanner.timeout.period", "10000");
//3.创建线程池
ExecutorService pool = Executors.newFixedThreadPool(50);
//4、获取一个连接对象Connection
Connection conn = ConnectionFactory.createConnection(conf,pool);
//5、获取Admin对象
Admin admin = conn.getAdmin();
System.out.println("获取到admin");
//6.查询hbase中是否有student表
boolean student = admin.tableExists(TableName.valueOf("student"));
System.out.println("是否有hbase表:"+student);
//6、释放资源
admin.close();
conn.close();
}
}