Scala 开发简单mapreduce 程序

本文介绍如何使用Scala开发MapReduce程序,尽管Java更为常见,但Scala的简洁语法提供了更好的编程体验。主要内容包括创建mapper、reducer和driver类,特别强调了Scala中的companion object在实现driver类中的作用。在编写完成后,文章提到了编译和执行时的注意事项,如确保使用新API、打包时包含scala-library.jar以及设置HADOOP_CLASSPATH。
摘要由CSDN通过智能技术生成

      看到这篇文章,肯定会有人问,“为什么要用scala来写MR, java写不是更自然?”  关于这个我问题,我个人的原因是: scala 写代码很简洁,而且我很享受这种体验。对于其它scala程序员来说,可能是因为所有项目都是用scala写,而且写scala更熟练些。对于这部分人非得用MR来解决的问题,那他一定有很充分的理由。

      归正题吧, 下面讲讲用如何上手操作吧!! 鉴于大家使用的IDE和编译工具不一样,这里就不多说,用自己熟悉的就好。

      对于简单的MR程序,将小文件合并成大文件,说他简单是因为没有复杂的map和reduce计算算法。以这个简单的示例主要讲一下scala写mr的语法,其它和java写是一样的。首先,需要有三个类 : mapper计算类,reduce计算类,和一个driver类

      下面先给一个自己写的Mapper类的代码:

class SmallFileMapper extends Mapper[LongWritable, Text ,Text, Text]{

  @throws(classOf[IOException])
  @throws(classOf[InterruptedException])
   override def map(key : LongWritable, value : Text, context : Mapper[LongWritable,Text,Text,Text]#Context) : Unit = {
    val 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值