文档章节

sbt 编译spark 的wordcount 程序

MtrS
 MtrS
发布于 2015/01/05 09:17
字数 411
阅读 1374
收藏 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
博文 566
码字总数 357787
作品 0
榆林
私信 提问
IntelliJ IDEA Spark源码分析

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

MoksMo
2015/11/05
0
0
Windows + IDEA + SBT 打造Spark源码阅读环境

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

chenhao_asd
2018/04/25
0
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
Kubernetes助力Spark大数据分析

Kubernetes 作为一个广受欢迎的开源容器协调系统,是Google于2014年酝酿的项目。从Google趋势上看到,Kubernetes自2014年以来热度一路飙升,短短几年时间就已超越了大数据分析领域的长老Had...

店家小二
2018/12/17
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

没有更多内容

加载失败,请刷新页面

加载更多

MySQL查询执行

当我们希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,很多查询优化工作实际上就是遵循一些原则让优化器能够按照预想的合理方式...

问题终结者
47分钟前
0
0
CDH5动静态资源池配置与回滚

关于动态 静态资源池的配置以前都有提过,可以从以下几篇了解: YARN动态资源池配置案例 https://yq.aliyun.com/ziliao/346856# Hadoop YARN配置参数剖析(4)—Fair Scheduler相关参数 Hadoop...

hblt-j
52分钟前
3
0
WordPress仿站实战教程

有一个月没有写blog了,一直在学习wordpress的知识,现在能够进行简单的政府企业门户网站的仿制,wordpress的主题订制,一般是对前端要求比较高,wordpress学会了,建站还是非常的快的。下面...

临江仙卜算子
54分钟前
3
0
图像库stb_image

https://github.com/nothings/stb 目前一般主流的图像格式也就是bmp,jpg,png,tga,dds,除了DDS一般是给DX用的,虽然一堆OpenGL程序也有用的,但是我一般只用png和tga, png不用说了,带a...

robslove
今天
1
0
Spring 事务提交回滚源码解析

前言 在上篇文章 Spring 事务初始化源码分析 中分析了 Spring 事务初始化的一个过程,当初始化完成后,Spring 是如何去获取事务,当目标方法异常后,又是如何进行回滚的,又或是目标方法执行...

TSMYK
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部