2016-12-16 16 views
0

Я пытаюсь заставить Scalding работать над Zeppelin при использовании YARN. Я выполнил шаги в документах here, чтобы построить интерпретатор и настроить переопределение класса. Когда я запускаю в локальном режиме, код выполняется правильно. Однако, когда я бегу на моем кластере через ПРЯЖИ мои работы завершаться:ClassNotFoundException с Scalding на Zeppelin, управляемый на YARN

Error: java.lang.ClassNotFoundException: cascading.CascadingException 

или

Error: java.lang.ClassNotFoundException: cascading.tuple.TupleException 

Что еще более странно для меня, что я могу пойти в Цеппелин и выполнить:

import cascading.tuple.TupleException 
import cascading.CascadingException 

И оба, похоже, не имеют проблем с поиском этих классов. Только когда я пытаюсь на самом деле использовать ошпаривание (на YARN), например, загружать данные в типизированный канал и демпинг, я получаю ClassNotFoundException. Любые идеи о том, как отлаживать или что исправить?

ответ

1

Похоже, что каскадные банки не распространяются на кластер YARN. Добавьте «zeppelin/interpreter/scalding/*» в свойство args.string интерпретатора ошпаривания.

Вот args.string мы используем:

-libjars/дома/дирижабль пользователя/дирижабль/переводчик/обжигающий/,/дома/дирижабль пользователей/развернуть-расслоение-201608111417/ЛИЭС/ - Dscalding.reducer.estimator.classes = com.twitter.scalding.reducer_estimation.InputSizeReducerEstimator -Delephantbird.use.combine.input.format = истина -Delephantbird.combine.split.size = 134217728 --hdfs --repl

tmpjars содержит банки, которые распределены кластеру YARN. Вы можете просмотреть его содержимое с помощью следующей команды: