
Sergey
20.08.2018
08:54:32

Ilia
20.08.2018
08:56:11

Sergey
20.08.2018
08:56:26
спарк стриминг?

Ilia
20.08.2018
08:56:27
Да, пушкой по воробьям

Google

Stanislav
20.08.2018
08:57:15

Ilia
20.08.2018
08:57:25
Стриминг не трогал ещё, думаю написал бы джобу для airflow

Sergey
20.08.2018
08:57:37
в том-то и дело, что руками (((

Ilia
20.08.2018
08:57:55
А, упс

Sergey
20.08.2018
08:58:29
airflow к репликации не шибко подходит

Ilia
20.08.2018
08:58:43
Что посоветуете?

Sergey
20.08.2018
08:59:11
попробую сейчас поднять Kafka SerDe от Oracle, проверю можно ли через него ПИСАТЬ в топик Кафки

Stanislav
20.08.2018
09:22:02

Sergey
20.08.2018
09:22:29
да

Alexey
20.08.2018
12:34:58
кто в курсе, как эффективно сделать distinct на датасете в сотню миллиардов записей, в треть терабайта весом?
если в лоб, то под весом шафлов кластер дохнет.

Евгений
20.08.2018
12:40:47
А потом в лоб)

Alexey
20.08.2018
12:48:35
и сколько раз повторять, выяснить экспериментально?

Google

Alexey
20.08.2018
12:48:56
а такая вот наркомания прокатит:
.mapPartitionsToPair(iter -> {
Set set = new HashSet<>();
iter.forEachRemaining(e -> set.add(new Tuple2<>(e, null)));
return set.iterator();
})
.aggregateByKey(null, (e, f) -> null, (e, f) -> null)
.keys()
или это я переусложняю как обычно

Artyom
20.08.2018
14:15:09
Классическое решение это вынести подсчет на reducer'ы + задать достаточное число reducer'ов
То есть в терминах sql делать не count(distinct key),
а select count() group by key

Alexey
20.08.2018
14:29:12
ну я примерно это и написал, плюс-минус лапоть.
попробую щас отладиться на разных вариантах, о самом работающем потом расскажу.

Mikhail
20.08.2018
14:56:35

Alexey
20.08.2018
14:59:18
если в лоб, то да, оно и есть.
в исходниках так и написано map(x => (x, null)).reduceByKey((x, y) => x, numPartitions).map(_._1)
reduceByKey == шафлы

KrivdaAllStars
20.08.2018
14:59:53

Alexey
20.08.2018
15:00:10
с треском

Mikhail
20.08.2018
15:02:00
Или 0.1%
Может дело не в алгоритме

Alexey
20.08.2018
15:09:31
алгоритма нету. просто у меня на s3 валяется несколько терабайтов CSV-шек, кусками примерно по 300г каждый. надо по каждому выцепить distinct values в одном из полей. собсно, так себе задача. но как оказалось, в лоб не решается.

KrivdaAllStars
20.08.2018
15:13:17

Mikhail
20.08.2018
15:13:45
Ну так я говорю что алгоритм обработки это стандартный мапредьюс. Если у тебя валится, то может дело в настройках кластера? Попробуй позапускать на меньших данных или что-то тривиальное

KrivdaAllStars
20.08.2018
15:14:33
Но опять же + михаилу

Mikhail
20.08.2018
15:14:34
И что именно валится посмотри в логах

Alexey
20.08.2018
15:31:39
ну что вы как дети. мне нет смысла запускать на чём-то меньшем.
в логах часов через 8 начинается расколбас, по которому ничего не выяснить.
18/08/17 23:39:22 WARN YarnAllocator: Container marked as failed: container_1533821424930_0037_01_039565 on host: ip-*****.ap-northeast-1.compute.internal. Exit status: -1000.
не может прочитать следующий блок из DFS.
после таймаута читает. но когда накапливается достаточное количество сдохших контейнеров, кластер падает.
можно увеличить ретраи и таймауты, это пролит агонию, но итог один.

KrivdaAllStars
20.08.2018
15:34:10

Google

KrivdaAllStars
20.08.2018
15:34:27
а не в терабайтах

Alexey
20.08.2018
15:34:28
в шафлах проблема

Mikhail
20.08.2018
15:34:31
ну ты сам вопрос так поставил - как сделать эффективно distinct? эффективно это обычный мапредьюс, вот ответ, то что падает это проблема настроек кластера.

Alexey
20.08.2018
15:35:28
с линейными вещами проблем прожевать терабайты нет. но как только шафлы накапливаются, всё колом встаёт, рано или поздно
т.е. обычный reduce не прокатывает ни в каком виде

Roman
20.08.2018
16:11:26
Обычный wordcount, как из примеров hello world для хадупа :)

Alexey
20.08.2018
16:25:46
чё правда?

Grigory
20.08.2018
18:52:59

Pavel
21.08.2018
08:16:28
Всем привет. Новичок в Клаудере. Как запустить jar файл? В какой директории сохранить? Как создать джоб? Буду благодарен за информацию

Nick
21.08.2018
08:17:11
жестоко

Pavel
21.08.2018
08:36:42

Ilya
21.08.2018
08:37:41
?

Anton
21.08.2018
08:46:26
Ребята, кто-нибудь трогал специализацию от Яндекса на курсере по Data Engineers ? Как впечатления ? Знаете ли альтернативы ?

Alexander
21.08.2018
10:05:04

Pavel
21.08.2018
10:13:29

Alexey
21.08.2018
10:20:01

Pavel
21.08.2018
10:25:39


Alexey
21.08.2018
10:40:48
Можешь попробовать указание custom partitioner.
да много уже чего перепробовал... проблема в накоплении очереди тасок на большом количестве партиций. вылетает чисто по таймауту, потому как драйвер не успевает отдать вовремя следующий блок. очередь тасок в полмильёна, блин. с увеличением таймаутов можно это всё оттянуть на потом, но рано или поздно всё равно контейнеры дохнут. 10 часов ставил — не хватает. можно сделать сами партиции побольше, чтобы их было поменьше, но для этого мне надо и кластер на каких-нить 10xlarge, а бюджет на этой дело мне никто не дал :(
btw, то наркоманское решение, которое я сюда постил, даёт в 4 раза меньше тасок, чем прямой distinct, и в намного меньше шафла. видимо, буду продолжать пилить в этом направлении.


Anton
21.08.2018
10:51:27
Я один из создателей спеки. Могу отвечать на вопросы)
Задания там на пытончике или на чем хочешь ?
И ещё вот такой вопрос : насколько специализация будет интересена , допустим, саентистам, которые хотят получить общее понимание как все работает , но которым (имхо) не нужна глубокое погружение в инженерию ?

Pavel
21.08.2018
10:52:34

Google

Anton
21.08.2018
10:53:47
Окей, пасиб!

Sergioss
21.08.2018
12:20:16
Скажите а даунгрейд сделать с 3.1.1 ванилы до 2.9.1 Сложно?
Похоже 2.1.0 hbase не дружит с hadoop 3.1.1

Mikhail
21.08.2018
12:21:39

Sergioss
21.08.2018
12:21:53

Mikhail
21.08.2018
12:22:08

Sergioss
21.08.2018
12:23:54
Это я понял, в чем заключается несовместимость?:)
Очень много ошибок всяких разных, на пример KeeperErrorCode = NoNode for /hbase/master, details=
это что касается zookeeper,
с WAL какие-то траблы
Гуглил гуглил, все свои ошибки, и наткнулся на статью где пишут о не совместимсти, ошибок очень много а конфа простая.

Grigory
21.08.2018
12:27:46
у них вроде было чтото такое на трекере
я не помню

Sergioss
21.08.2018
12:28:52
Понял, спасибо. Мне по идеи по простому можно, это тестовый стенд, мб ваще просто скачать дист да конфиги залить?)

Grigory
21.08.2018
12:33:04
ага; лучше задуп 2.x со всем этим барахлом
вроде hbase новый есть

Sergioss
21.08.2018
12:36:37

Grigory
21.08.2018
12:37:19

Sergioss
21.08.2018
12:37:36

Grigory
21.08.2018
12:37:45
не стоит думаю))
ты же ток начинаешь

Sergioss
21.08.2018
12:37:51
угу

Google

Sergioss
21.08.2018
12:50:30


Yurij
21.08.2018
13:10:41
Ребята, кто-нибудь трогал специализацию от Яндекса на курсере по Data Engineers ? Как впечатления ? Знаете ли альтернативы ?
Прохожу сейчас первый курс специализации. Если тебе комфортно воспринимать на слух, то норм пойдет. Мне не особо заходит по двум причинам:
1) Я привык читать, а не смотреть и слушать
2) Раздражает английский и плоские отвлекающие шутки одного из лекторов (его материалы мне почти все приходится читать отдельно)
Но практическая часть там хорошая + дается контейнер со спарком, который можно поставить на свою машинку
Другие курсы буду брать только после того, как прочитаю какую-нибудь книжку, потому что из лекций откладывается в голове очень мало из-за моего бага в восприятии лекций

Sergioss
21.08.2018
13:33:04

Grigory
21.08.2018
13:35:32
качни новый дистр прост
и пути поправь и все

Sergioss
21.08.2018
13:40:25
Типа прям в тупую?

Grigory
21.08.2018
13:40:33
угу

Sergioss
21.08.2018
13:40:56
Ок, спс
угу
Тупо не прокатило, слушай а от куда инфа про алфу Hbase? может поделишься ресурсом?

Grigory
21.08.2018
15:34:42
ну хадупы все одинаково натсриваются
одинаково просто настрой
должно србаотать

Sergioss
21.08.2018
15:37:08
должно србаотать
да я так и сделал, разлил 2.9.1 и конфиги старые закинул не завелось я и забил, на хер, подожду альфы) а сам пока cassandru помучаю мб)

Grigory
21.08.2018
15:51:30
ааа старые конфиги наверное 3 -> 2 не совместимы
2 -> 3 вроде работают
там с именами проблема полоей может быть