5

spark-ec2 スクリプトによる aws ec2 クラスターのセットアップがあります。

Zeppelin でローカルに scala コードを記述し、クラスターで (マスター経由で) 実行できるように、Zeppelin を構成したいと考えています。さらに、s3 バケットにアクセスできるようにしたいと考えています。

このガイドこの別のガイドに従いましたが、zeppelin からクラスターに scala コードを実行できないようです。

Zeppelinをローカルにインストールしました

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

私のセキュリティ グループは、AmazonEC2FullAccess と AmazonS3FullAccess の両方に設定されていました。

Zeppelin Webapp の spark インタープリターのプロパティを local[*] からspark://.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

親切なユーザーからのアドバイス (StackOverflow にまだ投稿されていないもの) がある場合は、お知らせください。

4

1 に答える 1

2

ほとんどの場合、IP アドレスが Spark クラスターへの接続をブロックされています。そのエンドポイントを指しているスパークシェルを起動することで試すことができます(または単にtelnetすることさえできます)。これを修正するには、AWS アカウントにログインしてファイアウォール設定を変更します。正しいホストを指していない可能性もあります(特定のボックスを削除したと仮定していますspark://.us-west-2.compute.amazonaws.com:7077が、そうでない場合は.us-west-2に少しあるはずです)。そのマシンに ssh 接続し、 netstat --tcp -l -n を実行して、リッスンしているかどうかを確認できます (または、単に ps aux |grep java を実行して、Spark が実行されているかどうかを確認できます)。

于 2015-09-14T07:59:35.603 に答える