2015-09-14 15 views
5

Ho una configurazione del cluster aws ec2 mediante lo script spark-ec2.Come utilizzare Zeppelin per accedere al cluster aws spark-ec2 e ai bucket s3

Mi piacerebbe configurare Zeppelin in modo che sia possibile scrivere codice scala in locale su Zeppelin ed eseguirlo sul cluster (tramite master). Inoltre vorrei poter accedere ai miei bucket s3.

Ho seguito this guide e this other one tuttavia non riesco a eseguire codice scala da zeppelin al mio cluster.

ho installato Zeppelin a livello locale con

mvn install -DskipTests -Dspark.version=1.4.1 -Dhadoop.version=2.7.1 

I miei gruppi di protezione sono stati fissati per entrambi AmazonEC2FullAccess e AmazonS3FullAccess.

ho modificato le proprietà scintilla interprete sul Zeppelin Webapp a scintilla: //.us-west-2.compute.amazonaws.com: 7077 dal locale [*]

  1. Quando ho testare

    sc 
    

    nell'interprete, ricevo questo errore

    java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.thrift.transport.TSocket.open(TSocket.java:182) at 
    
  2. Quando provo a modificare "conf/zeppelin-site.xml" per cambiare la mia porta su 8082, nessuna differenza.

NOTA: mi sarebbe poi anche voler accedere ai miei secchi S3 con qualcosa di simile:

sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "xxx") 
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey","xxx") 
val file = "s3n://<<bucket>>/<<file>>" 
val data = sc.textFile(file) 
data.first 

se tutti gli utenti benevoli hanno qualche consiglio (che non è stato già pubblicato sul StackOverflow) si prega di fammi sapere!

risposta

2

Molto probabilmente il tuo indirizzo IP non è in grado di connettersi allo spark cluster. Puoi provare lanciando la conchiglia che punta a quel punto finale (o anche solo alla telnet). Per risolvere il problema puoi accedere al tuo account AWS e modificare le impostazioni del firewall. E 'anche possibile che non sia puntato sull'host corretto (presumo che tu abbia rimosso la casella specifica da spark://.us-west-2.compute.amazonaws.com:7077 ma se non ci dovrebbe essere un po' per il .us-west-2). Puoi provare ssh'ing su quella macchina ed eseguire netstat --tcp -l -n per vedere se è in ascolto (o anche solo ps aux | grep java per vedere se Spark è in esecuzione).

+1

Avevi ragione! Avevo semplicemente bisogno di aprire la porta nei miei gruppi di sicurezza EC2. Grazie! – liber

+0

grande, felice di aiutare :) – Holden