6

Il mio programma scintilla su EMR è costantemente questo errore:In Apache Spark. Come impostare le variabili di ambiente worker/executor?

Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 
    at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:421) 
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128) 
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148) 
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149) 
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121) 
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) 
    at org.jets3t.service.impl.rest.httpclient.RestStorageService.performRequest(RestStorageService.java:334) 
    at org.jets3t.service.impl.rest.httpclient.RestStorageService.performRequest(RestStorageService.java:281) 
    at org.jets3t.service.impl.rest.httpclient.RestStorageService.performRestHead(RestStorageService.java:942) 
    at org.jets3t.service.impl.rest.httpclient.RestStorageService.getObjectImpl(RestStorageService.java:2148) 
    at org.jets3t.service.impl.rest.httpclient.RestStorageService.getObjectDetailsImpl(RestStorageService.java:2075) 
    at org.jets3t.service.StorageService.getObjectDetails(StorageService.java:1093) 
    at org.jets3t.service.StorageService.getObjectDetails(StorageService.java:548) 
    at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.retrieveMetadata(Jets3tNativeFileSystemStore.java:172) 
    at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103) 
    at org.apache.hadoop.fs.s3native.$Proxy8.retrieveMetadata(Unknown Source) 
    at org.apache.hadoop.fs.s3native.NativeS3FileSystem.getFileStatus(NativeS3FileSystem.java:414) 
    at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1398) 
    at org.apache.hadoop.fs.s3native.NativeS3FileSystem.create(NativeS3FileSystem.java:341) 
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906) 
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:887) 
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:784) 

ho fatto qualche ricerca e ho scoperto che questa autenticazione può essere disattivata in situazione di bassa sicurezza, impostando variabile d'ambiente:

com.amazonaws.sdk.disableCertChecking=true 

ma posso solo impostarlo con spark-submit.sh --conf, che influisce solo sul driver, mentre la maggior parte degli errori sono sui lavoratori.

C'è un modo per propagarli ai lavoratori?

Grazie mille.

risposta

3

appena imbattuto qualcosa nel Spark documentation:

spark.executorEnv.[EnvironmentVariableName]

Add the environment variable specified by EnvironmentVariableName to the Executor process. The user can specify multiple of these to set multiple environment variables.

Quindi nel tuo caso, mi piacerebbe impostare l'opzione di configurazione Spark spark.executorEnv.com.amazonaws.sdk.disableCertChecking a true e vedere se questo aiuta.

+0

Grazie mille! Ho appena scoperto che nella documentazione ufficiale, non so perché è stato ignorato prima dell'opzione – tribbloid

+0

facilmente trascurata. Questo mi ha salvato un po 'di mal di testa, grazie. –

+0

Ho bisogno della stessa cosa ma sul 'worker': andare a vedere se fosse disponibile .. – javadba

Problemi correlati