在AWS EMR Master上的JAVA应用程序上以客户端模式运行代码

时间:2018-10-29 23:48:19

标签: java amazon-web-services apache-spark amazon-ec2 amazon-emr

我正在尝试在AWS EMR主节点上运行Spark代码。但是无法在主节点上配置上下文。

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

我尝试了setMaster('yarn'),也没有使用master。但是无法使其运行。

甚至有可能作为Java App的一部分在主节点上运行Spark代码。我在AWS EMR集群的主节点上运行了Spring Boot应用程序。

如果我在另一个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);
}

0 个答案:

没有答案