说明
为了运行spark程序我搭建了一个虚拟机的集群,但是我8G的内存被吃满了。。。别说跑个程序,就是基本运行都卡的不行。。。。。最后,我突然知道的本地也是可以运行spark的,,,,,唉 费虚拟机呢么大劲干嘛。。。。
SO,如果你只是学习spark的基础知识,本地完全够用。还快速!!!!
搭建Windows的spark环境
- 下载hadoop 地址:http://archive.apache.org/dist/hadoop/core/ 各个版本都有,我下载的2.7.1
- 下载winutils 地址:https://github.com/steveloughran/winutils 这个是一个大神做的
- java的版本1.7+
下载的hadoop解压到一个目录即可,然后把下载的winutils的bin目录 复制到hadoop的bin目录,如果提示文件已存在,直接覆盖!
注意:一定要版本对应!!!!
运行spark
环境搭建好我们就可以运行spark的代码了,
- 搭建maven的java项目,在pom.xml添加
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.1</version>
</dependency>
- 示例代码:
// 指定hadoop的目录
System.setProperty("hadoop.home.dir","F:\\hadoop-2.7.1");
SparkConf conf = new SparkConf().setMaster("local").setAppName("TestSpark");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<Integer> intRDD = sc.parallelize(Lists.newArrayList(1,2,3,4,5));
JavaRDD<Integer> relRDD = intRDD.map(new Function<Integer, Integer>() {
public Integer call(Integer integer) throws Exception {
return integer+10;
}
});
relRDD.foreach(new VoidFunction<Integer>() {
public void call(Integer integer) throws Exception {
System.out.println("relRDD---->:"+integer);
}
});
- 结果: