操作步骤
- 创建Maven项目并添加依赖
- 使用Java API开发代码
- 打包、上传Jar包并测试
流程相对简单,接下来模拟一下使用Jar包操作Hbase向表中插入数据
创建Maven项目
- maven项目创建可以参照这篇的开头部分如何创建maven项目
- 修改pom.xml文件
开发代码
- 创建HBaseConfs类
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
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;
/**
* @ Author: Zhangyu
* @ Date: 2020/10/10
* @ Description:
*/
public class HBaseConfs {
private HBaseConfs(){}
private static Configuration getConf() {
Configuration conf = HBaseConfiguration.create();
conf.addResource(new Path("/opt/hbase/conf/hbase-site.xml"));
conf.addResource(new Path("/opt/hadoop/etc/hadoop/core-site.xml"));
return conf;
}
public static Connection getConn(){
Connection conn=null;
try {
conn= ConnectionFactory.createConnection(getConf());
} catch (IOException e) {
e.printStackTrace();
}
return conn;
}
public static Admin getAdmin(){
Admin admin=null;
try {
admin=getConn().getAdmin();
} catch (IOException e) {
e.printStackTrace();
}
return admin;
}
}
- 创建插入类InsertTable
import cn.kgc.kb09.HBaseConfs;
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.Put;
import org.apache.hadoop.hbase.client.Table;
/**
* @ Author: Zhangyu
* @ Date: 2020/10/10
* @ Description:
*/
public class InsertTable {
public static void main(String[] args) throws Exception{
Connection conn= HBaseConfs.getConn();
Admin admin=HBaseConfs.getAdmin();
//显示所有表
TableName[] tableNames = admin.listTableNames();
for (TableName tableName : tableNames) {
System.out.println(tableName.getNameAsString());
}
//向hello表中插入数据
//hello表需要提前建立好
//hello建表语句 create 'hello',{NAME=>'name'},{NAME=>'addr'}
Table table=conn.getTable(TableName.valueOf("hello"));
String[][] values={
{"1","张","三丰","1st White House","WDC"}
,{"2","李","小龙","10th tangningjie","London"}
,{"3","成","龙","111st wuhuan","Beijing"}
,{"4","叶","问","shanghai","Pingrang"}
};
for (int i = 0; i < values.length; i++) {
Put put =new Put(values[i][0].getBytes());
put.addColumn("name".getBytes(),"fname".getBytes(),values[i][1].getBytes());
put.addColumn("name".getBytes(),"lname".getBytes(),values[i][2].getBytes());
put.addColumn("addr".getBytes(),"address".getBytes(),values[i][3].getBytes());
put.addColumn("addr".getBytes(),"city".getBytes(),values[i][4].getBytes());
table.put(put);
}
admin.close();
conn.close();
}
}
打包、上传Jar包并测试
- 关于如何打Jar包也可以参考之前的文章如何打Jar包
- 注意:打Jar包的过程中需要增加一步,就是选择main class为InsertTable
- 上传Jar包至Linux中
- 测试Jar包:
hadoop jar[...JAR包路径/JAR包名.jar] [实现类的包路径]
hadoop jar /opt/testHbase2.jar cn.kgc.kb09.InsertTable --示例
- 结果
以上就完成了一个简单的操作过程