Size: a a a

2021 January 22

A

Alex in Data Engineers
ответ от разрабов самого флинка
источник

RK

Ruslan Ksalov in Data Engineers
Alex
ответ от разрабов самого флинка
спасибо Alex, попробую
источник

A

Alex in Data Engineers
https://flink.apache.org/news/2020/04/15/flink-serialization-tuning-vol-1.html#avro

по этой линке из письма и описано почему переключается на крио

Without this type information, Flink will fall back to Kryo for serialization which would serialize the schema into every record, over and over again. As a result, the serialized form will be bigger and more costly to create.

что .returns(new GenericRecordAvroTypeInfo(schema)); обязателен
источник

A

Alex in Data Engineers
ну и отдельно как уже было сказано пересечение авро и крио вызывает баг =(
источник

GP

Grigory Pomadchin in Data Engineers
жоско
источник

A

Alex in Data Engineers
ну баги с крио на некоторых классах коллекций я ловил и до этого
источник

A

Alex in Data Engineers
если в объекте был Map без реализации, то он на десериализации пытался сразу EmptyMap создать, а потом уже добавлять что-то и конечно падал
источник

RK

Ruslan Ksalov in Data Engineers
Так, если я просто добавляю .returns(new GenericRecordAvroTypeInfo(schema)) в конец, то получаю
источник

RK

Ruslan Ksalov in Data Engineers
value returns is not a member of org.apache.flink.streaming.api.scala.DataStream[org.apache.avro.generic.GenericRecord]
possible cause: maybe a semicolon is missing before `value returns'?
     kafkaTopic, ConfluentRegistryAvroDeserializationSchema.forGeneric(schema, schemaRegistryURL), properties)).returns(new GenericRecordAvroTypeInfo(schema))
источник

RK

Ruslan Ksalov in Data Engineers
или мне нужно и внутри addSource всё переписать (с использованием new AvroGenericSource())?
источник

AE

Alexey Evdokimov in Data Engineers
Alex
если в объекте был Map без реализации, то он на десериализации пытался сразу EmptyMap создать, а потом уже добавлять что-то и конечно падал
я ловил, что оно пытается AbstractMap инстанциировать. то же и с List -> AbstractList. и хрен выловишь
источник

A

Alex in Data Engineers
да, и это тоже, но вроде сейчас уже пофиксили
источник

AE

Alexey Evdokimov in Data Engineers
в какой версии?
источник

AE

Alexey Evdokimov in Data Engineers
в EMR 6.1 всё по-прежнему, юзаешь штатный крио, пишешь HashMap :/
источник

GP

Grigory Pomadchin in Data Engineers
Alexey Evdokimov
я ловил, что оно пытается AbstractMap инстанциировать. то же и с List -> AbstractList. и хрен выловишь
и бесконечная рекурсия (в стектрейсе)
источник

GP

Grigory Pomadchin in Data Engineers
отличные стектерйсы эх какое было время
источник

AE

Alexey Evdokimov in Data Engineers
окей. значит в амазоне сидят тормоза, и надо им написать в сапорт, чтобы обновили наконец либу
источник

A

Alex in Data Engineers
Ruslan Ksalov
или мне нужно и внутри addSource всё переписать (с использованием new AvroGenericSource())?
нет, там другая иерархия в апи scala и java
источник

RK

Ruslan Ksalov in Data Engineers
Да, весело у вас, новичку разобраться с Flink-ом шансов мало. Чувствую, ещё неделю буду avro прикручивать) Думал, что делов на пять минут)
источник

A

Alex in Data Engineers
addSource возвращает DataStreamSource который

DataStreamSource extend SingleOutputStreamOperator extend DataStream

returns метод из SingleOutputStreamOperator

в скала апи возвращает тип DataStream из скалы, который уже врапает java код, но данного метода нету
источник