嗨,他正在网上和亚马逊文档中搜索有关如何在aws上的现有emr纱线簇上运行火花作业的一般知识。
我被困在下面。我已经设置了本地[*]火花群集进行测试;现在,我想在AWS Emr上对其进行测试。
到目前为止,我已经在aws上创建了emr集群,并且找不到运行以下代码的文档。如果
"spark.master.url" is set as local[*]
类代码:
public class SparkLocalImpl implements DataMapReduce{
private static SparkConf conf;
private JavaSparkContext sparkContext;
private void createContext(){
conf = new SparkConf().setMaster(env.getProperty("spark.master.url"));//rest is default
sparkContext = new JavaSparkContext(conf);
}
public List<String> getMapReducedData(List<String> str){
createContext();
JavaRDD<String> rdd = sparkContext.parallelize(str);
return rdd.map(eachStr->customMapFunction(eachStr))
.collect()
.stream()
.flatMap(x -> x.stream())
.collect(Collectors.toList());
}
public List<String> customMapFunction(String str){
List<String> strMappedList= new ArrayList();
//do something
return strMappedList;
}
}
有人可以告诉我我在做什么错吗?
答案 0 :(得分:0)
AWS EMR不支持独立的火花群集模式。它支持集群和客户端模式。
但是,尝试使用AWS Glue。查看您的代码,它看起来像简单的ETL工作。此外,AWS胶确实支持
GlueContext
是SparkContext
您可以找到此处提到的内容。
https://aws.amazon.com/premiumsupport/knowledge-center/emr-submit-spark-job-remote-cluster
还要检查emr上的Apache livy