机器学习和生物信息学实验室联盟

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3737|回复: 0
打印 上一主题 下一主题

Hadoop中使用ArrayWritable作为value的扩展异常处理

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-3 17:40:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作为曾经比较早接触Hadoop的一员,现在看到自己都落后大家一个环岛路那么远了,说起来甚是惭愧,因为毕业设计跟这个相关,所以就再次捡起来了,一些写程序中遇到的问题,说来大家分享一下,如果大家都已经碰到这个问题了,并且觉得好弱的问题,就不要喷我了,理解一下作为学术上的小学弟吧!

一般都知道Hadoop里的是<Key, Value>对,如果我想扩展成一个<Key, Value[]>时该怎么办呢,很巧的是Hadoop提供了一个ArrayWritable类可以实现,但是问题来了,很多时候,我们使用了这个类,但是发现map的输出并没有收集到数据,而且会报java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.io.ArrayWritable.<init>()的异常信息,经过网上一些大牛的提点,发现Hadoop在实现ArrayWritable的时候,并不会提供一个默认的构造函数,因此,我们需要重写这个类,使用super构造一下就可以了。
  1. public class NewArrayWritable extends ArrayWritable {
  2.   public NewArrayWritable() {
  3.     super(IntWritable.class);
  4.   }
  5. }
复制代码
因为ArrayWritable构造函数里是需要一个Writable的某个子类来初始化的,所以可以根据自己需要随便改。

以上纯属小问题,不喜勿喷!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

机器学习和生物信息学实验室联盟  

GMT+8, 2024-5-17 12:51 , Processed in 0.070679 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表