2016-03-22 29 views
0

Kıvılcım ortamımı bir kerberleştirilmiş HDFS dosya konumundan okumak için ayarlama sorunlarım var.Kerberos tarafından korunan bir HDFS dosyasını almak için Spark'i kullanma

anda

aşağıdaki yapmaya çalıştık:

Aşağıdaki hata ile, Spark Bağlamını yaratma noktasında başarısız
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) 

kimse basit var Has kıvılcımlanmış bir HDFS konumuna bağlanmak için kıvılcımın nasıl kullanıldığına dair örnek

Bu kıvılcımın çalışmasını sağlamak için İplik modunda olması gerektiğini biliyorum, ancak oturum açma yöntemi bu açıdan çalışmıyor gibi görünüyor. Kullanıcı Grup Bilgisi (ugi) nesnesinin, aynı nesne ve HBase'de ZK'ye bağlanmak için kullanmış olduğumdan geçerli olduğunu bilmeme rağmen.

cevap

0

onayla conf/spark-env.sh yapılandırılmış veya: Kümenizin Bu istemci yapılandırmasında göstermelidir

export HADOOP_CONF_DIR=/etc/hadoop/conf

.

0

Hata, istemcinin kimliği doğrulanmamış HDFS ile konuşmaya çalıştığını ve reddedildiğini ima ediyor. UGI'nin oturum açarak gerçekten güvende olduğundan emin olun ve kıvılcım çıkmadan önce bazı temel dosya sistemi kodlarını yapın; Bu,

izini daha kolay takip etmelidir