Eclipse中使用Struts2和Tomcat访问Hbase数据库

Eclipse中使用Struts2和Tomcat访问Hbase数据库

实验环境:

? Struts版本2.3.14

? Hadoop版本1.0.4

? Hbase版本 0.94.8

注意事项:

? 要求Hbase已安装完毕,正在成功运行中。Hbase安装请参考文档“Hbase分布式多结点安装运行手册.doc”(百度 文库 中 可以 下载。)

? 防火墙已经添加了相关Accept规则或者已经关闭,不会因为防火墙问题影响程序连接hbase系统。

? Hbase中hadoop-core-1.x.x.jar的版本与Hadoop中该文件的版本要保持一致,防止因版本问题出现难以排除的不明错误。

1. 添加struts2的jar包到WEB—INF的lib文件夹下

2. 把hbase开发需要用到的jar包(jar包在下载的Hbase文件夹以及lib子文件夹中)也放到WEB—INF的lib文件夹下。主要包括:

Eclipse中使用Struts2和Tomcat访问Hbase数据库

工程所需jar包如下图所示:

Eclipse中使用Struts2和Tomcat访问Hbase数据库

几点说明:

(1)Struts 2.3.14中使用commons-lang3-3.1.jar,而Hbase 0.94.8中使用

commons-lang-2.5.jar,所以需要添加commons-lang-2.5.jar,两者的package名称不同。

(2)如果缺少jar包,运行时会报错,可以根据错误提示找到出错的位置和缺少的jar包。

3. 新建一个resources目录,在里面新建一个“hbase-site.xml”,主要说明hbase master的主机名和端口号,该文件的内容可以直接从配置好的hbase系统中拷贝,具体内容就不列出了。

Eclipse中使用Struts2和Tomcat访问Hbase数据库

4. 特别注意事项

(1)hbase中只认主机名,不认IP,所以,hbase-site.xml中的配置文件都要写相应结点的主机名。

(2)在windows系统中,需要修改“C:\WINDOWS\system32\drivers\etc”目录下的hosts文件,添加IP地址和主机名的对应关系,例如:

192.168.100.128 master

192.168.100.156 slave1

192.168.100.159 slave2

5. Hbase提供的开发包API可以通过在线文档查看,

http : // /apidocs/overview-summary.html 【使用时请把http://中多余的空格去掉。】

本次主要使用了以下hbase类:

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.*;

import org.apache.hadoop.hbase.client.*;

import org.apache.hadoop.hbase.util.Bytes;

6. Struts2编程的具体细节就不写了。下面是一段Demo代码,利用Struts,通过Tomcat访问Hbase,在Hbase中建表,插入数据,并查询结果: package com.xxx.action;

import com.opensymphony.xwork2.ActionSupport;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.*;

import org.apache.hadoop.hbase.client.*;

import org.apache.hadoop.hbase.util.Bytes;

public class UploadAction extends ActionSupport{

public String execute() throws Exception {

Configuration configuration = null;

configuration =HBaseConfiguration.create();

HBaseAdmin admin = new HBaseAdmin(configuration);

HTableDescriptor ht = new HTableDescriptor("table1");

HColumnDescriptor hc1 = new HColumnDescriptor("c1");

HColumnDescriptor hc2 = new HColumnDescriptor("c2");

hc1.setMaxVersions(1);

hc2.setMaxVersions(3);

ht.addFamily(hc1);

ht.addFamily(hc2);

admin.createTable(ht);

admin.close();

HTable table = new HTable(configuration, "table1");

String aString = "b";

Put put = new Put(Bytes.toBytes(aString)); put.add(Bytes.toBytes("c1"), Bytes.toBytes("cc1"),

Bytes.toBytes(100));

put.add(Bytes.toBytes("c2"), Bytes.toBytes("cc2"),

Bytes.toBytes(101));

table.put(put);

Scan scan = new Scan();

ResultScanner ss = table.getScanner(scan);

for (Result result : ss) {

byte[] did = result.getValue(Bytes.toBytes("c1"), int a = Bytes.toInt(did); System.out.println(a); Bytes.toBytes("cc1"));

}

ResultScanner ss1= table.getScanner(Bytes.toBytes("c1")); for (Result result : ss1) {

byte[] did = result.getRow(); String a = Bytes.toString(did); System.out.println(a);

}

table.close();

return SUCCESS;

}

}

7. 对于Java Web和Hbase,我也是刚刚开始学习,代码写的不优雅,仅供像我一样的入门者参考。

 

第二篇:在eclipse中struts2提示设置

打开eclipse,打struts2配置文件,然后: 图1:

在eclipse中struts2提示设置

只要复制引号里面的URL

图2:

在eclipse中struts2提示设置

图3:

在eclipse中struts2提示设置

图4:

在eclipse中struts2提示设置

图5:

在eclipse中struts2提示设置

找到自己下的struts包下的lib文件夹下

图6:

在eclipse中struts2提示设置

找到一个“struts2-core-2.2.1.1”(版本可能不一样) 文件,解压。

图7:

在eclipse中struts2提示设置

s

在解压出来的文件里找到 图8:

图8:

之后一路确定就OK了

相关推荐