使用Eclipse构建Spark Java集成开发环境

最近在eclipse构建spark java开发环境走了很多坑,把步骤记录下来。

第一步、从spark官网上下载spark安装包,我下载的为spark-1.5.1-bin-hadoop2.6



直接解压缩即可,在环境变量path中配置为你解压缩的路径+\bin,我的path为D:\spark-1.5.1-bin-hadoop2.6\bin,在cmd中输入spark-shell



第二步、在eclipse中新建一个工程,添加依赖jar包(在解压缩spark文件夹的lib目录下,我的为D:\spark-1.5.1-bin-hadoop2.6\lib)。

注意:从spark 2.0开始没有这个jar包,需要将lib文件夹下的所有jar包添加。

第三步、使用java 8的lambda表达式编写经典的wordcount。

  1. import java.util.Arrays;
  2. import org.apache.spark.SparkConf;
  3. import org.apache.spark.api.java.JavaSparkContext;
  4. import scala.Tuple2;
  5. public class test {
  6. public static void main(String[] args) {
  7. SparkConf conf = new SparkConf().setMaster("local[4]").setAppName("word count");
  8. JavaSparkContext sc = new JavaSparkContext(conf);
  9. sc
  10. .textFile(test.class.getResource("").toString()+"README.md")
  11. .flatMap(x -> {
  12. return Arrays.asList(x.split(""));
  13. })
  14. .mapToPair(x -> {
  15. return new Tuple2<>(x,1);})
  16. .reduceByKey((x,y) ->{
  17. return x+y;})
  18. .foreach(x ->
  19. {
  20. System.out.println(x._1+"出现了"+x._2);
  21. });
  22. sc.close();
  23. }
  24. }

运行会报错failed to locate the winutils binary in the hadoop binary path,并不影响结果,解决方法去下载对应版本的hadoop binary,我们这里去下载hadoop-2.6.0,添加环境变量path:D:\hadoop-2.6.0\bin,再次运行成功,结果截图一部分为: