2015-09-14 80 views
5

我有一個由spark-ec2腳本設置的aws ec2羣集。如何使用Zeppelin訪問aws spark-ec2羣集和s3存儲桶

我想配置Zeppelin,以便我可以在Zeppelin上本地編寫scala代碼並在集羣上運行它(通過master)。此外,我想能夠訪問我的S3桶。

我跟着this guidethis other one但是我似乎無法運行從zeppelin到我的羣集的scala代碼。

我在本地安裝齊柏林與

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

我的安全組設置爲兩種AmazonEC2FullAccess和AmazonS3FullAccess。

我編輯上齊柏林的webapp火花解釋性質火花://.us-west-2.compute.amazonaws.com:7077 從本地[*]

  1. 當我在解釋測試出

    sc 
    

    ,我收到此錯誤

    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. 當我嘗試編輯「conf/zeppelin-site.xml」將端口更改爲8082時,沒有任何區別。

注:我最終也想訪問我的S3桶的東西,如:

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 

如果有仁慈的用戶有任何意見(這是不是已經貼在計算器上),請讓我知道!

回答

2

很可能您的IP地址被阻止連接到您的火花集羣。您可以嘗試啓動指向該終點的火花外殼(或者甚至只是telnetting)。要修復它,您可以登錄您的AWS賬戶並更改防火牆設置。它也有可能不是指向正確的主機(我假設你從spark://.us-west-2.compute.amazonaws.com:7077中刪除了特定的方框,但是如果沒有的話,那麼應該有一個.us-west-2)。您可以嘗試ssh'ing到該機器並運行netstat --tcp -l -n以查看它是否正在偵聽(甚至只是ps aux | grep java以查看Spark是否正在運行)。

+1

你是對的!我只需要在我的EC2安全組中打開端口。謝謝! – liber

+0

太棒了,很高興幫助:) – Holden