Size: a a a

2019 October 18

N

Nikita Blagodarnyy in Data Engineers
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.hbase.mapreduce.TableOutputFormat not found
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$3.call(MRAppMaster.java:554)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$3.call(MRAppMaster.java:534)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.callWithJobClassLoader(MRAppMaster.java:1802)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.createOutputCommitter(MRAppMaster.java:534)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.serviceInit(MRAppMaster.java:311)
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$6.run(MRAppMaster.java:1760)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.initAndStartAppMaster(MRAppMaster.java:1757)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1691)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.hbase.mapreduce.TableOutputFormat not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2596)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getOutputFormatClass(JobContextImpl.java:223)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$3.call(MRAppMaster.java:551)
... 11 more
Caused by: java.lang.ClassNotFoundException: Class org.apache.hadoop.hbase.mapreduce.TableOutputFormat not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2500)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2594)
... 13 more
2019-10-18 12:48:21,048 INFO [main] org.apache.hadoop.util.ExitUtil: Exiting with status 1: org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.hbase.mapreduce.TableOutputFormat not found
источник

A

Alex in Data Engineers
@nblagodarnyy slice-maker это твоё бут приложение?
источник

N

Nikita Blagodarnyy in Data Engineers
Ага
источник

A

Alex in Data Engineers
А можешь вытянуть это все из бут приложения просто в консольное?

Ранер + зависимости
источник

A

Alex in Data Engineers
Просто в логе что ты показал точно оно не полетит в том виде, ну не найдёт оно классы
источник

A

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

GP

Grigory Pomadchin in Data Engineers
да; мне кажется что класслоадер прсто действительно не находит классы т.к. он другой в этой аппке / собрано не так
источник

A

Alex in Data Engineers
Собрано то так
источник

A

Alex in Data Engineers
Я выше статью кидал кишки джар для спринг бута
источник

A

Alex in Data Engineers
Там все весело, и просто добавив бут jar получишь лишь пару бутстрап классов, остальных не найдёт
источник

N

Nikita Blagodarnyy in Data Engineers
На so ещё советуют другой сборщик юзать и шейдить пути
источник

N

Nikita Blagodarnyy in Data Engineers
Но я боюсь, что от этого кишки спринг батча могут поехать
источник

GP

Grigory Pomadchin in Data Engineers
а зачем шейдить?
источник

A

Alex in Data Engineers
Да, это что сразу сказал, чтобы все оказалось внутри и он не извращалс с  класлоадером
источник

A

Alex in Data Engineers
Бут же делался чтобы запуститься и сервать запросы, один джар
источник

A

Alex in Data Engineers
Многие оптимизации внутри под это
источник

A

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

N

Nikita Blagodarnyy in Data Engineers
Кароч похоже плохая идея была вставлять сабмит в степ Batch-джоба
источник

A

Alex in Data Engineers
Ну или плохая идея использовать бут ;)
источник

N

Nikita Blagodarnyy in Data Engineers
Получается, при сабмите уже не используется spring boot url class loader?
источник