.cn down lib text 环境变量配置 ride 解压 apt
1、Java 下 Spark 开发环境搭建(from http://www.cnblogs.com/eczhou/p/5216918.html)
1.1、jdk 安装
安装 oracle 下的 jdk,我安装的是 jdk 1.7,安装完新建系统环境变量 JAVA_HOME,变量值为 "C:\Program Files\Java\jdk1.7.0_79",视自己安装路劲而定。
同时在系统变量 Path 下添加 C:\Program Files\Java\jdk1.7.0_79\bin 和 C:\Program Files\Java\jre7\bin。
1.2 spark 环境变量配置
去 http://spark.apache.org/downloads.html 网站下载相应 hadoop 对应的版本,我下载的是 spark-1.6.0-bin-hadoop2.6.tgz,spark 版本是 1.6,对应的 hadoop 版本是 2.6
解压下载的文件,假设解压 目录为:D:\spark-1.6.0-bin-hadoop2.6。将 D:\spark-1.6.0-bin-hadoop2.6\bin 添加到系统 Path 变量,同时新建 SPARK_HOME 变量,变量值为:D:\spark-1.6.0-bin-hadoop2.6
1.3 hadoop 工具包安装
spark 是基于 hadoop 之上的,运行过程中会调用相关 hadoop 库,如果没配置相关 hadoop 运行环境,会提示相关出错信息,虽然也不影响运行,但是这里还是把 hadoop 相关库也配置好吧。
1.3.1 去下载 hadoop 2.6 编译好的包 https://www.barik.net/archive/2015/01/19/172716/,我下载的是 hadoop-2.6.0.tar.gz,
1.3.2 解压下载的文件夹,将相关库添加到系统 Path 变量中:D:\hadoop-2.6.0\bin;同时新建 HADOOP_HOME 变量,变量值为:D:\hadoop-2.6.0
1.4 eclipse 环境
直接新建 java 工程,将 D:\spark-1.6.0-bin-hadoop2.6\lib 下的 spark-assembly-1.6.0-hadoop2.6.0.jar 添加到工程中就可以了。
2、Java 写 Spark WordCount 程序'
- package cn.spark.study;
- import java.util.Arrays;
- import org.apache.spark.SparkConf;
- import org.apache.spark.api.java.JavaPairRDD;
- import org.apache.spark.api.java.JavaRDD;
- import org.apache.spark.api.java.JavaSparkContext;
- import org.apache.spark.api.java.function.FlatMapFunction;
- import org.apache.spark.api.java.function.Function2;
- import org.apache.spark.api.java.function.PairFunction;
- import org.apache.spark.api.java.function.VoidFunction;
- import scala.Tuple2;
- public class WordCount {
- public static void main(String[] args) {
- //创建 SparkConf对象,对程序进行必要的配置SparkConf conf =new SparkConf()
- .setAppName("WordCount").setMaster("local");
- //通过conf创建上下文对象JavaSparkContext sc =new JavaSparkContext(conf);
- //创建初始RDDJavaRDD lines = sc.textFile("D://spark.txt");
- //----用各种Transformation算子对RDD进行操作-----------------------------------------JavaRDD words = lines.flatMap(newFlatMapFunction() {
- private static final longserialVersionUID = 1L;
- @Override
- publicIterable call(String line) throws Exception {
- // TODO Auto-generated method stub
- returnArrays.asList(line.split(" "));
- }
- });
- JavaPairRDD pairs = words.mapToPair(newPairFunction() {
- private static final longserialVersionUID = 1L;
- @Override
- publicTuple2 call(String word) throws Exception {
- // TODO Auto-generated method stub
- return newTuple2(word,1);
- }
- });
- JavaPairRDD wordCounts = pairs.reduceByKey(newFunction2() {
- private static final longserialVersionUID = 1L;
- @Override
- publicInteger call(Integer v1, Integer v2)throws Exception {
- // TODO Auto-generated method stub
- returnv1 + v2;
- }
- });
- //----用一个 action 算子触发job-----------------------------------------wordCounts.foreach(newVoidFunction>() {
- @Override
- public voidcall(Tuple2 wordCount) throws Exception {
- // TODO Auto-generated method stubSystem.out.println(wordCount._1 + " appeared " + wordCount._2 + " times");
- }
- });
- }
Spark 例子
来源: http://www.bubuko.com/infodetail-2033487.html