第一个Spark程序

一、Eclipse安装Scala插件
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

猜你喜欢

转载自margaret0071.iteye.com/blog/2384895