关于搭建spark集群的方法请参考:
Hadoop集群搭建http://blog.csdn.net/u013468917/article/details/50965530
Spark集群搭建http://blog.csdn.net/u013468917/article/details/50979184
搭建好集群后就可以开始着手写一个“Hello World"了,当然对于Spark来说,所谓的”Hello World“程序就是WordCount。
运行环境说明:
系统:Ubuntu 12.04.5 LTS 64位
java版本:1.7.0_80
Hadoop版本:hadoop-2.2.0
Scala版本:2.10.1
Spark版本:spark-1.3.0
由于本人比较习惯用eclipse,所以本次WordCount是在eclipse下编写的,当然目前大部分开发者都比较推崇IntelliJ IDEA。可惜这个软件貌似很耗cpu,渣本难以承受。只好继续用回eclipse,尽管真的很慢。所以如果电脑配置的CPU是i5及以上,还是用IntelliJ比较好。
eclipse可以在官网下载,具体下载安装流程就不细表了。地址在这里:http://scala-ide.org/
安装完成后打开eclipse,下面正式开始:
首先FIle->New->Scala project :新建一个Scala工程,名称就叫TestSpark_01好了。JRE选择1.7/1.8都可以。
然后在工程中的src文件夹上面右击->new ->Package,包名随便取。
最后在包上面右击->New->Scala Object,这里cn.hunan是我的包名,在后面再添上文件名即可。由于名为WordCount的Object之前建立过,所以这里会报一个重名的错误,读者忽略即可。
package cn.hunan import org.apache.spark._ import org.apache.spark.SparkContext._ object WordCount { def main(args: Array[String]){ val conf = new SparkConf() val sc = new SparkContext(conf) val line = sc.textFile(args(0)) val result = line.flatMap(_.split("[^a-zA-Z]+")).map((_, 1)).reduceByKey(_+_) result.saveAsTextFile(args(1)) sc.stop() } }这里用了一个空的SparkConf()需要自己在运行程序的时候,手动添加配置参数。大家可以发现,Scala实际上只用的一行代码就完成了WordCount。
hadoop fs -put Jane1.txt /Spark/Jane1.txt将文件上传至HDFS的/Spark/目录下并命名为Jane1.txt
./spark-submit --class cn.hunan.WordCount --master yarn ~/HunanJar/WC.jar /Spark/Jane1.txt /Spark/out