繁体   English   中英

使用Java Servlet运行Hbase

[英]Running Hbase with Java Servlets

我写了一个Hbase Java基本代码,可以很好地与Java配合使用。

public class HBaseTest {

    public static String newFunc() throws IOException {

        // Instantiating configuration class
        Configuration config = HBaseConfiguration.create();

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

        Get g = new Get(Bytes.toBytes("jsmith"));

        Result result = table.get(g);

        // Reading values from Result class object
        byte[] value = result.getValue(Bytes.toBytes("addr"), Bytes.toBytes("city"));

        return Bytes.toString(value);

    }
}

因此,我决定将这段代码和Hbase用作Web应用程序开发的一部分,因此我在Eclipse Java EE IDE中打开了一个新的Dynamic Web Project,并添加了该文件,更改了函数的名称,并从其中一个servlet对其进行了调用。 我还添加了所需的jar文件。 但是我陷入了以下错误:

java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166)
    at HBaseTest.newFunc(HBaseTest.java:18)
    at BakwasServlet.doGet(BakwasServlet.java:16)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

这个错误现在让我感到沮丧。 有人遇到过这种情况吗?有人可以帮助我吗? 我没有设置hbase_home变量。 我也不需要Java代码。

提前致谢!

您在哪里添加了HBase JAR文件? 它应该位于Web应用程序的WEB-INF/lib文件夹中(或服务器的lib文件夹中,但最好将其保留在应用程序中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM