22

Tôi đã cố gắng hết sức để thử apache spark. Câu hỏi của tôi là cụ thể hơn để kích hoạt công việc tia lửa. Here Tôi đã đăng câu hỏi về việc tìm hiểu công việc về tia lửa. Sau khi nhận được công việc bẩn thỉu tôi chuyển sang yêu cầu của tôi.Kích hoạt công việc tạo tia lửa với REST

Tôi có điểm kết thúc REST nơi tôi hiển thị API để kích hoạt Công việc, tôi đã sử dụng Spring4.0 để thực hiện Rest. Bây giờ, tôi đã nghĩ đến việc triển khai Jobs là Service vào mùa xuân, nơi tôi sẽ gửi Job theo chương trình, có nghĩa là khi điểm cuối được kích hoạt, với các tham số đã cho, tôi sẽ kích hoạt công việc. Tôi hiện có ít tùy chọn thiết kế.

  • Tương tự như công việc dưới đây, tôi cần duy trì một số Công việc được gọi bởi lớp trừu tượng có thể là JobScheduler.

    /*Can this Code be abstracted from the application and written as 
        as a seperate job. Because my understanding is that the 
    Application code itself has to have the addJars embedded 
    which internally sparkContext takes care.*/ 
    
    SparkConf sparkConf = new SparkConf().setAppName("MyApp").setJars(
    new String[] { "/path/to/jar/submit/cluster" }) 
    .setMaster("/url/of/master/node"); 
        sparkConf.setSparkHome("/path/to/spark/"); 
    
         sparkConf.set("spark.scheduler.mode", "FAIR"); 
         JavaSparkContext sc = new JavaSparkContext(sparkConf); 
         sc.setLocalProperty("spark.scheduler.pool", "test"); 
    
        // Application with Algorithm , transformations 
    
  • Mở rộng điểm trên có nhiều phiên bản lệnh được xử lý bởi dịch vụ.

  • Hoặc người nào khác sử dụng Máy chủ công việc Spark để thực hiện việc này.

Đầu tiên, tôi muốn biết giải pháp tốt nhất trong trường hợp này, thực hiện khôn ngoan và cũng mở rộng quy mô khôn ngoan là gì.

Lưu ý: Tôi đang sử dụng cụm độc lập từ tia lửa. vui lòng trợ giúp.

+0

Tôi đã thêm thẻ Spring for Apache Hadoop vào câu hỏi này. Spring Batch Admin cung cấp một API REST để quản lý và khởi chạy các công việc và tôi tin rằng Spring for Apache Hadoop cung cấp khả năng khởi chạy các công việc Spark từ Spring Batch ... –

+0

@MichaelMinella: cảm ơn vì đề nghị này, tôi chắc chắn sẽ xem xét nó. – chaosguru

Trả lời

6

Chỉ cần sử dụng Spark JobServer https://github.com/spark-jobserver/spark-jobserver

Có rất nhiều điều cần xem xét với thực hiện một dịch vụ, và Spark JobServer đã nhất trong số họ bao phủ rồi. Nếu bạn tìm thấy những thứ không đủ tốt, sẽ dễ dàng thực hiện yêu cầu và thêm mã vào hệ thống của họ thay vì phát minh lại mã đó từ đầu

+0

Tôi cũng nghĩ về cách tiếp cận tương tự, Bây giờ sẽ kiểm tra tương tự. Cảm ơn bạn đã trả lời. – chaosguru

+0

Bạn cũng nên cân nhắc trước khi sử dụng Spark Job Server - nó không hỗ trợ Spark mới hơn 2.0. Hơn nữa, nhìn vào lịch sử cam kết của họ - nó không phải là siêu hoạt động –

25

Hóa ra Spark có API REST ẩn để gửi công việc, kiểm tra trạng thái và giết.

Kiểm tra ví dụ đầy đủ ở đây: http://arturmkrtchyan.com/apache-spark-hidden-rest-api

+2

Âm thanh thực sự thú vị, tìm thấy này https://issues.apache.org/jira/secure/attachment/12696651/stable-spark-submit-in-standalone-mode-2 -4-15.pdf vì vậy nó có nghĩa là tia lửa chính nó đã tiếp xúc với tính năng này? – chaosguru

+0

Afaik họ đã thêm nó từ v1.4. Nhưng họ vẫn chưa quảng bá công khai. –

+0

@ArturMkrtchyan tùy chọn thú vị, cảm ơn bạn! Điều gì xảy ra nếu tôi sẽ gửi hai ứng dụng cùng một lúc thông qua API Spark REST? –

2

Đây là một khách hàng tốt mà bạn có thể thấy hữu ích: https://github.com/ywilkof/spark-jobs-rest-client

+0

bạn không biết liệu nó có thể laucnh hai ứng dụng simulateneously thông qua khách hàng đó? –

+0

Có, có thể. Máy khách chỉ là một trình bao bọc xung quanh các cuộc gọi HTTP tới trình tạo tia lửa của bạn. Vì vậy, nếu thiết lập của bạn có thể xử lý thì nó sẽ có thể. –

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