如何开发Hbase Web应用程序?

时间:2015-11-03 04:07:01

标签: jsp hbase

任何人都可以帮助我开发一个使用HBase作为后端数据库的Web应用程序,因为我是HBase的新手,我对开发HBase Web应用程序一无所知。我在JSP中编写代码就像JDBC程序一样,但它没有得到。请帮我查一下程序或任何示例,以便我可以试试。

提前致谢

1 个答案:

答案 0 :(得分:3)

您可以将HBase用作应用程序的后端或数据库层,就像使用任何RDBMS一样。

您需要使用连接器通过Java连接到HBase,您可以执行插入/更新/删除/选择(CRUD)操作。

要连接到HBase数据库,您需要使用 hbase-client.jar ,您可以使用下面的

添加maven依赖项
<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-client<artifactId>
    <version>1.1.0.1</version>
<dependency>

然后,您需要通过添加hbase-site.xml和core-site.xml文件路径作为资源来创建配置对象

Configuration config = HBaseConfiguration.create();
config.addResource(new Path("/etc/hbase/conf/hbase-site.xml"));
config.addResource(new Path("/etc/hadoop/conf/core-site.xml"));

然后创建与HBase的连接并创建Table对象并在此表的顶部执行扫描操作

String tableName = "peoples";
Connection connection = ConnectionFactory.createConnection(config);
Table table = connection.getTable(TableName.valueOf(tableName));

Scan scan = new Scan();
scan.addColumn(Bytes.toBytes("name"), Bytes.toBytes("first"));
scan.addColumn(Bytes.toBytes("name"), Bytes.toBytes("last"));
scan.addColumn(Bytes.toBytes("contactinfo"), Bytes.toBytes("email"));
scan.addColumn(Bytes.toBytes("personalinfo"), Bytes.toBytes("gender"));
scan.addColumn(Bytes.toBytes("personalinfo"), Bytes.toBytes("age"));

执行扫描仪操作后,您将获得ResultScanner,它更像是JDBC中的ResultSet。遍历它并检索行创建所需bean的pojo或执行您想要执行的任何操作。

resultScanner = table.getScanner(scan);

for (Result result = resultScanner.next(); result != null; result = resultScanner.next()) {
    byte[] firstNameValue = result.getValue(Bytes.toBytes("name"), Bytes.toBytes("first"));
    byte[] lastNameValue = result.getValue(Bytes.toBytes("name"), Bytes.toBytes("last"));
    byte[] emailValue = result.getValue(Bytes.toBytes("contactinfo"), Bytes.toBytes("email"));
    byte[] genderValue = result.getValue(Bytes.toBytes("personalinfo"), Bytes.toBytes("gender"));
    byte[] ageValue = result.getValue(Bytes.toBytes("personalinfo"), Bytes.toBytes("age"));

    String firstName = Bytes.toString(firstNameValue);
    String lastName = Bytes.toString(lastNameValue);
    String email = Bytes.toString(emailValue);
    String gender = Bytes.toString(genderValue);
    String age = Bytes.toString(ageValue);

    System.out.println("First Name : " + firstName + " --- Last Name : " + lastName + " --- Email : " + email + " --- Gender : " + gender + " --- Age : " + age);
}

有关详细信息,请查看my blog post

有关完整代码,您可以查看my github