2016-07-12 1 views
2

Я пытаюсь создать DataFlow работу для того, чтобы вставить строки в BigTable, но пока я тестирование DataFlow работы на местном уровне, я получаю следующее сообщение об ошибке:Как решить «Правильно ли настроен ни один из приложений ALPN, ни OpenSSL через netty-tcnative»?

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

Можете ли вы предоставить полную трассировку стека? Я ожидаю увидеть вторую трассировку стека, начиная с «Caused by IllegalStateException ...» –

+1

Используете ли вы 1.1.33.Fork13 из netty-tcnative-boringssl-static? Все остальное может вызвать эту проблему. –

+0

@ LesVogel-GoogleDevRel Да, я использую эту версию. Я предоставил свой pom.xml – bsmarcosj

ответ

1

Проблема в том, что расширение ОС-Maven-плагин, для инициализации " os.detected "свойства, не инициализировали свойство правильно.

Я выполнил тестовую настройку свойства правильно, и тест был выполнен без проблем.

3

Мы только что выпустили 0.9.1 client, что в паре с Нетти tcnative-boringssl-static мы используем Fork19, как показано на connector examples и pardo hello example больше не требуют использования os.detected.

+0

это решение не сработало для меня при использовании Spring Boot, как описано здесь: http://stackoverflow.com/questions/41812627/cant-connect-to-bigtable-from-a-spring-boot-application – cahen

+0

Fork19 is no дольше правильная версия. Я думаю, что это fork23, но я больше не работаю над Cloud Bigtable. –

+0

проблема заключалась в конфликте между библиотеками tomcat и библиотеками больших таблиц, независимо от версии fork. Если у кого-то есть проблема при использовании Spring Boot, я рекомендую прочитать вопрос выше. – cahen

Смежные вопросы