2016-03-22 3 views
0

У меня возникли проблемы с настройкой искровой среды для чтения из файла в кешках HDFS.Использование Spark для получения файла HDFS, защищенного Kerberos

На данный момент я попытался сделать следующее:

def ugiDoAs[T](ugi: Option[UserGroupInformation])(code: => T) = ugi match { 
case None => code 
case Some(u) => u.doAs(new PrivilegedExceptionAction[T] { 
    override def run(): T = code 
}) 
} 
val sparkConf = defaultSparkConf.setAppName("file-test").setMaster("yarn-client") 

val sc = ugiDoAs(ugi) {new SparkContext(conf)} 

val file = sc.textFile("path") 

Он терпит неудачу в точке создания искрового контекста, со следующей ошибкой:

Exception in thread "main" org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at org.apache.hadoop.yarn.ipc.RPCUtil.instantiateException(RPCUtil.java:53) 
at org.apache.hadoop.yarn.ipc.RPCUtil.unwrapAndThrowException(RPCUtil.java:104) 
at org.apache.hadoop.yarn.api.impl.pb.client.ApplicationClientProtocolPBClientImpl.getClusterMetrics(ApplicationClientProtocolPBClientImpl.java:155) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) 

кто-нибудь получило простое пример о том, как включить искру для подключения к картеризованной позиции HDFS?

Я знаю, что искра должна быть в режиме Пряжа, чтобы она могла работать, но метод входа в систему, похоже, не работает. Хотя я знаю, что объект User Group Information (ugi) действителен, поскольку я использовал его для подключения к ZK в том же объекте и HBase.

ответ

0

Confirm конф/spark-env.sh настроен или:

export HADOOP_CONF_DIR=/etc/hadoop/conf

Это должно указывать на клиента конфиги для кластера.

0

Ошибка подразумевает, что клиент пытается говорить с HDFS, не прошедшим проверку подлинности, и это отклоняется. убедитесь, что UGI действительно безопасен, зарегистрировав его и сделав некоторый базовый код файловой системы hadoop перед тем, как начать искру; что должно облегчить отслеживание