2012-08-07 174 views
0

我首先知道這個問題是虛擬的,但我找不到有關文檔。 Apache駝峯掃描遠程HBase上的表的方法是哪種?在遠程HBase上使用Camel進行表掃描

阿帕奇駱駝的documentation沒有什麼幫助。它只適用於本地安裝hbase的情況。

Thx提前!

編輯:

我試過@cexbrayat的例子,但我得到了以下異常。

8071 [Camel (camel-1) thread #1 - stream://in] ERROR org.apache.camel.processor.DefaultErrorHandler - Failed delivery for (MessageId: ID-1344429030688-0-1 on ExchangeId: ID-1344429030688-0-2). Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException 
java.lang.NullPointerException 
    at org.apache.camel.component.hbase.HBaseProducer.process(HBaseProducer.java:105) 
    at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) 
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) 
    at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:120) 
    at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:292) 
    at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:115) 
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) 
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) 
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) 
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) 
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) 
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) 
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) 
    at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) 
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) 
    at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330) 
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220) 
    at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) 
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) 
    at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303) 
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) 
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:117) 
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) 
    at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) 
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) 
    at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) 
    at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) 
    at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48) 
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) 
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) 
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) 
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) 
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) 
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) 
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86) 
    at org.apache.camel.component.stream.StreamConsumer.processLine(StreamConsumer.java:198) 
    at org.apache.camel.component.stream.StreamConsumer.readFromStream(StreamConsumer.java:159) 
    at org.apache.camel.component.stream.StreamConsumer.run(StreamConsumer.java:100) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

回答

5

您必須將hbase的配置文件配置爲hbase-site.xml。你會發現如何在官方hbase documentation

然後你就可以使用這個配置文件中的駱駝:要做到這一點,你會發現在駱駝HBase的成分sources

使用Java DSL爲例,該路線將如下所示:

public class FournisseurRoute extends RouteBuilder { 
    @Override 
    public void configure() throws Exception { 
     from("direct:scan") 
      .to("hbase:mytable?operation=CamelHBaseScan") 
      .log("${body}"); 
    } 
} 
+0

你能否提供一個在Java DSL中使用camel-hbase組件的例子? – user1406703 2012-08-08 09:54:46

+0

當然,請參閱我編輯的答案 – cexbrayat 2012-08-08 12:03:48

+0

請在我編輯它時查看我的問題,因爲我通過此示例得到了一個異常。謝謝! – user1406703 2012-08-08 12:37:06