我写了一个spark的worldcount程序,使用local模式在eclipse里可以调试通过,也可以通过maven打包后java -jar命令运行:
SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount");
sparkConf.setMaster("local");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
JavaRDD lines = ctx.textFile("file:///c:/sparkTest.txt");
JavaRDD words = lines.flatMap(new FlatMapFunction() {
@Override
public Iterable call(String s) {
return Arrays.asList(SPACE.split(s));
}
});
System.out.println(words.count());
我原以为要切换到standalone client模式时,只要把第二行改成
sparkConf.setMaster("spark://localhost:7077");
就行了,但是我又看了一些文章,文章里说spark程序必须使用spark-submit命令或者使用另一个包含sparklauncher的Java程序来运行,这样直接Java -jar方式是不行的。这不是和我在local模式里观察到的现象矛盾吗?还是说local模式是一种特例,其他的standalone client模式,standalone cluster模式和yarn模式都只能用spark-submit命令运行?用了spark-submit命令,就没法在eclipse里调试了,会很不方便?