让Tomcat启动时加载所有hbase的jar包,避免出现NoClassDefFoundError错误
编辑${catalina.home}/conf目录下的catalina.properties
修改common.loader项
原:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
添加 /home/myhbase/hbase/lib,/home/myhbase/hbase/lib/*.jar
变为:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,/home/myhbase/hbase/lib,/home/myhbase/hbase/lib/*.jar
重启Tomcat
service tomcat stop
service tomcat start
以上内容来自:http://www.xuebuyuan.com/2017724.html
一个查询的例子
一个JSP页面
<%@ page language="java" %>
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-8" %>
<%@ page import="java.io.IOException,org.apache.hadoop.hbase.MasterNotRunningException,org.apache.hadoop.hbase.ZooKeeperConnectionException,org.apache.hadoop.conf.Configuration,org.apache.hadoop.hbase.client.*" %>
<%!
public String query(String keyword)
throws MasterNotRunningException, ZooKeeperConnectionException, IOException
{
Configuration conf = new Configuration();
HTable table = new HTable(conf, "recommend");
Get get = new Get(keyword.getBytes());
get.addFamily("f".getBytes());
Result result = table.get(get);
byte[] val = result.getValue("f".getBytes(), "c".getBytes());
if(val==null) return null;
else return new String(val);
}
%>
<%
String keyword = request.getParameter("wd");
if(keyword == null || keyword == "") {
out.print("无效输入");
return;
}
String result = query(keyword);
if(result == null) {
out.print("数据库中无此数据");
return;
}
out.print("<table border=1 cellspacing=0><tr><th width=50>Num.<th width=80>ID<th width=180>Pref.");
int counter=1;
String[] rev = result.split(":|,");
for(int i=0;i<rev.length;++i)
{
out.print("<tr><td align=\"center\">"+counter);
++counter;
out.print("<td align=\"center\">"+rev[i]+"<td align=\"center\">"+rev[++i]);
}
%>