文档章节

sbt 编译spark 的wordcount 程序

MtrS
 MtrS
发布于 2015/01/05 09:17
字数 411
阅读 1368
收藏 0
  1. 直接执行 sbt 会在当前目录下面创建 target 目录
  2. sbt 的目录格局一般为 lib/ (该目录下存储与编译相关的 jar 文件)
    project/ src/main/scala/ src/main/test/scala
  3. 复制 jar 文件 spark-assembly *hadoop2.5.1.jar 到 lib 目录下
<!-- lang: shell -->
[root@localhost word]# find ../spark  -name "spark*jar" |grep assem

../spark/assembly/target/scala-2.10/spark-assembly-1.1.2-SNAPSHOT-hadoop2.5.1.jar ../spark/dist/lib/spark-assembly-1.1.2-SNAPSHOT-hadoop2.5.1.jar [root@localhost word]# cp ../spark/dist/lib/spark-assembly-1.1.2-SNAPSHOT-hadoop2.5.1.jar lib/ [root@localhost word]# ls lib spark-assembly-1.1.2-SNAPSHOT-hadoop2.5.1.jar 4. 编辑 wordcount.scala

<!-- lang: scala -->
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._
object wordCount{
    def main(args: Array[String]){
        if (args.length == 0) {
        System.err.println("Usage bin/spark-submit [options] --class wordCount wordCount.jar <file1:URI>")
        System.err.println("Usage bin/spark-submit [options] --class wordCount wordCount.jar hdfs://172.16.1.141:9000/test.txt")
        System.exit(1);
    }
        val conf = new SparkConf().setAppName("WordCount")
        val sc = new SparkContext(conf)
        val doc = sc.textFile(args(0))
        doc.cache()
        val words = doc.flatMap(_.split(""))
        val pairs = words.map( x=> (x,1))
        val res = pairs.reduceByKey(_+_)
        res.collect().foreach(println)
        sc.stop()
    }
}
  1. 编辑 build.sbt

    <!-- lang: css -->

    [root@localhost word]# cat build.sbt name := "wordCount" [blank line] version := "1.0" [blank line] scalaVersion := "2.11.4" 6 . 编译打包 成 jar 文件

    <!-- lang: shell -->

    [root@localhost word]# sbt package  -Dsbt.ivy.home=/root/.ivy2
    

    [info] Set current project to wordCount (in build file:/opt/htt/temp_20140611/java/word/) [info] Updating {file:/opt/htt/temp_20140611/java/word/}word... [info] Resolving jline#jline;2.12 ... [info] Done updating. [info] Compiling 2 Scala sources to /opt/htt/temp_20140611/java/word/target/scala-2.11/classes... [warn] Multiple main classes detected. Run 'show discoveredMainClasses' to see the list [info] Packaging /opt/htt/temp_20140611/java/word/target/scala-2.11/wordcount_2.11-1.0.jar ... [info] Done packaging. [success] Total time: 11 s, completed Jan 5, 2015 8:37:38 AM [root@localhost word]# 7. 编译 class 文件到当前目录

    <!-- lang: shell -->

    scalac src/main/scala/wordCount.scala -cp lib/spark-assembly-1.1.2-SNAPSHOT-hadoop2.5.1.jar

  2. 调用spark 执行

<!-- lang: scala -->
 ../spark/bin/spark-submit   --class wordCount   target/scala-2.11/wordcount_2.11-1.0.jar hdfs://172.16.1.141:9000/opt/old/htt/test/test.txt

参考文章: http://www.aboutyun.com/thread-8587-1-1.html

hadoop 的wordCount 在 文档里面有,就不多说啦;

<!-- lang: shell -->
http://10.255.32.250:60001/hadoop-2.5.1/share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Job_Configuration

© 著作权归作者所有

共有 人打赏支持
MtrS
粉丝 32
博文 555
码字总数 352764
作品 0
榆林
私信 提问
Scala-Spark环境搭建配置

开始搭建的jdk这些自不必说,本文只是简单的介绍安装scala/spark 1.下载scala安装包 去官网下载tgz包,解压在/opt/scala/下,设置环境变量: export SCALA_HOME=/opt/scala/scala-2.10.3exp...

hanzhankang
2014/02/28
0
0
Windows + IDEA + SBT 打造Spark源码阅读环境

http://guozhongxin.com/pages/2014/10/15/sparksourcecode.html Spark源码阅读环境的准备 Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上...

chenhao_asd
04/25
0
0
IntelliJ IDEA Spark源码分析

在对 Spark 有了一定使用经验后,为了能够跟进 Spark 源代码的开发进展,对其源代码进行详细的阅读分析,本文详细说明了如何使用 IntelliJ IDEA 从 Github 上导入最新的 Spark 源代码,并对其...

MoksMo
2015/11/05
0
0
Spark源码分析调试环境搭建

目前常用的Spark版本有三种Cloudera、HDP和Apache,源码的获取方式可以在各自官网下载。本文选择Apache版本。 搭建环境所需要的工具如下: CentOS 7 maven 3.5.0 Java 1.8.0 Scala 2.12.2 I...

火力全開
2017/10/26
0
0
Spark基本工作原理与RDD及wordcount程序实例和原理深度剖析

RDD以及其特点 1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。 2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每...

qq1137623160
05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java8之stream流的基本操作

一、stream流简介 Stream流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。 Stream的优点:声明性,可复合,可并行。这三个特性使得stream操作更简洁,更灵活,更高效。 Stre...

嘴角轻扬30
26分钟前
1
0
Docker 可视化管理工具 Panama

Panamax 是一个开源的项目,可以通过简单的拖拉操作就可以实现发布复杂的 Docker 容器应用。Panamax 为 Docker, Fleet & CoreOS 提供友好的管理界面。 容器技术是下一代的虚拟机,但使用该技...

linuxprobe16
26分钟前
2
0
scala中hdfs文件的操作

对于org.apache.hadoop.fs.Path来说, path.getName只是文件名,不包括路径 path.getParent也只是父文件的文件名,同样不包括路径 path.toString才是文件的全路径名 创建文件 hdfs.createNew...

hblt-j
41分钟前
2
0
Eureka 和 zookeeper 的比较

小小小施爷
51分钟前
0
0
c++ 开源算法库 (持续更新)

最近在做算法方面的研究,发现很难找到一个全面而优质的科学计算算法库。不过还是找到一些,在此记录一下,将来也许自己写一个把所有这些整合在一起。本列表会持续不定期更新。 GSL http://w...

propagator
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部