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