(三)IntelliJ IDEA+maven的HBase开发环境搭建

之前都是用Python来操作HBase,现在要尝试在新的业务上使用Java来开发业务代码,毕竟HBase是用Java开发了,提供了完整的Client API来操作HBase。第一步就是搭建HBase的Java开发环境。

环境和工具

系统环境:Mac OS X 10.12.4
IntelliJ IDEA版本: 2017.1.5
HBase:1.2.4,HBase部署在CentOS服务器上

创建项目

1、选择Maven->next

2、填写GroupId和ArtifactId后点击next,然后直接finish

新建的项目概览:

编写代码

1、创建一个包和HbaseCase类

2、编写HbaseCase类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.xuxp.main;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;
/**
* Created by xuxp on 2017/7/14.
*/
public class HbaseCase {
public static void main(String[] args) {
System.out.println("connect begin");
Configuration configuration = HBaseConfiguration.create();
System.out.println("connect ok");
try {
HTable table = new HTable(configuration, "wode_brand");
table.setAutoFlush(false);
Put put = new Put(Bytes.toBytes("hello12"));
put.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("cf"), Bytes.toBytes("vale"));
table.put(put);
} catch (IOException e) {
e.printStackTrace();
}
}
}

代码主要是连接到hbase,然后向wode_brand表中添加一行数据,在执行代码前要确保在hbase中该表存在。

3、hbase-site.xml
需要将HBase的hbase-site.xml文件拷贝到resources下的hbase目录下,以便在HBaseConfiguration.create()的时候能够找到默认的配置文件,减少不必要的麻烦。

pom.xml配置

添加hbase的client包依赖,client的版本需要与实际的hbase版本一致。

1
2
3
4
5
6
7
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.2.4</version>
</dependency>
</dependencies>

效果如下:

之后IDEA将会自动下载依赖包,可以在External Libraries中查看下载的依赖包

Maven打包设置

1、选择Open Module Settings

2、选择Artifacts->JAR->from modules with dependecies

2、弹出这个界面,填写主类

这里要注意META_INF的路径要改一下,从java目录改到resources,具体原因见后面的问题。

3、点击确定,结束Maven打包配置

打包测试

1、build
选择build->build Artifacts->build

Build完后,可以看到,项目结构中多了out,target目录,xphbase.jar就是打包的结果,将所有的依赖包一起打包后,大约有32M

2、测试
将打包好的jar上传的hbase集群中,运行命令java -jar xphbase.jar即可使用。

终于搞定了hbase开发环境的问题,后续将就在这个上面进行开发测试。

问题记录

运行jar包的时候,如果遇到如下问题:

原因和具体解决方案如下:

Intellij Idea导出jar文件 | Yuxi Top Blog - 董玉玺的个人博客
java - Wrong Manifest.mf in IntelliJ IDEA created .jar - Stack Overflow