Size: a a a

2019 October 18

A

Alex in Data Engineers
Но дист кеш это когда ты закидываешь с локал фс и оно должно быть доступно в класспасе позже

Работает с путями на хосте, заливает на хдфс,  потом корректно прописывается в класспас и локализует
источник

A

Alex in Data Engineers
В моем примере после того как у тебя на руках config, то можешь попытаться сразу взять эти пути, добавить свой путь и сделать обратно

conf.setStrings
источник

A

Alex in Data Engineers
Дальше создавать job context и тд
источник

A

Alex in Data Engineers
Пути для апмастера сформируются дальше корректно
источник

A

Alex in Data Engineers
Nikita Blagodarnyy
это вообще законно?
А в чем проблема :)
источник

A

Alex in Data Engineers
Ну и плюс посмотришь что в выводе этого списка все что ты прислал на скриншоте исключая твой jar
источник

A

Alex in Data Engineers
Важно: NodeManager ничего не добавляет в путь при старте, все переменные и весь класспасс формируется в момент сабмита, поэтому если ты поменял этот параметр в UI кластера, то ничего не произойдёт для твоего приложения, пока ты не подсунешь ему новый xml обновленный
источник

N

Nikita Blagodarnyy in Data Engineers
а откуда по дефолту берется java.class.path на старте?
источник

A

Alex in Data Engineers
Ну вот оттуда что я описал
источник

A

Alex in Data Engineers
Основные замены что делает ноде менеджер это сетает pwd и пути отдаёт от дисткеша
источник

A

Alex in Data Engineers
Но дист кеш как работает:
Проходит локализация по разным путям, потом в те которые ты указал он скидывает симлинки
источник

A

Alex in Data Engineers
И в итоге в pwd у тебя вроде как твои ресурсы и доступны
источник

A

Alex in Data Engineers
В твоём скрине он сформирован из:

{{PWD}}<CPS>вагон либ из переменной что выше описал<CPS>{{PWD}}/slice-maker.jar

Это все сетается в переменную
{{CLASSPATH}}

Обращаю внимание что строки вот с этими скобками и тд так и передаются

Внутренний формат коммуникации для нужных переменных

Дальше ноде менеджер из описания джобы берет эти строки и делает замены

CPS заменяется корректным разделителям для нужной ос (; на Window, : Linux)

PWD это локализованный путь к ярн апликейщену на диске

CLASSPATH пойдёт в джавовый класспас

После этого запуск команды которая пришла

Не обязательно там будет java :)
источник

N

Nikita Blagodarnyy in Data Engineers
Поклон и лучи уважения
источник

N

Nikita Blagodarnyy in Data Engineers
Пойду пробовать
источник

N

Nikita Blagodarnyy in Data Engineers
Alex
А в чем проблема :)
Откуда тогда заполнился java.class.path, если HADOOP_CLASSPATH пустой?
источник

A

Alex in Data Engineers
Ещё раз: все эти переменные приходят от того кто запускал задачу
источник

A

Alex in Data Engineers
Неймнода в этом плане шлангом прикидывается :) мне сказали - я сделала
источник

A

Alex in Data Engineers
Поэтому сформировав неправильные пути на клиенте не получится ничего запустить
источник

A

Alex in Data Engineers
Сам был сразу не сообразил почему на hdp кластере оно ищет пути от cdh

А оказалось конфиги не те сервису сунул
источник