@hadoopusers

Страница 169 из 182
Stanislav
16.10.2018
11:07:23
Это решается либо ссд, либо увеличением дисков в датаноде

Alex
16.10.2018
11:07:54
я знаю что может быть раскидан

а теперь представь что он может быть раскидан + еще и промежуточная датанода на jvm + загруженная сеть

Stanislav
16.10.2018
11:08:38
Немного не так

Google
Alex
16.10.2018
11:08:46
почему же?

Stanislav
16.10.2018
11:08:55
Какой шанс, что раскидает 128 мегабайт против 1 гигабайта?

Раз в 10 меньше

А уж если это стандартный размер

И кластер равномерно забит

Прилично меньше

И тебе для чтения этого гигабайта понадобится 10 операций чтения вместо 1000 локальных

+ Нетворк латенси

Alex
16.10.2018
11:09:54
эм, для файловой системы как-то пофиг это 128мб или 1гб, ей пишут, она алоцирует и выдает след кластер

Stanislav
16.10.2018
11:10:13
Диску не пофиг

Есть сектора последовательные

А есть сектора в начале диска и конце

Google
Alex
16.10.2018
11:10:43
я понимаю, откуда ОН знает сколько на него будут писать?

Stanislav
16.10.2018
11:10:47
Скорость чтения с блина также разная

Если есть место подряд, то он будет писать подряд

Если места нет, он будет писать в свободное место

Alex
16.10.2018
11:11:31
тогда почему 128мб он может записать последовательно, а 1гб блоками по 128мб или 512мб последовательно не может

Stanislav
16.10.2018
11:14:17
1) У тебя не просто 1 гигабайт, по твоим словам этот размер прыгает. 2) при заполнении дисков эти невыравненные блоки будут писаться и стираться рандомно 3) работа с хадупом - это кластер кучи данных

Особенно на чистом кластере

Дальше процент будет падать

Меньше места, больше падение

Я понимаю твою локальность, она на основе хбейза. Очень хорошо ложиться, когда у тебя точно известно число регионов и все данные равномерно размазаны

Хотя даже хбейз режет размер кстати

Ты смотрел?

У него такие же блоки по 128 мегабайт )

Alex
16.10.2018
11:16:53
1-2) и будет он прыгать в пределах одной машинки или нескольких тебе без разницы 3) да но мы говорим сейчас о 2х фрагментациях 1) фрагментация физического диска 2) фрагментация на уровне hdfs в итоге я предпочитаю на клиенте когда работаю иметь хотябы только 1, а не как жадный загребать и 1 и 2

не всегда, зачастую настраивается хбэйс зачастую пишет и читает в пределах одного регион сервера сам hdfs в этом случае одну реплику хранит на той же датаноде в итоге если регионы не двигаются то у тебя близкая к 100% дата локалити стоит начать перезапускать ноды в клатере и регионы поплыли, локалити уходит в одно место

Stanislav
16.10.2018
11:26:07
Не получается у нас вообщем) ладно, у меня просто нет таких обработок, чтобы сразу все данные считать. У меня ограниченные селекты с партиционированием хайва, и зачем мне читать 1 гигабайт вместо чтения 128 мегабайт ?

Alex
16.10.2018
11:27:00
Аналитика, нужно прочитать все и отфильтровать

Google
Alex
16.10.2018
11:27:07
Или агрегировать

Если данные упорядочены то там тебе фитрами и min/max уже усечет неплохо

А если каша, то близко к фулскану

https://databricks.com/session/hdfs-on-kubernetes-lessons-learned

Там хорошо про даталокалити прошлись

Renarde
16.10.2018
11:35:04
всем привет! а подскажите какое-нибудь достаточно быстрое in memory text search решение? Попробовал потестировать ElasticSearch, но как-то он не очень быстрый(

Максим
16.10.2018
11:39:29
Ну и elastic вообще не про скорость

Andrew
16.10.2018
11:45:38
Не очень быстрый - какую скорость Вы ожидали?

Renarde
16.10.2018
11:46:52
тест очень простой - есть http сервис (tornado.web.Application), в него прилетает query - пара-тройка слов - terms. нужно чтобы сервис отдавал (и очень быстро отдавал) из базы комментов такие комменты, где встречаются эти terms, в произвольном порядке. Например: q = "hello world" db = [ (1, "some comment"), (2, "world hello today"), (3, "only hello"), (4, "hello world tomorrow") ] def search(q,db): .... return h search(q,db) -> [2,4] Сейчас в виде db и search я использую эластик, и скорость там не особая - меньше чем если просто тупо хранить всю db в памяти питона как пачку словарей и ходить по ним циклом на каждый запрос. Я конечно понимаю что в продакшене пачка словарей в памяти храниться не будет, поэтому нужна альтернатива - и достаточно быстрая)

Nikita Blagodarnyy
16.10.2018
11:55:41
Ignite?

Andrey
16.10.2018
11:55:43
https://www.slideshare.net/profyclub_ru/sphinx-41345784 тут приведены критерии выбора и как правильно делать бенчмарки (чтобы не тестировать например скорость отдачи кеша эластика)

а так если нужно только вхождение слова (без всяких словоформ, морфологии, ранжирование и т.д.), то строй инверт индекс и храни в inmemory base

Aleksandr
16.10.2018
12:03:00
во-во-во! может приведете рекомендации из своего опыта?
Вроде же из документации Row group size: Larger row groups allow for larger column chunks which makes it possible to do larger sequential IO. Larger groups also require more buffering in the write path (or a two pass write). We recommend large row groups (512MB - 1GB). Since an entire row group might need to be read, we want it to completely fit on one HDFS block. Therefore, HDFS block sizes should also be set to be larger. An optimized read setup would be: 1GB row groups, 1GB HDFS block size, 1 HDFS block per HDFS file

rus
16.10.2018
12:43:16
https://github.com/Restream/reindexer
Пробовал? Есть чего рассказать? =)

Grigory
16.10.2018
14:56:31
Друзья мои, мы, потихонечку, начинаем готовить Moscow Spark #6. Состоится он, видимо, во второй половине ноября. Когда пройдет, по крайней мере, Highload++. Если у кого-то есть материал, чтобы сделать клевый доклад, жду вас в личку )

Сергей
16.10.2018
15:15:59
Как в спарке кастомный запрос в бд превратить в dataframe?

Pavel
16.10.2018
15:17:15
spark.sql("твой кастомный запрос")

Google
Pavel
16.10.2018
15:17:24
Ну это если хайв

Сергей
16.10.2018
15:17:27
sqlContext.read().format("jdbc").options().load только всю таблицу грузит

Ну это если хайв
Мне надо через jdbc

Pavel
16.10.2018
15:17:51
sqlContext.read().format("jdbc").options().load только всю таблицу грузит
Не, не загрузит. Вычисления же ленивые

Сергей
16.10.2018
15:18:19
?

Renarde
16.10.2018
15:18:54
Нужно jdbc селект в скобки обернуть и подать как аргумент в table

Pavel
16.10.2018
15:19:20
table = sqlContext.read().format("jdbc").options().load table.createOrReplaceTempView("people") spark.sql("select * from people where people.gender == 'm'").take(5)

Daria
16.10.2018
15:21:13
да, но учтите если есть поля типы которые спарк не сможет сопоставить надо закастить в селекте

Например тип intervals teradata спарк не сьест

Renarde
16.10.2018
15:21:44
Например ты пишешь: spark.read.jdbc(table=“(select * from table where ...) as X)”)

Сергей
16.10.2018
15:22:12
Спасибо!

Renarde
16.10.2018
15:22:32
Например тип intervals teradata спарк не сьест
Сьест если кастомный диалект написать и подложить!)

Daria
16.10.2018
15:22:43
да так тоже можно

Artem
17.10.2018
09:34:38
у тебя в логах и написано что на всех нодах такая хрень
Забавно, но хардкод в hosts решил те редкие проблемы резолвинга )

Ivan
17.10.2018
12:52:28
Простите, вопрос начинающего: загружаю dataframe из .parq. Делаю .describe() выдаёт ошибку 143. Причём на одном столбце работает : .describe(column) . Пробовал увеличить partitions не помогает. Есть какие идеи ?

Aleksey
17.10.2018
13:33:46
Добрый вечер. Тоже вопрос начинающего, есть hadoop cluster учебный, 1 NN + 5 DN. Необходимо - перевести его под управление yarn, чтобы поизучать yarn прежде всего. Праивльно ли понимаю, что будет достаточно сконфигурировать yarn так чтобы RM был на NN, а NM и AM на дата нодах ? В проме используется такое или для RM всё таки лучше отдельную машину ?

Stanislav
17.10.2018
13:34:29
Так и используется

Stanislav
17.10.2018
13:37:13
Google
Aleksey
17.10.2018
13:38:56
Понял, спасибо. Попробую

Sergey
17.10.2018
13:41:03
И как загрузка? И мощность обоих машинок
а я суеверный, не буду отвечать )

Nikita Blagodarnyy
17.10.2018
13:42:10
Есть трехузловая архитектура, на 2 NN, на 3 RM, везде JN и звередержатель

Nikita Blagodarnyy
17.10.2018
13:44:11
Я такого никогда ещё не делал, вот сейчас первый раз попробую

Sergey
17.10.2018
13:44:20
о, а у вас Kafka на ПРОДе отдельно от HDFS DataNode/YARN NM?

Nikita Blagodarnyy
17.10.2018
13:45:54
У нас?

Sergey
17.10.2018
13:46:41
ну, вы со Станиславом вроде коллеги?

Stanislav
17.10.2018
13:50:03
о, а у вас Kafka на ПРОДе отдельно от HDFS DataNode/YARN NM?
Да, выделенные ноды изза специфики нагрузки

Nikita Blagodarnyy
17.10.2018
13:50:12
Может быть, но мы незнакомы и прод у нас точно разный. У нас картофки пока нет на проде.

Из-за ненадобности

Andrew
18.10.2018
12:30:35
Всем. привет. Есть какие-то бест-практис касательно бекапов данных хранимых в hdfs? Там просто оченьго много мельких файлов, сейчас уже почти 500к, а будет больше. Если делать distcp на S3 это очень медленно, примерно 1000 файлов в час. Крайне неприемлемая скорость.

Страница 169 из 182