Выполнение кода в приложении JAVA в AWS EMR Master в режиме клиента - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь запустить искровой код на главном узле AWS EMR. Но не удалось настроить контекст на главном узле.

 SparkConf conf = new SparkConf().setAppName("testapp");
 JavaSparkContext sc = new JavaSparkContext(conf);

Я пробовал setMaster ('пряжа') и без мастера. Но не в состоянии заставить его работать.

Возможно ли даже запустить код Spark на главном узле как часть Java-приложения. У меня запущено приложение Spring Boot на главном узле кластера AWS EMR.

Если я запускаю это на другом экземпляре ec2, как мне настроить его на работу в кластере EMR?

@RequestMapping(
path = "/test/api",
method = RequestMethod.GET
)
public Integer testApi(
final HttpServletResponse response
) {

    SparkConf conf = new SparkConf().setAppName("testApp");

    JavaSparkContext sc = new JavaSparkContext(conf);

    JavaRDD<String> lines = sc.textFile("test.txt");
    JavaRDD<String> numbers = lines.flatMap(line -> Arrays.asList(line.split("\\s+")).iterator());

    JavaRDD<String> validNumbers = numbers.filter(number -> !number.isEmpty());

    JavaRDD<Integer> intNumbers = validNumbers.map(number -> Integer.valueOf(number));

    return intNumbers.reduce((x, y) -> x + y);
}
...