1.下载Scala插件
下载地址:http://scala-ide.org/download/prev-stable.html
选择与自己Eclipse相应版本的插件下载
2.下载之后解压缩,可见如下文件:
3.进入eclipse的安装目录
有一个dropins目录,新建scala目录,并将解压后的所有文件copy至scala目录
4.重启eclipse,可见可以新建scala项目
以上,插件安装完成
二、新建scala项目
并新建一个scala object,代码如下:
import org.apache.spark.SparkConf; import org.apache.spark.SparkContext object SimpleApp { def main(args: Array[String]) { if (args.length != 2) { println("error : too few arguments"); sys.exit(); } val conf = new SparkConf().setAppName("Simple Application"); val filePath = args(0); val sc = new SparkContext(conf); val file = sc.textFile(filePath, 2).cache(); val counts = file.flatMap { line => line.split(" ") }.map { word => (word, 1) }.reduceByKey(_ + _); counts.saveAsTextFile(args(1)); } }
三、导入jar包
1.新建一个user library
2.从spark的安装目录下的jars文件夹内,copy出所有的jar包至user library
3.“Configure Build Path...” 导入这个user library
四、运行程序
配置运行参数如下图,并点击“Run as”--“Scala application”运行这段代码
五、可能遇见的错误
1.【java.lang.UnsupportedClassVersionError】版本不一致出错
原因:JDK版本不一致,注意Spark依赖的JDK版本
解决办法:选择与Spark匹配的JDK
2.【A master URL must be set in your configuration】
从提示中可以看出找不到程序运行的master,此时需要配置环境变量。
传递给spark的master url可以有如下几种:
local 本地单线程
local[K] 本地多线程(指定K个内核)
local[星号] 本地多线程(指定所有可用内核)
spark://HOST:PORT 连接到指定的 Spark standalone cluster master,需要指定端口。
mesos://HOST:PORT 连接到指定的 Mesos 集群,需要指定端口。
yarn-client客户端模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR。
yarn-cluster集群模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR。
这里,我们配置虚拟机的启动参数“-Dspark.master=local”,指示本程序本地单线程运行,再次运行即可,如下图:
或者在代码中指定:
val conf = new SparkConf().setAppName("Simple Application").setMaster("local");
3.【(null) entry in command string: null chmod 0700】
原因:由于Spark的设计和开发目标是在linux环境中,因此在Windows单机环境(没有hadoop集群的支撑)中运行会遇到winutils的问题,为了解决这个问题,我们需要安装winutils.ext
解决办法:
1)在C盘新建目录:C:/hadoop/bin
2)将winutils.exe,libwinutils.lib拷贝至C:/hadoop/bin
3)配置环境变量HADOOP_HOME=C:\hadoop\ 或者直接在代码中指定hadoop.home,SimpleApp中增加如下代码:
System.setProperty("hadoop.home.dir","C:\\hadoop" );
附
winutils.exe,libwinutils.lib下载地址:http://pan.baidu.com/s/1pLNVdc3