2016-07-12 9 views
2

私はBigTableの中で行を挿入するために、データフロージョブを作成しようとしているが、私は、ローカルにデータフローの仕事をテストしていながら、私は次のエラーを取得する:解決方法Netty-tcnative経由のJetty ALPNもOpenSSLも正しく構成されていませんでしたか?

Exception in thread "main" com.google.cloud.dataflow.sdk.Pipeline$PipelineExecutionException: java.lang.IllegalStateException: Neither Jetty ALPN nor OpenSSL via netty-tcnative were properly configured. 
at com.google.cloud.dataflow.sdk.Pipeline.run(Pipeline.java:186) 

ベローあなたは私のメインのコードを見つけることができます。

CloudBigtableOptions options = 
      PipelineOptionsFactory.fromArgs(args).withValidation().create().as(CloudBigtableOptions.class); 

    options.setProject("xxxxxxxxx"); 
    options.setBigtableProjectId("xxxxxxxxx"); 
    options.setBigtableInstanceId("xxxxxxxxx"); 
    options.setBigtableTableId("xxxxxxxxx"); 
    options.setZone("europe-west1-b"); 
    options.setRunner(DirectPipelineRunner.class); 

    CloudBigtableTableConfiguration config = 
      CloudBigtableTableConfiguration.fromCBTOptions(options); 

    Pipeline p = Pipeline.create(options); 
    CloudBigtableIO.initializeForWrite(p); 

    FixedWindows window = FixedWindows.of(Duration.standardMinutes(1)); 

    p 
      .apply(Create.of("Hello")) 
      .apply(Window.into(window)) 
      .apply(ParDo.of(MUTATION_TRANSFORM)) 
      .apply(CloudBigtableIO.writeToTable(config)); 

    p.run(); 

もう一つの試みは、次のコードとされている:

CloudBigtableTableConfiguration config = 
      new CloudBigtableTableConfiguration.Builder() 
        .withProjectId("xxxxxxxxx") 
        .withInstanceId("xxxxxxxxx") 
        .withTableId("xxxxxxxxx") 
        .build(); 

    Pipeline p = Pipeline.create(options); 
    CloudBigtableIO.initializeForWrite(p); 

    FixedWindows window = FixedWindows.of(Duration.standardMinutes(1)); 

    p 
      .apply(Create.of("Hello")) 
      .apply(Window.into(window)) 
      .apply(ParDo.of(MUTATION_TRANSFORM)) 
      .apply(CloudBigtableIO.writeToTable(config)); 

    p.run(); 

しかし、私は同じエラーを得ました。

何か間違っていますか?

EDIT:

全エラー:

Exception in thread "main" com.google.cloud.dataflow.sdk.Pipeline$PipelineExecutionException: java.lang.IllegalStateException: Neither Jetty ALPN nor OpenSSL via netty-tcnative were properly configured. 
    at com.google.cloud.dataflow.sdk.Pipeline.run(Pipeline.java:186) 
    at HubCache.main(HubCache.java:75) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
Caused by: java.lang.IllegalStateException: Neither Jetty ALPN nor OpenSSL via netty-tcnative were properly configured. 
    at com.google.bigtable.repackaged.com.google.cloud.grpc.BigtableSession.<init>(BigtableSession.java:236) 
    at org.apache.hadoop.hbase.client.AbstractBigtableConnection.<init>(AbstractBigtableConnection.java:123) 
    at org.apache.hadoop.hbase.client.AbstractBigtableConnection.<init>(AbstractBigtableConnection.java:91) 
    at com.google.cloud.bigtable.hbase1_0.BigtableConnection.<init>(BigtableConnection.java:33) 
    at com.google.cloud.bigtable.dataflow.CloudBigtableConnectionPool$1.<init>(CloudBigtableConnectionPool.java:72) 
    at com.google.cloud.bigtable.dataflow.CloudBigtableConnectionPool.createConnection(CloudBigtableConnectionPool.java:72) 
    at com.google.cloud.bigtable.dataflow.CloudBigtableConnectionPool.getConnection(CloudBigtableConnectionPool.java:64) 
    at com.google.cloud.bigtable.dataflow.CloudBigtableConnectionPool.getConnection(CloudBigtableConnectionPool.java:57) 
    at com.google.cloud.bigtable.dataflow.AbstractCloudBigtableTableDoFn.getConnection(AbstractCloudBigtableTableDoFn.java:96) 
    at com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableBufferedWriteFn.getBufferedMutator(CloudBigtableIO.java:941) 
    at com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableBufferedWriteFn.processElement(CloudBigtableIO.java:966) 

のpom.xml:

<dependencies> 
     <dependency> 
      <groupId>com.google.cloud.dataflow</groupId> 
      <artifactId>google-cloud-dataflow-java-sdk-all</artifactId> 
      <version>LATEST</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.cloud.bigtable</groupId> 
      <artifactId>bigtable-hbase-dataflow</artifactId> 
      <version>LATEST</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.7.21</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-simple</artifactId> 
      <version>LATEST</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/io.netty/netty-tcnative-boringssl-static --> 
     <dependency> 
      <groupId>io.netty</groupId> 
      <artifactId>netty-tcnative-boringssl-static</artifactId> 
      <version>1.1.33.Fork13</version> 
      <classifier>${os.detected.classifier}</classifier> 
     </dependency> 
    </dependencies> 

    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.5.1</version> 
        <configuration> 
         <source>1.8</source> 
         <target>1.8</target> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
     <extensions> 
      <!-- Use os-maven-plugin to initialize the "os.detected" properties --> 
      <extension> 
       <groupId>kr.motd.maven</groupId> 
       <artifactId>os-maven-plugin</artifactId> 
       <version>1.4.0.Final</version> 
      </extension> 
     </extensions> 
    </build> 
+0

完全なスタックトレースを提供できますか?私は、 "IllegalStateExceptionによって引き起こされた"から始まる2番目のスタックトレースを見ることを期待しています... –

+1

netty-tcnative-boringssl-staticの1.1.33.Fork13を使用していますか?他にもこの問題が発生する可能性があります。 –

+0

@ LesVogel-GoogleDevRelはい、私はそのバージョンを使用しています。私はpom.xmlを提供しました – bsmarcosj

答えて

1

問題」を初期化するために、延長OS-のmaven-pluginのことでしたos.detected "プロパティは、プロパティを正しく初期化しませんでした。

プロパティを正しく設定してテストを実行しましたが、問題なくテストが実行されました。

3

我々はos.detectedを使用して必要はもはやconnector examplesに示すようFork19を使用してpardo hello exampleネッティーtcnative-boringssl-staticとペアになっていない0.9.1 clientをリリースだけしました。

+0

ここで説明するように、Spring Bootを使用している間、このソリューションは私にとってはうまくいかなかった:http://stackoverflow.com/questions/41812627/cant-connect-to-bigtable-from-a-spring-boot-application – cahen

+0

Fork19はいいえ正しいバージョンを長くしてください。フォーク23だと思いますが、Cloud Bigtableで作業していません。 –

+0

問題は、Tomcatライブラリとbigtableクライアントライブラリの間で、フォークバージョンとは独立して競合していました。 Spring Bootの使用中に誰かがこの問題を抱えている場合は、上記の質問を読むことをお勧めします。 – cahen