Google Bigtable экспорт не удается с java.lang.NoSuchMethodError - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь использовать этот процесс: https://cloud.google.com/bigtable/docs/exporting-sequence-files для экспорта моего Bigtable для миграции.

Я использую Google Cloud Shell, запущенную с панели инструментов Google Cloud Platform.Это Debian GNU / Linux 9.4 (stretch).
java -version сообщает openjdk version "1.8.0_171"
Кажется, более поздняя версия jre не доступна (то есть в apt-get) для stretch

Я вызываю так:

java -jar bigtable-beam-import-1.3.0-shaded.jar export \
--runner=dataflow \
--project=xx-may23 \
--bigtableInstanceId=xx0523\
--bigtableTableId=test1 \
--destinationPath=gs://xx0523/test1 \
--tempLocation=gs://xx0523/tmp2 \
--maxNumWorkers=3 \
--zone=us-east4-a

В конце концов получаю эту ошибку:

ERROR MonitoringUtil$LoggingHandler:101 - 2018-05-26T02:10:55.387Z: 
java.lang.NoSuchMethodError: 
java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
at com.google.cloud.bigtable.beam.sequencefiles.SequenceFileSink$OutputStreamWrapper.write(SequenceFileSink.java:214)
at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:58)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at java.io.FilterOutputStream.write(FilterOutputStream.java:97)
at org.apache.hadoop.io.SequenceFile$Writer.writeFileHeader(SequenceFile.java:1145)
at org.apache.hadoop.io.SequenceFile$Writer.init(SequenceFile.java:1214)
at org.apache.hadoop.io.SequenceFile$Writer.<init>(SequenceFile.java:1091)
at org.apache.hadoop.io.SequenceFile$BlockCompressWriter.<init>(SequenceFile.java:1441)
at org.apache.hadoop.io.SequenceFile.createWriter(SequenceFile.java:274)
at com.google.cloud.bigtable.beam.sequencefiles.SequenceFileSink$SeqFileWriter.prepareWrite(SequenceFileSink.java:157)
at org.apache.beam.sdk.io.FileBasedSink$Writer.open(FileBasedSink.java:939)
at org.apache.beam.sdk.io.WriteFiles$WriteUnshardedTempFilesWithSpillingFn.processElement(WriteFiles.java:503)

Кажется, это проблема совместимости с Java-версией.Как я могу это исправить?

1 Ответ

0 голосов
/ 25 июня 2018

Я столкнулся с точно такой же проблемой, следуя документации.Перейдя в репозиторий maven, я понял, что существует более новая версия 1.4.0, которую вы можете найти здесь .Вызов нового jar с помощью команды, приведенной в документации, прошел гладко, и задача была выполнена успешно.

...