如何使用Zeppelin访问aws spark-ec2集群和s3存储桶

lib*_*ber 5 amazon-s3 amazon-ec2 apache-spark apache-zeppelin

我有一个由spark-ec2脚本设置的aws ec2集群.

我想配置Zeppelin,以便我可以在Zeppelin上本地编写scala代码并在集群上运行(通过master).此外,我希望能够访问我的s3桶.

我按照本指南另一个,但我似乎无法从zeppelin运行scala代码到我的集群.

我在本地安装了Zeppelin

mvn install -DskipTests -Dspark.version=1.4.1 -Dhadoop.version=2.7.1
Run Code Online (Sandbox Code Playgroud)

我的安全组设置为AmazonEC2FullAccess和AmazonS3FullAccess.

我在Zeppelin Webapp上编辑了spark解释器属性,火花://.us-west-2.compute.amazonaws.com:7077 来自本地[*]

  1. 我测试的时候

    sc
    
    Run Code Online (Sandbox Code Playgroud)

    在翻译中,我收到了这个错误

    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 
    
    Run Code Online (Sandbox Code Playgroud)
  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
Run Code Online (Sandbox Code Playgroud)

如果有任何仁慈的用户有任何建议(尚未在StackOverflow上发布),请告诉我!

Hol*_*den 2

您的 IP 地址很可能被阻止连接到 Spark 集群。您可以尝试启动指向该端点的 Spark-shell(甚至只是远程登录)。要修复此问题,您可以登录您的 AWS 帐户并更改防火墙设置。也有可能它没有指向正确的主机(我假设您从中删除了特定的框spark://.us-west-2.compute.amazonaws.com:7077,但如果没有,应该有一些 .us-west-2 的内容)。您可以尝试 ssh 到该计算机并运行 netstat --tcp -l -n 来查看它是否正在侦听(或者甚至只是 ps aux |grep java 来查看 Spark 是否正在运行)。