2016-11-27 21 views
2

Я пытаюсь развернуть искровое приложение в кластеризованный кластер, который контролируется YARN. Версия Spark 1.5.0-cdh5.5.2.«Токенция делегирования может быть выпущена только с кеберосом или веб-аутентификацией» при перезапуске контекста искра после простоя

Я столкнулся с странным исключением, когда останавливал SparkContext после более чем 10 секунд бездействия и инициализации нового.

Я попытался сделать что-то похожее на то, что сделал разработчик this, и явно указал адрес hads namenode, но это не помогло.

Что более сбивает с толку, что все работает нормально, если я вообще не перезагружаю SparkContext или не перезагружаю его менее чем за 10 секунд после того, как последняя команда была выполнена в этом искровом контексте.

Как я могу это исправить?

Здесь минимизировано случай, когда проблема встретилась:

package demo; 

import org.apache.spark.SparkConf; 
import org.apache.spark.api.java.JavaSparkContext; 


public class App 
{ 
    public static void main(String[] args) throws Exception { 

     SparkConf sparkConf = new SparkConf(); 
     sparkConf.setAppName("demo"); 
     sparkConf.set("spark.yarn.access.namenodes", "hdfs://hdp:8020"); 

     JavaSparkContext jsc = new JavaSparkContext(sparkConf); 

     int waiting_time = 10; 
     System.out.println("Waiting time: " + Integer.toString(waiting_time)); 
     Thread.sleep(waiting_time * 1000); 

     jsc.stop(); 

     jsc = new JavaSparkContext(sparkConf); // "Delegation token ..." exception here 
    } 

} 

Стек след, когда возникает исключение:https://gist.github.com/anonymous/18e15010010069b119aa0934d6f42726

искровым подать команду:

spark-submit --principal [email protected] --keytab mp.keytab --master yarn-client --class demo.App demo.jar 
+0

похоже, что это исключение не является основной причиной. попробуйте проверить журналы NameNode, чтобы узнать, что является реальной проблемой. – AdamSkywalker

+0

Я провел некоторое расследование и выяснил, что во время построения SparkContext вызывается имяNode.getDelegationToken, даже если токен делегирования уже представлен в списке токенов текущего зарегистрированного пользователя в объекте класса UserGroupInforation , Проблема не возникает, когда время ожидания до создания нового контекста составляет менее 10 секунд, так как соединение rpc с namenode просто не сбрасывается из-за свойства ipc.client.connection.maxidletime. –

+0

Является ли это ошибкой или я не могу использовать SparkContext таким образом? –

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^