2014-11-01 17 views
5

Tôi đang cố gắng kết nối từ ứng dụng đến cụm độc lập của Spark. Tôi muốn làm điều này trên một máy. tôi chạy server của chương trình độc lập bằng lệnh:Không thể kết nối từ ứng dụng với cụm độc lập

bash start-master.sh  

Sau đó, tôi chạy một công nhân bằng lệnh:

bash spark-class org.apache.spark.deploy.worker.Worker spark://PC:7077 -m 512m 

(Tôi phân bổ 512 MB cho nó).

Tại giao diện web thạc sĩ:

http://localhost:8080 

tôi nhìn thấy, mà chủ và người lao động đang chạy.

Sau đó, tôi cố gắng kết nối từ ứng dụng đến cụm, với lệnh sau:

JavaSparkContext sc = new JavaSparkContext("spark://PC:7077", "myapplication"); 

Khi tôi chạy ứng dụng nó bị rơi với thông báo lỗi sau:

4/11/01 22:53:26 INFO client.AppClient$ClientActor: Connecting to master spark://PC:7077...   
    14/11/01 22:53:26 INFO spark.SparkContext: Starting job: collect at App.java:115 
    14/11/01 22:53:26 INFO scheduler.DAGScheduler: Got job 0 (collect at App.java:115)   with 2 output partitions (allowLocal=false) 
    14/11/01 22:53:26 INFO scheduler.DAGScheduler: Final stage: Stage 0(collect at   App.java:115) 
    14/11/01 22:53:26 INFO scheduler.DAGScheduler: Parents of final stage: List() 
    14/11/01 22:53:26 INFO scheduler.DAGScheduler: Missing parents: List() 
    14/11/01 22:53:26 INFO scheduler.DAGScheduler: Submitting Stage 0     (ParallelCollectionRDD[0] at parallelize at App.java:109), which has no missing parents 
    14/11/01 22:53:27 INFO scheduler.DAGScheduler: Submitting 2 missing tasks from   Stage 0 (ParallelCollectionRDD[0] at parallelize at App.java:109) 
    14/11/01 22:53:27 INFO scheduler.TaskSchedulerImpl: Adding task set 0.0 with 2 tasks 
    14/11/01 22:53:42 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted   any resources; check your cluster UI to ensure that workers are   registered and have sufficient memory 
    14/11/01 22:53:46 INFO client.AppClient$ClientActor: Connecting to master   spark://PC:7077... 
    14/11/01 22:53:57 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted   any resources; check your cluster UI to ensure that workers are   registered and have sufficient memory 
    14/11/01 22:54:06 INFO client.AppClient$ClientActor: Connecting to master   spark://PC:7077... 
    14/11/01 22:54:12 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted   any resources; check your cluster UI to ensure that workers are   registered and have sufficient memory 
    14/11/01 22:54:26 ERROR cluster.SparkDeploySchedulerBackend: Application has been   killed. Reason: All masters are unresponsive! Giving up. 
    14/11/01 22:54:26 INFO scheduler.TaskSchedulerImpl: Removed TaskSet 0.0, whose   tasks have all completed, from pool 
    14/11/01 22:54:26 INFO scheduler.DAGScheduler: Failed to run collect at   App.java:115 
    Exception in thread "main" 14/11/01 22:54:26 INFO scheduler.TaskSchedulerImpl:   Cancelling stage 0 
    org.apache.spark.SparkException: Job aborted due to stage failure: All masters are   unresponsive! Giving up. 
     at   org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAnd  IndependentStages(DAGScheduler.scala:1033) 
     at   org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1017  ) 
     at   org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1015  ) 
     at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) 
     at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47) 
     at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1015) 
     at   org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.s  cala:633) 
     at   org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.s  cala:633) 
     at scala.Option.foreach(Option.scala:236) 
     at   org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:633) 
     at   org.apache.spark.scheduler.DAGSchedulerEventProcessActor$$anonfun$receive$2.applyOrElse(DAG  Scheduler.scala:1207) 
     at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498) 
     at akka.actor.ActorCell.invoke(ActorCell.scala:456) 
     at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237) 
     at akka.dispatch.Mailbox.run(Mailbox.scala:219) 
     at   akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386) 
     at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
     at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
     at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
     at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 
    14/11/01 22:54:26 INFO handler.ContextHandler: stopped   o.e.j.s.ServletContextHandler{/metrics/json,null} 
    14/11/01 22:54:26 INFO handler.ContextHandler: stopped   o.e.j.s.ServletContextHandler{/stages/stage/kill,null} 
    14/11/01 22:54:26 INFO handler.ContextHandler: stopped   o.e.j.s.ServletContextHandler{/,null} 
    14/11/01 22:54:26 INFO handler.ContextHandler: stopped   o.e.j.s.ServletContextHandler{/static,null} 
    14/11/01 22:54:26 INFO handler.ContextHandler: stopped   o.e.j.s.ServletContextHandler{/executors/json,null} 
    14/11/01 22:54:26 INFO handler.ContextHandler: stopped   o.e.j.s.ServletContextHandler{/executors,null} 
    14/11/01 22:54:26 INFO handler.ContextHandler: stopped   o.e.j.s.ServletContextHandler{/environment/json,null} 

Bất cứ ý tưởng gì đang xảy ra?

P.S. Tôi đang sử dụng phiên bản được tạo sẵn của Spark - spark-1.1.0-bin-hadoop2.4.

Cảm ơn bạn.

Trả lời

3

Đảm bảo rằng cả công nhân độc lập và trình điều khiển Spark được kết nối với chính Spark trên địa chỉ chính xác được liệt kê trong giao diện người dùng web/được in trong thông điệp nhật ký khởi động của nó. Spark sử dụng Akka cho một số thông tin trên máy bay điều khiển của nó và Akka có thể thực sự cầu kỳ về tên máy chủ, vì vậy chúng cần khớp chính xác.

Có một số tùy chọn để kiểm soát tên máy chủ/giao diện mạng mà trình điều khiển và chương trình chính sẽ liên kết. Có lẽ tùy chọn đơn giản nhất là đặt biến môi trường SPARK_LOCAL_IP để kiểm soát địa chỉ mà Master/Driver sẽ liên kết. Xem http://databricks.gitbooks.io/databricks-spark-knowledge-base/content/troubleshooting/connectivity_issues.html để biết tổng quan về các cài đặt khác ảnh hưởng đến ràng buộc địa chỉ mạng.

+0

Thanx Man để phản hồi nhanh! Vấn đề rất giống với bài đăng này 'http: //stackoverflow.com/questions/25682836/standalone-spark-cluster-cant-submit-job-programmatically-java-io-invalidcl? Rq = 1', bên cạnh pom. Tôi tìm thấy xml, rằng một số kho của Spark có các phiên bản khác nhau (có lẽ tôi đã không cẩn thận khi thêm một depencies khác vào pom). Tôi đã sửa chúng, và sau đó tôi đã tải xuống phiên bản được xây dựng trước - của Spark - spark-1.1.0-bin-hadoop1, vì có máy khách 1. * được chỉ định trong pom. – dimson

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