2016-11-21 19 views
0

私は、次のドッキングウィンドウ・コンファイルで2つの別々の容器にHBaseのとPHPのモジュールから結合レガシーシステムを分割しようとしている:倹約+(ドッカコンテナ内)のHBase例外

version: '2' 
services: 
    php: 
    image: my-legacy-php 
    volumes: 
     - ~/workspace/php:/workspace/php 
    ports: 
     - "80:80" 
    links: 
     - hbase:hbase-docker 
    hbase: 
    image: dajobe/hbase 
    hostname: hbase-docker 
    ports: 
     - "43590-44000:43590-44000" 
     - "8085:8085" 
     - "2181:2181" 
     - "8080:8080" 
     - "16010:16010" 
     - "9095:9095" 
     - "9090:9091" 
     - "16020:16020" 
     - "16030:16030" 
     - "60000:60000" 
    volumes: 
     - ~/workspace/hbase-docker/data:/data 

私は公衆を使用していますhbaseのドッカー画像はdajobe/hbaseです。 は今、私はPHPのmoudleにいくつかのイベント(HTTP GETリクエスト)を送信し、私のPHPモジュール(スリフトlibに)に次の例外を取得しようとしている:

ERROR HBaseFacade - exception in handling rcomEvent: Internal error processing increment, trace is: #0 /workspace/php/libs/thrift-0.8.0/packages/Hbase/THBaseService.php(536): THBaseServiceClient->recv_increment() 

とHBaseのコンテナに、私は以下を参照してください。例外(/data/log/hbase-thrift.log):

2016-11-21 09:13:29,620 ERROR [thrift-worker-0] thrift.ProcessFunction: Internal error processing increment 
java.lang.NullPointerException 
    at org.apache.hadoop.hbase.thrift.ThriftServerRunner$HBaseHandler.increment(ThriftServerRunner.java:1747) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.hbase.thrift.HbaseHandlerMetricsProxy.invoke(HbaseHandlerMetricsProxy.java:67) 
    at com.sun.proxy.$Proxy9.increment(Unknown Source) 
    at org.apache.hadoop.hbase.thrift.generated.Hbase$Processor$increment.getResult(Hbase.java:4537) 
    at org.apache.hadoop.hbase.thrift.generated.Hbase$Processor$increment.getResult(Hbase.java:4521) 
    at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) 
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) 
    at org.apache.hadoop.hbase.thrift.TBoundedThreadPoolServer$ClientConnnection.run(TBoundedThreadPoolServer.java:289) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

アイデアはありますか?

EDIT:(私のPHPモジュールで働いていた)私の前のローカルHBaseのバージョンは0.94.26でしたし、私のために1.1.4

答えて

0

ソリューションを実行しているのHBase-ドッキングウィンドウは、中thrift2代わりのthriftを実行することでしたhbaseコンテナ。 https://github.com/dajobe/hbase-docker/blob/master/hbase-serverから

: 私は変更した:

hbase thrift start > $logs_dir/hbase-thrift.log 2>&1 & 

へ:

hbase thrift2 start > $logs_dir/hbase-thrift.log 2>&1 & 
関連する問題