文档章节

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
6.2K
18
程序猿媛一:Android滑动翻页+区域点击事件

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

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

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

wendal
2013/01/20
3.9K
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

没有更多内容

加载失败,请刷新页面

加载更多

大数据研发学习之路--Hadoop集群搭建

阅读编译文档 准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码 包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些...

DSJ-shitou
44分钟前
8
0
OSChina 周五乱弹 —— 特么是别的公司派来的特洛伊木马吧?

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《我会守在这里》- 毛不易 《我会守在这里》- 毛不易 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :股市连跪了五天,...

小小编辑
45分钟前
59
2
如何在find中排除目录。命令 - How to exclude a directory in find . command

问题: I'm trying to run a find command for all JavaScript files, but how do I exclude a specific directory? 我正在尝试为所有JavaScript文件运行find命令,但是如何排除特定目录? ......

法国红酒甜
今天
73
0
《Java8实战》笔记(02):通过行为参数传递代码

本文源码 应对不断变化的需求 通过筛选苹果阐述通过行为参数传递代码 初试牛刀:筛选绿苹果 public static List<Apple> filterGreenApples(List<Apple> inventory){List<Apple> result = ......

巨輪
今天
19
0
JeeSite 4 架构特点、安全方面、为什么好、工匠精神、不忘初心

1、底层架构 以 Spring Boot 2 为基础,Maven 多项目依赖,模块分项目,松耦合,方便模块升级、增减模块。 模块化的数据库自动升级程序,当模块升级代码需要更新数据库时,自动执行对应版本 ...

ThinkGem
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部