Tôi đã tạo một cụm nút 3 (1 chủ, 2 công nhân) Apache Spark
trong AWS. Tôi có thể gửi công việc cho cụm từ chủ, tuy nhiên tôi không thể làm cho nó hoạt động từ xa.Kết nối với một tổng thể Spark từ xa - Java/Scala
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val logFile = "/usr/local/spark/README.md" // Should be some file on your system
val conf = new SparkConf().setAppName("Simple Application").setMaster("spark://ec2-54-245-111-320.compute-1.amazonaws.com:7077")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println(s"Lines with a: $numAs, Lines with b: $numBs")
sc.stop()
}
}
tôi có thể nhìn thấy từ các bậc thầy:
Spark Master at spark://ip-171-13-22-125.ec2.internal:7077
URL: spark://ip-171-13-22-125.ec2.internal:7077
REST URL: spark://ip-171-13-22-125.ec2.internal:6066 (cluster mode)
vì vậy khi tôi thực hiện SimpleApp.scala
từ máy tính cục bộ của tôi, nó không thành công để kết nối với Spark Master
sự:
2017-02-04 19:59:44,074 INFO [appclient-register-master-threadpool-0] client.StandaloneAppClient$ClientEndpoint (Logging.scala:54) [] - Connecting to master spark://ec2-54-245-111-320.compute-1.amazonaws.com:7077...
2017-02-04 19:59:44,166 WARN [appclient-register-master-threadpool-0] client.StandaloneAppClient$ClientEndpoint (Logging.scala:87) [] - Failed to connect to spark://ec2-54-245-111-320.compute-1.amazonaws.com:7077
org.apache.spark.SparkException: Exception thrown in awaitResult
at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:77) ~[spark-core_2.10-2.0.2.jar:2.0.2]
at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:75) ~[spark-core_2.10-2.0.2.jar:2.0.2]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) ~[scala-library-2.10.0.jar:?]
at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59) ~[spark-core_2.10-2.0.2.jar:2.0.2]
Tuy nhiên, tôi biết nó sẽ làm việc nếu tôi đã thiết lập tổng thể để local
, bởi vì sau đó nó sẽ chạy cục bộ. Tuy nhiên, tôi muốn khách hàng của tôi kết nối với chủ từ xa này. Làm thế nào tôi có thể thực hiện điều đó? Cấu hình Apache trông tệp. Tôi thậm chí có thể telnet đến DNS và cổng công cộng đó, tôi cũng đã định cấu hình /etc/hosts
với DNS công cộng và tên máy chủ cho từng trường hợp EC2
. Tôi muốn có thể gửi công việc cho chủ nhân từ xa này, tôi đang thiếu gì?
tôi đã làm chính xác điều đó và nó vẫn không làm việc :-( – cybertextron
Abaghel, tôi có thể tạo ra một trường hợp duy nhất trong AWS và chỉ chỉnh sửa spark-env? – cybertextron
Bạn có thể đăng dấu vết ngăn xếp đầy đủ của mình không? Bạn đang sử dụng cùng một phiên bản của tia lửa để kết nối? Vui lòng kiểm tra http://stackoverflow.com/questions/38559597/failed-to- connect-to-spark-masterinvalidclassexception-org-apache-spark-rpc-rp – abaghel