
Grigory
11.10.2017
14:43:41
и шейдинг в один и тотже пакет - очень подозрителен
netty & protobuf

KrivdaTheTriewe
11.10.2017
14:44:13
пробую
Caused by: shaded.io.grpc.ManagedChannelProvider$ProviderNotFoundException: No functional channel service provider found. Try adding a dependency on the grpc-okhttp or grpc-netty artifac

Google

Grigory
11.10.2017
14:56:34
нужен короче еще ребейз
хмм
а кака версия сбт ассембли?

KrivdaTheTriewe
11.10.2017
14:58:22
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.5")

Grigory
11.10.2017
15:00:40
надо похоже META-INF/services/ менять тоже
https://github.com/sbt/sbt-assembly/issues/250
мавен юзай
):
https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#Concatenating_Service_Entries_with_the_ServicesResourceTransformer
проблема что сервси провайдеры не оч в скале распространены

KrivdaTheTriewe
11.10.2017
15:02:12
Мавен не оч(
сча попробуем мавен впиндюрить

Nick
11.10.2017
15:12:31
@krivdaallstarts gprc-netty пакет забыл

Google

Nick
11.10.2017
15:12:43
а
ты окхттп юзаешь

KrivdaTheTriewe
11.10.2017
15:16:14
с обоими не работает

Nick
11.10.2017
15:17:24
а gprc-java есть?

KrivdaTheTriewe
11.10.2017
15:17:59
такое бывает?

Nick
11.10.2017
15:18:23
вообще конечно странно

Grigory
11.10.2017
15:19:35
да не странно
либа зашейдилась, а имена сервисов не переименовались в папочке META-INF

KrivdaTheTriewe
11.10.2017
15:27:13
"io.grpc" % "grpc-netty" % com.trueaccord.scalapb.compiler.Version.grpcJavaVersion,
"com.trueaccord.scalapb" %% "scalapb-runtime-grpc" % com.trueaccord.scalapb.compiler.Version.scalapbVersion,
"com.trueaccord.scalapb" %% "scalapb-runtime" % com.trueaccord.scalapb.compiler.Version.scalapbVersion,
"com.rabbitmq" % "amqp-client" % "4.2.2"
),
assemblyShadeRules in assembly := Seq(
//ShadeRule.rename("io.grpc**" -> "shaded.io.grpc@1").inAll,
ShadeRule.rename("com.google**"-> "shaded.com.google@1").inAll,
ShadeRule.rename("io.netty**" -> "shaded.io.netty@1").inAll),
вот так

Grigory
11.10.2017
15:27:21
заработало?

KrivdaTheTriewe
11.10.2017
15:28:09
да

Andrey
13.10.2017
07:04:20
сталкивались с ошибкой org.apache.spark.scheduler.LiveListenerBus:95 - Listener EventLoggingListener threw an exception java.lang.reflect.InvocationTargetException? Стабильно возникает на стриминг джобе через неделю работы)

KrivdaTheTriewe
13.10.2017
11:47:22
Делал ли кто продьюсер для реббита и спарка, были ли проблемы с тем, что эксепшоны падали, если пытаться закрыть канал

Nick
13.10.2017
12:00:35
чтот помню такое
но не про спарк, а про реббита

KrivdaTheTriewe
13.10.2017
12:01:07
ну у меня типа падает отправка сообщений с мессаджем, что коннекшн олреди клозед
хотя отправка до клозет произошла

Nick
13.10.2017
12:01:54
настройка включена чтоб он сам себя восстанавливал если упало физическое соединение?

Google

Nick
13.10.2017
12:02:07
у меня вот тож самое было
только я не помню с чем связано

KrivdaTheTriewe
13.10.2017
12:08:11
и падает именно посылка сообщений
если соединение не закрывать , все работает

Nick
13.10.2017
16:50:55
Может ты закрываешь коннект когда туда ещё пишется

KrivdaTheTriewe
13.10.2017
16:54:49
ну да, скорее всего так
и как расчитать момент когда закрывать?)
на самом деле всё проще
object LazyRabbit {
lazy val rabbit = {
val factory = new ConnectionFactory()
factory.setUri(rabbitUri)
factory.setVirtualHost("/")
val connection = factory.newConnection
val channel = connection.createChannel
(connection,channel)
}
}

Grigory
13.10.2017
17:28:02
и где ты тут закрываешь?

KrivdaTheTriewe
13.10.2017
17:28:17
уже не закрываю
теперь закрывать не нужно

Grigory
13.10.2017
17:28:56
?
а почему не надо закрывать?

KrivdaTheTriewe
13.10.2017
17:29:32
не нужно закрытие )

Grigory
13.10.2017
17:29:44
ну тогда да

Nick
13.10.2017
17:51:44
а зачем тебе в одном месте создавать channel
создавай только connection

Google

Nick
13.10.2017
17:51:59
а channel уже по месту
ps channel вроде не thread-safe

Dmitry
15.10.2017
08:58:54
коллеги
кто работал со slinding window в спарке
?
правильно я понимаю что он сначала собирает батч в течениии окна а потом его редьюсит?
точнее даже не так
хочется не хранить исходики на за время окна
а хочется смапить во что то поменьше
и потом заредьюсить
правильно я понимаю оно так не умеет?

Pavel
15.10.2017
14:00:11
Чтобы смапить во что-то поменьше надо, чтобы записи лежали на одном экзекьютере. Это можно сделать кастомным партишенером, а потом через mapPartitions помапить

Dmitry
15.10.2017
14:02:56
спасибо, но основное что хотелось так и не смог придумать как
хочется заэкстендить DStream
но видимо никак
или меня в гугле забанили?

Egor
16.10.2017
09:12:01
правильно я понимаю что он сначала собирает батч в течениии окна а потом его редьюсит?
1) сделать агрегат над агрегатом - собирать мелкие агрегаты например за 5 мин, а над ними уже - агрегат за час. вроде обычный стриминг такое должен уметь. structured streaming точно не умеет, но можно обойти, если писать первые агрегаты в промежуточный внешний стрим (например, топик кафки), а потом оттуда читать их для второй агрегации
2) если вопрос не столько в месте, сколько в скорости обработки, то можно использовать incremental aggregation (про это есть здесь - https://docs.cloud.databricks.com/docs/latest/databricks_guide/07%20Spark%20Streaming/10%20Window%20Aggregations.html)

Dmitry
16.10.2017
09:13:49
Ну кароче примерно так и сделал
И вопрос как раз в месте так как хочу написать Sliding HyperLogLog
В пейпере они используют LFPM

Google

Dmitry
16.10.2017
09:16:47
И вот его обновлять не понимал как
Но вроде сраслось
Надо замерить
Чо как
В пейпере они 5ln n вроде как гарантируют
По памяти

Vladimir
16.10.2017
15:42:56
Тут есть кто-нибудь, кто занимается machine learning в Нижнем Новгороде?

Nick
16.10.2017
16:28:16
Лучше спросить в группе по machine learning

Andrei
16.10.2017
16:36:40
все группы заспамлены этим вопросом ответьте уже кто-нибудь ему