Scala开发Hadoop示例
import org.apache.hadoop.conf.{Configuration, Configured};
import org.apache.hadoop.util.{ToolRunner, Tool};
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.io.{LongWritable, Text, IntWritable};
import org.apache.hadoop.mapreduce.{Reducer, Mapper, Job};
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
/**
* Created with IntelliJ IDEA.
* User: riley
* Date: 8/26/13
* Time: 1:58 PM
*/
object WordCount extends Configured with Tool
{
class Map extends Mapper[LongWritable, Text, Text, IntWritable]
{
private val one: IntWritable = new IntWritable(1);
private var word: Text;
override def map(key: LongWritable, rowLine: Text, context: Mapper[LongWritable, Text, Text, IntWritable]#Context)
{
val line = rowLine.toString();
if (line.isEmpty) return;
val tokens: Array[String] = line.split(" ");
for (item: String <- tokens) {
word.set(item);
context.write(word, one);
}
}
}
class Reduce extends Reducer[Text, IntWritable, Text, IntWritable]
{
private var count: IntWritable = new IntWritable();
override def reduce(key: Text, values: Iterable[IntWritable], context: Reducer[Text, IntWritable, Text, IntWritable]#Context)
{
var sum: Int = 0;
for (i: IntWritable <- values) sum = sum + i.get();
count.set(sum);
context.write(key, count);
}
}
def run(args: Array[String]) =
{
val conf = super.getConf();
val job = new Job(conf, "WordCount");
job.setJarByClass(this.getClass);
job.setOutputKeyClass(classOf[Text]);
job.setOutputValueClass(classOf[IntWritable]);
job.setMapperClass(classOf[Map]);
job.setReducerClass(classOf[Reduce]);
job.setCombinerClass(classOf[Reduce]);
FileInputFormat.addInputPath(job, new Path(args(0)));
FileOutputFormat.setOutputPath(job, new Path(args(1)));
val status = job.waitForCompletion(true);
if (status) 0 else 1;
}
def main(args: Array[String])
{
val conf: Configuration = new Configuration();
System.exit(ToolRunner.run(conf, this, args));
}
}
Scala开发Hadoop示例的更多相关文章
- 使用scala开发spark入门总结
使用scala开发spark入门总结 一.spark简单介绍 关于spark的介绍网上有很多,可以自行百度和google,这里只做简单介绍.推荐简单介绍连接:http://blog.jobbole.c ...
- 通过IDEA搭建scala开发环境开发spark应用程序
一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安装scala插件,具体安装办法如下. 1.打开idea,点击c ...
- IDEA搭建scala开发环境开发spark应用程序
通过IDEA搭建scala开发环境开发spark应用程序 一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安 ...
- Scala系统学习(二):Scala开发环境安装配置
Scala可以安装在任何基于UNIX/Linux或基于Windows的系统上.在您的机器上开始安装Scala之前,必须在计算机上安装Java 1.8或更高版本. 下面请按照以下步骤安装Scala. 步 ...
- 转】[1.0.2] 详解基于maven管理-scala开发的spark项目开发环境的搭建与测试
场景 好的,假设项目数据调研与需求分析已接近尾声,马上进入Coding阶段了,辣么在Coding之前需要干马呢?是的,“统一开发工具.开发环境的搭建与本地测试.测试环境的搭建与测试” - 本文详细记录 ...
- IDEA 支持scala开发
IDEA支持scala开发,需要安装scala插件,并且pom.xml也需要添加对应依赖. 1. 安装scala插件 下载地址:https://plugins.jetbrains.com/plugin ...
- Java开发Hbase示例
Java开发Hbase示例 使用Hbase操作数据 package com.sunteng.clickidc.test; import java.io.IOException; import java ...
- Linux下使用Eclipse开发Hadoop应用程序
在前面一篇文章中介绍了如果在完全分布式的环境下搭建Hadoop0.20.2,现在就再利用这个环境完成开发. 首先用hadoop这个用户登录linux系统(hadoop用户在前面一篇文章中创建的),然后 ...
- Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用
前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...
随机推荐
- grpc xservice 使用
1. 安装(此处比较简单) dep 包管理 配置环境变量 GOPATH/bin GO/bin protoc 下载并配置环境变量 2. xservice 安装 a. 预备(一些需要的依赖) mkdir ...
- node 升级
npm install -g n npm update –g
- 新版eclipse编写Android 时常常报的错误 -support-v7
一..和以往一样新建完一个Android项目之后.会报android.support.v4.. . . 或者V7找不到的错误. 这是由于这两个包在还有一个附带的项目(android-support ...
- css之选择器的认识
css中有大量的选择器,主要用来精准的找到代码中的某一段或者某一个段落,并对其样式进行选择和改变. 首先介绍的第一个选择器是: 1,基本选择器: 直接找到标签对其进行样式修正,不论标签藏多深,或者数量 ...
- google adwords report相关类型
(来自enum的ReportDefinitionReportType) KEYWORDS_PERFORMANCE_REPORT, AD_PERFORMANCE_REPORT, URL_PE ...
- Clion + opencv环境搭建(体验最好的C++ IDE)
前言: 一个好的开发环境,是程序猿梦寐以求的,对于opencv的开发,一直觉得vs虽然牛逼但太庞大,所以后来用了codeblocks,然后又觉得无论是vs还是codeblocks都不够美观,代码提示也 ...
- Unit02: jQuery事件处理 、 jQuery动画
Unit02: jQuery事件处理 . jQuery动画 jQuery实现购物车案例 <!DOCTYPE html> <html> <head> <titl ...
- OPC UA (统一架构)的优势
OPC UA OPC统一架构(OPC Unified Architecture)是OPC基金会(OPC Foundation)创建的新技术,更加安全.可靠.中性(与供应商无关),为制造现场到生产计划或 ...
- cowboy页面重定向的例子
创建工程 rebar-creator create-app testCowboy testCowboy_app.erl -module(testCowboy_app). -behaviour(appl ...
- css移除a标签及map、area(图片热区映射)点击过后的边框
默认a标签及其包含的html元素和map中的area(图片热区映射)在点击过后留有默认的蓝色边框,如下图 可以看到,蓝色的边框破坏了页面的整体美感,很多时候我们都是不需要的.通过设置相应的css可以去 ...