本实例采用Eclipse开发工具。
启动Eclipse,启动以后,出现如下图所示界面,点击ok按钮。

启动进入Eclipse以后的程序开发界面如下图所示。

点击界面顶部的“File”菜单,在弹出的子菜单(如下图所示)中选择“New”,再选择子菜单中的“Project”。

这时会弹出一个Java工程创建对话框(如下图所示),在“Project name”文本框中输入“HBaseTest”,在“JRE”选项卡中选中第2项“Use a project specific JRE”,然后点击界面底部的“Next”按钮。

在弹出的界面中(如下图所示),用鼠标点击“Libraries”选项卡,然后,点击界面右侧的“Add External JARs…”按钮。

在弹出的“JAR Selection”界面中(如下图所示),进入到“/home/hadoop/hbase/lib”目录,选中该目录下的所有jar文件,一共有111个jar文件(注意,不要选中ruby目录),然后,点击界面底部的“确定”按钮。


然后可以看到jar包都添加进去了,再点击界面(如下图所示)底部的“Finish”按钮。

如果弹出这个对话框,点击“yes”。

在界面(如下图所示)左侧的“HBaseTest”工程名称上单击鼠标右键,在弹出的菜单中选择“New”,再在弹出的子菜单中选择“Class”。

在弹出的“New Java Class”对话框(如下图所示)中,在“Name”文本框中输入“HBaseTest”,然后,点击界面底部的“Finish”按钮。
在代码窗口中(如下图所示),HBaseTest.java代码内容输入。

HBaseTest.java代码内容具体如下:

import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.hbase.HTableDescriptor;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 org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Table;public class HbaseTest { public static Configuration configuration;public static Connection connection;public static Admin admin;public static void main(String[] args)throws IOException{init();createTable("HbaseTest",new String[]{"score"});insterRow("HbaseTest","zhangsan","score","English","69");insterRow("HbaseTest","zhangsan","score","Math","86");close();}//建立连接public static void init(){configuration= HBaseConfiguration.create();configuration.set("hbase.rootdir","hdfs://localhost/hbase");try{connection = ConnectionFactory.createConnection(configuration);admin = connection.getAdmin();}catch (IOException e){e.printStackTrace();}}//关闭连接public static void close(){try{if(admin != null){admin.close();}if(null != connection){connection.close();}}catch (IOException e){e.printStackTrace();}}/* *创建表,参数tableName为表的名称,字符串数组fields为存储记录各个域名称的数组。 * 要求当HBase已经存在名为tableName的表的时候,先删除原有的表,然后再创建新的表。 */public static void createTable(String tableName, String[] fields) throws IOException {init();TableName tablename = TableName.valueOf(tableName);if (admin.tableExists(tablename)) {System.out.println("该表已存在,删除后重建。");admin.disableTable(tablename);admin.deleteTable(tablename);} HTableDescriptor htd = new HTableDescriptor(tablename);for (String str : fields) {HColumnDescriptor hcd = new HColumnDescriptor(str);htd.addFamily(hcd);}admin.createTable(htd);close();} //向表添加数据public static void insterRow(String tableName,String rowKey,String colFamily,String col,String val) throws IOException {init();Table table = connection.getTable(TableName.valueOf(tableName));Put put = new Put(rowKey.getBytes());put.addColumn(colFamily.getBytes(), col.getBytes(), val.getBytes());table.put(put);table.close();close();}}

在开始运行程序之前,需要启动HDFS和HBase。

然后,如下图所示,点击界面中的运行图标右侧的“倒三角”,在弹出的菜单中选择“Run As”,再在弹出的菜单中点击“1 Java Application”,开始运行程序。

运行结束后,可以到HBase Shell交互式环境中,使用如下命令查看HbaseTest表是否创建成功:

或者在eclipse右侧可以看到创建成功的表: