Tôi muốn để xác định tất cả các đặc tính của Spark trong một tập tin cấu hình, và sau đó tải tập tin cấu hình khi chạy.Xác định một tập tin cấu hình bên ngoài cho Apache Spark
~~~~~~~~~~ Sửa ~~~~~~~~~~~
Hóa ra tôi đã khá bối rối về cách đi về việc này. Bỏ qua phần còn lại của câu hỏi này. Để xem một giải pháp đơn giản (trong Java Spark) về cách tải một tệp .properties vào một cụm tia lửa, hãy xem câu trả lời của tôi bên dưới.
câu hỏi ban đầu dưới đây chỉ cho mục đích tham khảo.
~~~~~~~~~~~~~~~~~~~~~~~~
Tôi muốn
- file cấu hình khác nhau tùy thuộc vào môi trường (địa phương, AWS)
- tôi muốn để xác định các thông số ứng dụng cụ thể
là một ví dụ đơn giản, chúng ta hãy tưởng tượng tôi muốn lọc dòng trong một tập tin đăng nhập tùy thuộc vào một chuỗi . Dưới đây tôi có một chương trình Java Spark đơn giản đọc dữ liệu từ một tệp và lọc nó tùy thuộc vào chuỗi mà người dùng xác định. Chương trình lấy một đối số, tệp nguồn đầu vào.
Java Spark Mã
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
public class SimpleSpark {
public static void main(String[] args) {
String inputFile = args[0]; // Should be some file on your system
SparkConf conf = new SparkConf();// .setAppName("Simple Application");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> logData = sc.textFile(inputFile).cache();
final String filterString = conf.get("filterstr");
long numberLines = logData.filter(new Function<String, Boolean>() {
public Boolean call(String s) {
return s.contains(filterString);
}
}).count();
System.out.println("Line count: " + numberLines);
}
}
Config file
tập tin cấu hình được dựa trên https://spark.apache.org/docs/1.3.0/configuration.html và có vẻ như:
spark.app.name test_app
spark.executor.memory 2g
spark.master local
simplespark.filterstr a
Vấn đề
tôi thực hiện các ứng dụng sử dụng các đối số sau đây:
/path/to/inputtext.txt --conf /path/to/configfile.config
Tuy nhiên, điều này không làm việc, kể từ khi ngoại lệ
Exception in thread "main" org.apache.spark.SparkException: A master URL must be set in your configuration
bị ném. Đối với tôi có nghĩa là tập tin cấu hình không được tải.
Câu hỏi của tôi là:
- Điều gì là sai với thiết lập của tôi?
- Xác định các thông số cụ thể của ứng dụng trong tập tin cấu hình tia lửa thực hành tốt?
Nó không hiệu quả với tôi. Vẫn nhận được FileNotFoundException. – nish
bạn có đang đặt tệp ở định dạng hdfs không? Bạn đang sử dụng aws? – Alexander
Có, tôi đặt tệp ở định dạng hdfs. Có, tôi đang sử dụng aws EMR – nish