簡體   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