Size: a a a

2019 December 12

AZ

Anton Zadorozhniy in Data Engineers
Михаил Королев
Всем привет, у кого-то есть позитивный (или наоборот - негативный, т.е. использовал и бросил потому что...) опыт использования Atlas (2.x)? Я смотрел на 1.0 - там было уныло, 2.0 с лету не взлетел, думаю - стоит ли тратить энергию.
Задача - иметь место, где (теоретически) можно видеть метаданные по тому, что есть в Hadoop
вам нужен просто список таблиц в хайве, или необходим еще линедж? и какие сущности кроме таблиц хотите трэкать (датасеты, топики, коллекции, базы/таблицы за рамками хайва)?
источник

МК

Михаил Королев in Data Engineers
Не обязательно хайв, кстати. Обязательны метаданные и чтобы можно было создавать свои ( как в атласе)
источник

AL

Artem Likhomanenko in Data Engineers
Запускаю oozie job. Job повисает на  map дойдя до 95% в логах пишет Heart beat постоянно. По ресурсам, из 19Гб памяти используется 16 по виртуальным процессорам из 16 используется 2. Куда ещё можно посмотреть?
источник

AL

Artem Likhomanenko in Data Engineers
Добавлял всякие yarn.nodemanadger.aux-services и yarn.nodemanager.aux-service.mapreduce_shuffle.class, maximum-am-resource-percent = 0.6
источник

AL

Artem Likhomanenko in Data Engineers
Пробовал перемещать задачи в дефолтную очередь
источник

AL

Artem Likhomanenko in Data Engineers
Фишка в том, что oozie получается запускает два map'а. Один это видимо сам workflow, а второй, это как раз мое. Запускаю с помощью скрипта hadoop jar mapreduceindexertool.jar
источник

AZ

Anton Zadorozhniy in Data Engineers
Михаил Королев
Не обязательно хайв, кстати. Обязательны метаданные и чтобы можно было создавать свои ( как в атласе)
к сожалению в части расширения модели метаданных в опенсорсе нет ничего кроме Атласа, у всяких разработок от лифта убера и нетфликса все прибито  гвоздями, так что либо учиться готовить Атлас, либо писать самим (это не так сложно кстати), либо платить деньги за хороший коммерческий продукт
источник

A

Alex in Data Engineers
Artem Likhomanenko
Фишка в том, что oozie получается запускает два map'а. Один это видимо сам workflow, а второй, это как раз мое. Запускаю с помощью скрипта hadoop jar mapreduceindexertool.jar
Да, один аппмастер, второй уже логика в мэппере

Наследие от первого хадупа и мэпредьюса

Тут люди говорили что в свежем узи уже пофиксили это
источник

AL

Artem Likhomanenko in Data Engineers
Alex
Да, один аппмастер, второй уже логика в мэппере

Наследие от первого хадупа и мэпредьюса

Тут люди говорили что в свежем узи уже пофиксили это
Пишут, что раз логика запускается через скрипт, то там нет энвайренментов нужных от того такой косяк. И чё то с правами надо ещё пошукать.
источник

AL

Artem Likhomanenko in Data Engineers
Но это завтра буду ещё ковырять. А новую версию не могу, так как клоудера и УЗИ в ее поставке. Пока "новую" клоудеру не ставили
источник

AZ

Anton Zadorozhniy in Data Engineers
Alex
Да, один аппмастер, второй уже логика в мэппере

Наследие от первого хадупа и мэпредьюса

Тут люди говорили что в свежем узи уже пофиксили это
да, с пятого узи нормальный YARN Application Master
источник

A

Alex in Data Engineers
Artem Likhomanenko
Пишут, что раз логика запускается через скрипт, то там нет энвайренментов нужных от того такой косяк. И чё то с правами надо ещё пошукать.
Там можно много чего делать без проблем, все равно сторонний процесс запускает мастера по параметрам из воркфлой

Точно так же можно туда параметры скормить и мастер подхватит.
источник

A

Alex in Data Engineers
Но вашу боль понимаю :)
источник

AL

Artem Likhomanenko in Data Engineers
Alex
Там можно много чего делать без проблем, все равно сторонний процесс запускает мастера по параметрам из воркфлой

Точно так же можно туда параметры скормить и мастер подхватит.
А он куда то у себе на ноду ярна копирует скрипт и либы из hdfs?
источник

AL

Artem Likhomanenko in Data Engineers
Как там происходит делегация контекста или как это правильно назвать?
источник

A

Alex in Data Engineers
я как то рассказывал про этапы локализации в любой yarn задаче :) закинуть скрипты и проставить энв переменные ничем для app master не сложнее чем потом аппмастер сделает это для контейнера
источник

AL

Artem Likhomanenko in Data Engineers
Alex
я как то рассказывал про этапы локализации в любой yarn задаче :) закинуть скрипты и проставить энв переменные ничем для app master не сложнее чем потом аппмастер сделает это для контейнера
Таки ещё бы знать чё ему проставлять))) хотя бы пните в верном направлении где почитать. Это дока по клаудере? Там можно список энв посмотреть или это конкретно ярн/хадуп? Что то я уже запутался.

Скрипт загустеет хадуп который делегирует ярн и это все стоит под клаудерой
источник

OI

Oleg Ilinsky in Data Engineers
Привет!
Вопрос про Spark. Есть датасет с json'ами.
В нём есть поле, типа dict, его ключи: 1,2,3,4... (очень много). У каждого ключа есть вложенная структура. Так вот эти вложенные структуры одинаковые. Можно ли как-то сделать аналог explode, но не для массива, а для такого словаря?

схема выглядит как-то так:
|-- survey_data: struct (nullable = true)
|    |-- 127: struct (nullable = true)
|    |    |-- answer: string (nullable = true)
|    |    |-- answer_id: long (nullable = true)
|    |    |-- id: long (nullable = true)
|    |    |-- question: string (nullable = true)
|    |    |-- section_id: long (nullable = true)
|    |    |-- shown: boolean (nullable = true)
|    |    |-- type: string (nullable = true)
|    |-- 144: struct (nullable = true)
|    |    |-- answer: string (nullable = true)
|    |    |-- answer_id: long (nullable = true)
|    |    |-- id: long (nullable = true)
|    |    |-- parent: long (nullable = true)
|    |    |-- question: string (nullable = true)
|    |    |-- section_id: long (nullable = true)
|    |    |-- shown: boolean (nullable = true)
|    |    |-- type: string (nullable = true)
|    |-- 145: struct (nullable = true)
|    |    |-- answer: string (nullable = true)
|    |    |-- answer_id: long (nullable = true)
|    |    |-- id: long (nullable = true)
|    |    |-- parent: long (nullable = true)
|    |    |-- question: string (nullable = true)
|    |    |-- section_id: long (nullable = true)
|    |    |-- shown: boolean (nullable = true)
|    |    |-- type: string (nullable = true)
|    |-- 146: struct (nullable = true)
|    |    |-- answer: string (nullable = true)
|    |    |-- answer_id: long (nullable = true)
|    |    |-- id: long (nullable = true)
|    |    |-- parent: long (nullable = true)
|    |    |-- question: string (nullable = true)
|    |    |-- section_id: long (nullable = true)
|    |    |-- shown: boolean (nullable = true)
|    |    |-- type: string (nullable = true)
|    |-- 147: struct (nullable = true)
|    |    |-- answer: string (nullable = true)
|    |    |-- answer_id: long (nullable = true)
|    |    |-- id: long (nullable = true)
|    |    |-- parent: long (nullable = true)
|    |    |-- question: string (nullable = true)
|    |    |-- section_id: long (nullable = true)
|    |    |-- shown: boolean (nullable = true)
|    |    |-- type: string (nullable = true)
|    |-- 148: struct (nullable = true)
|    |    |-- answer: string (nullable = true)
|    |    |-- answer_id: long (nullable = true)
|    |    |-- id: long (nullable = true)
|    |    |-- parent: long (nullable = true)
|    |    |-- question: string (nullable = true)
|    |    |-- section_id: long (nullable = true)
|    |    |-- shown: boolean (nullable = true)
|    |    |-- type: string (nullable = true)

.....
источник

OI

Oleg Ilinsky in Data Engineers
Типа чтобы 127, 144, 145, 146, 147,148 были, допустим, полем quest_id, а не ключоём вложенной структуры.
источник

OI

Oleg Ilinsky in Data Engineers
Можно, конечно, процессить просто на питоне, но чёт как-то не хочется)
источник