Eclipse创建Spark的WordCount工程

环境:Linux16.0.4,Spark-2.1.0,


准备工作:

先在用户主目录下面创建一个test.txt文件,文件内容为:

Apple Apple Orange
Banana Grape Grape

然后:

(1)先创建一个scala工程,工程名为sparkwordcount,并新建一个scala object的.scala格式文件,文件名为wordcount。


(2)在工程下面新建一个libs文件下,将spark-2.1.0安装目录下面的jars文件夹下面的所有jar包拷贝到libs文件夹下面。


(3)选中libs文件夹下面的所有jar包,执行右键Build Path->Configure Build Path...


(4)添加以下代码到工程的wordcount.scala源文件中。


import org.apache.log4j.Logger
import org.apache.log4j.Level
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import scala.util.Try
import scala.util.control.Exception.Catch


object wordcount {
  def main(args:Array[String]):Unit=
  {
    Logger.getLogger("org").setLevel(Level.OFF)
    System.setProperty("spark.ui.showConsoleProgress", "false");
    println("开始运行wordcount")
    val sc=new SparkContext(new SparkConf().setAppName("wordcount").setMaster("local[1]"))
    println("开始读取文本文件...")
    val textFile=sc.textFile("file:/home/zhang/test.txt")
    println("开始创建RDD...")
    val countsRDD=textFile.flatMap(f=>f.split(" ")).map(word=>(word,1))
    .reduceByKey(_+_)
    println("开始保存到文本文件...")
    try{
      countsRDD.saveAsTextFile("file:/home/zhang/output")
      println("已经存盘成功")
    }
    catch {
      case t: Exception => println("输出目录已经存在,请先删除原目录") // TODO: handle error
    }
  }
}

(5)在Eclipse工具栏点击Run->Run Configurations..

在New Configurations设置界面中,按照下图的所示填入Name,Project,MainClass



然后点击应用,再点击Run。点击Run过后,有可能会报如下错误信息:

开始运行wordcount
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Exception in thread "main" java.lang.IllegalArgumentException: System memory 253427712 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.
	at org.apache.spark.memory.UnifiedMemoryManager$.getMaxMemory(UnifiedMemoryManager.scala:216)
	at org.apache.spark.memory.UnifiedMemoryManager$.apply(UnifiedMemoryManager.scala:198)
	at org.apache.spark.SparkEnv$.create(SparkEnv.scala:330)
	at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:174)
	at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:257)
	at org.apache.spark.SparkContext.<init>(SparkContext.scala:432)
	at wordcount$.main(wordcount.scala:15)
	at wordcount.main(wordcount.scala)


看到这个错误信息不必管它。

(6)将sparkwordcount工程导出到Jar文件包

点击Eclipse工具栏的File->Export...->Java->Jar File,然后点击Next。


导出到用户主目录,文件名为wordcount.jar

(7)如果在主目录下面有output文件夹则需要先删除文件夹

(8)输入命令:spark-submit --driver-memory 2g --master local[1] --class wordcount wordcount.jar,则可以看到如下显示:


表面命令已经执行完成,执行结果保存在output目录下面。

(7)cd到output文件下面,查看输出结果

zhang@Desktop1:~$ cd output/
zhang@Desktop1:~/output$ ls
part-00000  _SUCCESS
zhang@Desktop1:~/output$ cat part-00000 
(Grape,2)
(Orange,1)
(Apple,2)
(Banana,1)
zhang@Desktop1:~/output$ 


如果是要在hadoop YARN上运行spark的wordcount。则需要先启动hadoop集群,

执行start-all.sh启动集群。然后执行

zhang@Desktop1:~$ spark-submit --driver-memory 2g --class wordcount  --master yarn-client wordcount.jar

则输出以下信息:


Warning: Master yarn-client is deprecated since 2.0. Please use master "yarn" with specified deploy mode instead.
开始运行wordcount
开始读取文本文件...
开始创建RDD...
开始保存到文本文件...
已经存盘成功
zhang@Desktop1:~$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值