2015-09-14 40 views
5

Tôi có thiết lập cụm aws ec2 bằng tập lệnh spark-ec2.Cách sử dụng Zeppelin để truy cập vào cụm aws spark-ec2 và s3 Xô

Tôi muốn định cấu hình Zeppelin để tôi có thể viết mã scala cục bộ trên Zeppelin và chạy nó trên cụm (thông qua trình chủ). Hơn nữa, tôi muốn có thể truy cập vào các thùng s3 của tôi.

Tôi đã theo dõi this guidethis other one tuy nhiên tôi dường như không thể chạy mã scala từ zeppelin đến cụm của tôi.

Tôi đã cài đặt Zeppelin tại địa phương với

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

nhóm bảo mật của tôi đã được thiết lập cho cả hai AmazonEC2FullAccess và AmazonS3FullAccess.

Tôi chỉnh sửa các thuộc tính spark thông dịch viên trên Zeppelin webapp để spark: //.us-west-2.compute.amazonaws.com: 7077 từ địa phương [*]

  1. Khi tôi kiểm tra

    sc 
    

    trong phiên dịch, tôi nhận được lỗi này

    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. Khi tôi cố chỉnh sửa "conf/zeppelin-site.xml" để thay đổi cổng thành 8082, không có sự khác biệt.

LƯU Ý: tôi cuối cùng cũng sẽ muốn truy cập xô s3 của tôi với một cái gì đó như:

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 

nếu bất kỳ người dùng nhân từ có lời khuyên nào (mà không phải là đã được đăng trên StackOverflow) xin vui lòng cho tôi biết!

Trả lời

2

Rất có thể địa chỉ IP của bạn bị chặn kết nối với cụm tia lửa của bạn. Bạn có thể thử bằng cách khởi chạy trình bao spark-shell tại điểm kết thúc đó (hoặc thậm chí chỉ cần telnetting). Để khắc phục, bạn có thể đăng nhập vào tài khoản AWS của mình và thay đổi cài đặt tường lửa. Nó cũng có thể là nó không phải là chỉ vào máy chủ chính xác (Tôi giả sử bạn loại bỏ các hộp cụ thể từ spark://.us-west-2.compute.amazonaws.com:7077 nhưng nếu không phải có một chút cho .us-west-2). Bạn có thể thử ssh'ing với máy đó và chạy netstat --tcp -l -n để xem nếu nó nghe (hoặc thậm chí chỉ ps aux | grep java để xem Spark đang chạy).

+1

Bạn đã đúng! Tôi chỉ cần mở cổng trong Nhóm bảo mật EC2 của mình. Cảm ơn bạn! – liber

+0

tuyệt vời, rất vui được trợ giúp :) – Holden

Các vấn đề liên quan