作业一:Java远程连接+CRUD Ubuntu下HBase
一. 准备工作以及使用工具
注:因为习惯原因,本次实验使用idea工具完成,这个文章也给想使用idea工具去完成作业的同学一个参考。
- idea编辑工具
- maven项目管理和构建自动化工具
- java1.8
- 部署好的Ubuntu虚拟机和配置好的Hbase
- FinalShell 远程连接虚拟机工具
二.作业步骤
1.配置window的hosts。
将Ubuntu虚拟机的ip设置为静态ip,使用 ifconfig
命令进行查看,其中192.168.88.131就是ip地址,找到windows目录下的hosts文件存放地址 C:\Windows\System32\drivers\etc
将静态ip和代表域名写入保存。
ifconfig
2. 使用idea创建maven项目,并做好相关配置。
2.1 创建maven项目。
选择好直接保存的路径,方便管理,项目名称取为work1
2.2 编写maven的pom.xml文件。
使用坐标导入仓库的bhase相关依赖,只需要这样,maven仓库就会自己自动下载bhase API
的相关jar包,由于我们还需要使用测试,所以我们要导入junit 和 log4j
坐标备用。
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>2.3.5</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>2.3.5</version>
</dependency>
<!-- Log4j2的依赖 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.2</version>
</dependency>`在这里插入代码片`
<!-- Junit依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
2.3 编写java代码使用 hbase API 连接hbase的代码
2.3.1HbaseConnection.java
注:因为老师截图代码好像因为版本古老,里面的一些API也已经被删除了,所以我写的代码与老师写的会有一些差异,,但是大体功能是一样的。
在连接方法上,我使用了static 单例连接,代码如下。也就是在HbaseConnection
可以被直接使用,不用new
,在HbaseConnection
被使用时,connection
就会开始和虚拟机的hbase
连接 。
public class HbaseConnection {
public static Connection connection = null;
// 静态的连接
static {
try {
connection = ConnectionFactory.createConnection();
System.out.println("数据库连接成功");
} catch (IOException e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
}
// 关闭连接
public static void closeConnection() throws IOException {
// 判断连接是否为null
if (connection != null){
connection.close();
}
}
}
大家会发现这个代码和老师的有太多地方不一样了:configuration
在哪去了,没有配置项如何建立连接?
configuration = HBaseConfiguration.create();
configuration.set("hbase.zookeeper.quorum", "node1");
这个需要翻看文档和看源码来理解,我在这简单说一下:在这个方法connection = ConnectionFactory.createConnection();
使用时,其实还要又有这个方法,它的内部,HBaseConfiguration
被重载了,慢慢往下找,就会发现他最终会去work1项目文件
下的 resources
资源目录,我们只要将,hbase-site.xml等相关配置项复制过来就可以了。
2.3.2 HBaseCRUD.java
这个java类,通过Hbas