一. 实验目的
掌握HBASE编程实践技术。
二. 实验内容
基于ubuntukylin14.04(7)版本,通过Eclipse完成HBASE编程实践。
参考:http://dblab.xmu.edu.cn/blog/install-hbase/
三. 实验步骤及结果分析
1. 创建hbasexgcz项目
版本说明:ubuntukylin14.04(7)=hadoop集群(hadoop2.6.0版本)+hbase伪分布式(hbase1.1.2版本)
eclipse在实验四中已安装好,输入start-dfs.sh
命令和start-hbase.sh
命令启动Hadoop集群和HBase。
创建项目并导入JAR包。打开eclipse,右击左侧空白区域→New→Java Project→Project name为hbasexgcz→Next→Libraries选项→Add External JARs…→导入hbase安装目录中的lib文件中的所有jar包→Finish。
2. 运行编程程序
2.1 创建代码文件
右击hbasexgcz项目→New→Class→Name为hbasecaozuo→Finish,然后在项目中会创建hbasecaozuo.java文件(代码见文末),在其中输入代码。
2.2 运行代码文件
每次运行在eclipse控制台会输出成功与否,在HBase shell中可以查看运行结果。
Hbasecaozuo.java代码:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import java.io.IOException;
public class hbasecaozuo{
public static Configuration configuration;
public static Connection connection;
public static Admin admin;
//主函数中的语句请逐句执行,只需删除其前的//即可,如:执行insertRow时请将其他语句注释
public static void main(String[] args)throws IOException{
//创建一个表,表名为Score,列族为sname,course
createTable("Score",new String[]{
"sname","course"});
//在Score表中插入一条数据,其行键为95001,sname为Mary(因为sname列族下没有子列所以第四个参数为空)
//等价命令:put 'Score','95001','sname','Mary'
//insertRow("Score", "95001", "sname", "", "Mary");
//在Score表中插入一条数据,其行键为95001,course:Math为88(course为列族,Math为course下的子列)
//等价命令:put 'Score','95001','score:Math','88'
//insertRow("Score", "95001", "course", "Math", "88");
//在Score表中插入一条数据,其行键为95001,course:English为85(course为列族,English为course下的子列)
//等价命令:put 'Score','95001','score:English','85'
//insertRow("Score", "95001", "course", "English", "85");
//1、删除Score表中指定列数据,其行键为95001,列族为course,列为Math
//执行这句代码前请deleteRow方法的定义中,将删除指定列数据的代码取消注释注释,将删除制定列族的代码注释
//等价命令:delete 'Score','95001','score:Math'