2016-05-15 17 views
7

Có một tính năng gần đây (Mùa xuân 2015) dường như nhằm mục đích cho phép gửi một tác vụ tia lửa theo lập trình.Cách sử dụng khả năng gửi tia lửa có lập trình

Đây là JIRA https://issues.apache.org/jira/browse/SPARK-4924

Tuy nhiên có sự không chắc chắn (và đếm tôi cũng) về làm thế nào để thực sự sử dụng các tính năng này. Dưới đây là những ý kiến ​​cuối cùng trong jira:

enter image description here

Khi yêu cầu tác giả thực sự của tác phẩm này để tiếp tục giải thích đó là "tìm trong các tài liệu API".

"Tài liệu người dùng" là tài liệu API Spark.

Tác giả không cung cấp thêm chi tiết và dường như cảm thấy toàn bộ vấn đề là tự giải thích. Nếu bất kỳ ai cũng có thể kết nối các dấu chấm ở đây: cụ thể - nơi trong tài liệu API là khả năng Spark Gửi mới hơn được mô tả - nó sẽ được đánh giá cao.

Dưới đây là một số thông tin tôi đang tìm kiếm -Pointers như sau:

  • gì khả năng đã được thêm vào api spark
  • Làm thế nào để chúng ta sử dụng chúng
  • Bất kỳ ví dụ/khác tài liệu liên quan và/hoặc mã

cập nhật các SparkLauncher đề cập đến trong các câu trả lời được chấp nhận không khởi động một ứng dụng đơn giản dưới điều kiện tầm thường (master = local [*]). Nó vẫn còn để được nhìn thấy như thế nào có thể sử dụng nó sẽ được trên một cụm thực tế. Sau khi thêm một tuyên bố in vào mã liên kết:

println ("tung ra .. và chờ đợi ..") spark.waitFor()

Chúng tôi thấy:

tung ra .. và chờ đợi ..

Đây có lẽ là một bước tiến nhỏ. Sẽ cập nhật câu hỏi này khi tôi chuyển sang một môi trường nhóm thực.

Trả lời

7

Nhìn vào chi tiết của pull request, có vẻ như chức năng được cung cấp bởi lớp SparkLauncher, được mô tả trong API docs here.

public class SparkLauncher extends Object

Launcher cho Spark ứng dụng.

Sử dụng lớp này để khởi động ứng dụng Spark theo chương trình. Lớp sử dụng mẫu trình xây dựng để cho phép khách hàng định cấu hình ứng dụng Spark và khởi chạy nó như một tiến trình con.

Tài liệu API khá nhỏ, nhưng tôi tìm thấy bài đăng trên blog cung cấp số worked example (mã cũng có sẵn trong GitHub repo). Tôi đã sao chép một phiên bản đơn giản của ví dụ dưới đây (chưa được kiểm tra) trong trường hợp các liên kết cũ đi:

import org.apache.spark.launcher.SparkLauncher 

object Launcher extends App { 
    val spark = new SparkLauncher() 
    .setSparkHome("/home/user/spark-1.4.0-bin-hadoop2.6") 
    .setAppResource("/home/user/example-assembly-1.0.jar") 
    .setMainClass("MySparkApp") 
    .setMaster("local[*]") 
    .launch(); 
    spark.waitFor(); 
} 

Xem thêm:

+0

Cảm ơn bạn đã nhảy vào đây. Bạn đã thử sử dụng lớp đó trực tiếp chưa? Việc sử dụng nó là thách thức trong việc thiết lập môi trường đúng cách. Đó là sự hiểu biết của tôi khi đọc JIRA rằng các biến chứng có thể đã bớt đi. Chỉ cần xem tài liệu API là * không * sẽ hữu ích. Tôi sẽ upvote bạn ở đây - vì đã làm điều này bit đào. – javadba

+0

Cập nhật OP để giải thích thêm những gì đang tìm kiếm. – javadba

+0

Xem cập nhật của bạn bằng SparkLauncher. Hãy thử nó ngay bây giờ. – javadba

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