Scala编写spark程序,简单示例及运行

2015-06-12 14:54:56   作者:MangoCool   来源:MangoCool

折腾了一周的Spark,总算是有一点了解了。本文章所讲述的是从官网copy了一个Scala的例子,在本地打包之后,上传到集群中,用spark-submit提交任务。

官网例子:https://spark.apache.org/examples.html

新建一个Sacal工程,暂时先选择。

点击Finish,新建一个Scala文件,将官网例子代码贴入。

自己稍作完善,代码如下:

import org.apache.spark.{SparkContext, SparkConf}

object WordCount {

  def main(args: Array[String])
  {
    val conf = new SparkConf()
    conf.setAppName("WordCount").setMaster("spark://h230:7077").set("spark.executor.memory", "1g")
    val spark = new SparkContext(conf)
    val textFile = spark.textFile("hdfs://h230:9000/input/testspark.txt")
    val counts = textFile.flatMap(line => line.split(" "))
      .map(word => (word, 1))
      .reduceByKey(_ + _)
    counts.saveAsTextFile("hdfs://h230:9000/test/")
  }
}

注:h230是我的主机名,须要根据自己的实际主机名更改。

在根目录下新建一个lib文件夹,加入依赖包。本例采用的Spark-1.3.1+Scala-2.10.5,请注意Spark和Scala有版本兼容问题。相关依赖包在官网下载的安装包的lib文件夹里都有。

打包步骤:

再将已打好包的Spark2Test.jar包上传至服务器。本例子将jar包上传至了Spark-1.3.1/lib目录下了。

进入之Spark-1.3.1/bin目录下执行命令:

./spark-submit --master spark://h230:7077 --name SparkPi --class WordCount ../lib/Spark2Test.jar
执行过程中不报错,证明执行成功!这个时候可以在浏览器敲地址:http://h230:8080查看执行任务的情况。

再看看文件系统目录(hdfs://h230:9000/test/)里面有没有我的想要的结果。

进入hadoop-2.7.0/bin目录下执行命令:

./hadoop fs -ls /test


在hdfs下,貌似不能直接打开查看,可以用命令将其copy到本地进行查看:

./hadoop fs -copyToLocal /test/ /home/hadoop/SW/

copy到本地后,可随意查看文件内容。

到此本文就已结束,有不对或是不完善地方请多多指正以及多多谅解

标签: Spark Scala WordCount linux 集群

分享:

上一篇linux下打开端口命令

下一篇java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries

关于我

一个喜欢唱歌,热衷旅行,爱好电子产品的码农。没事,跟三五好友吼上几嗓子,约上几个背着行囊去露营或者宅在家里抱着孩子敲代码。

座右铭:当你的才华还撑不起你的野心的时候,你就应该静下心来学习,永不止步!

            人生之旅历途甚长,所争决不在一年半月,万不可因此着急失望,招精神之萎葸。


Copyright 芒果酷(mangocool.com) All rights reserved. 湘ICP备14019394号

免责声明:本网站部分文章转载其他媒体,意在为公众提供免费服务。如有信息侵犯了您的权益,可与本网站联系,本网站将尽快予以撤除。