文档章节

sbt 编译spark 的wordcount 程序

MtrS
 MtrS
发布于 2015/01/05 09:17
字数 471
阅读 3K
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

  1. 直接执行 sbt 会在当前目录下面创建 target 目录
  2. sbt 的目录格局一般为 lib/ (该目录下存储与编译相关的 jar 文件)
     project/     src/main/scala/     src/main/test/scala
  1. 复制 jar 文件 spark-assembly *hadoop2.5.1.jar 到 lib 目录下
   [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
  1. 编辑 wordcount.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
    [root[@localhost](https://my.oschina.net/u/570656) word]# cat build.sbt 
    name := "wordCount"
    [blank line]
    version := "1.0"
    [blank line]
    scalaVersion := "2.11.4"

6 . 编译打包 成 jar 文件

    [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  文件到当前目录
    scalac src/main/scala/wordCount.scala  -cp lib/spark-assembly-1.1.2-SNAPSHOT-hadoop2.5.1.jar 
  1. 调用spark 执行
 ../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 在 文档里面有,就不多说啦;

    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
粉丝 36
博文 1056
码字总数 704334
作品 0
榆林
私信 提问
加载中
请先登录后再评论。
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
6K
18
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.2K
1
极速博客引擎--Gor

gor 是使用 golang 实现的类Ruhoh静态博客引擎(Ruhoh like),基本兼容ruhoh 1.x规范. 相当于与ruhoh的官方实现(ruby实现), 有以下优点: 速度完胜 -- 编译wendal.net近200篇博客,仅需要1秒 安装...

wendal
2013/01/20
3.8K
0
密码管理程序--pwgrep

为了管理我的密码,我写了一个小的 bash/awk 脚本用来管理一个密码数据库并使用 GnuPG 进行加密。使用 pwgrep 的好处是: 密码加密 密码版本化,不用担心丢失老密码 Since a versioning sys...

匿名
2013/03/11
1.3K
0
自定义表单系统--FormDesign

是基于 FLEX 开发的一款B/S的自定义表单系统 整个过程如下: 1、通过FormDesign自定义表单画出相应的表单; 2、将生成好的XML放到程序中,并通过后台自动编译成JSP; 注:FormDesing只是自定...

polliwog
2013/03/29
1.6W
1

没有更多内容

加载失败,请刷新页面

加载更多

HTML5 视频和音频的常用方法

HTML5 中为视频 video 和音频 audio 元素,提供了属性、方法和事件。这两个元素的常用属性上一节我们已经讲过了,本节我们来讲一下这两个元素的方法。 视频和音频的常用方法 HTML5 中为 vide...

凌兮洛
11分钟前
5
0
Git应用详解第一讲:Git分区、配置与日志

Git应用详解第一讲:Git分区、配置与日志 前言 曾经听到过这样一句话:不会「git」就不要敲代码了。细细品味确实有其中的道理,可能是当事人代码被强行覆盖后的叹息吧! 因此,为了避免这种情...

osc_jhlfbvu7
11分钟前
13
0
HashMap、HashSet、HashTable比较

1.HashMap和HashTable区别 线程安全:HashMap线程不安全。而HashTable通过让get/put上锁达到线程安全,不过代价很大。 HashMap允许key/value为null(但只能有一个null键),而HashTable不允许...

曦鱼violet
12分钟前
10
0
SHELL脚本编程练习答案(多版本)

练习: 1、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核 版本,CPU型号,内存大小,硬盘大小 #!/bin/bashYELLOW='\e[1;33m'RED='\e[1;31m'...

osc_0cugk2ks
13分钟前
9
0
盘点 35 个 Apache 顶级项目,我拜服了…

Apache 软件基金会 Apache 软件基金会,全称:Apache Software Foundation,简称:ASF,成立于 1999 年 7 月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生...

Java技术栈
14分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部