- 博客(12)
- 资源 (5)
- 收藏
- 关注
原创 [Hadoop源码解读](五)MapReduce篇之Writable相关类
昨天出去玩了,今天继续。 前面讲了InputFormat,就顺便讲一下Writable的东西吧,本来应当是放在HDFS中的。 当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化。Writable是Hadoop的序列化格式,Hadoop定义了这样一个Writable接口。public interfac
2012-08-26 12:12:55 13167 1
原创 [Hadoop源码解读](四)MapReduce篇之Counter相关类
当我们定义一个Counter时,我们首先要定义一枚举类型:public static enum MY_COUNTER{ CORRUPTED_DATA_COUNTER, NORMAL_DATA_COUNTER}; 然后,我们就可以在mapper或reducer里面增加它的值:context.getCounter(MY_COUNTER.CORRUPTED_DATA_
2012-08-24 17:35:48 6104
原创 [Hadoop源码解读](三)MapReduce篇之Job类
下面,我们只涉及MapReduce 1,而不涉及YARN。 当我们在写MapReduce程序的时候,通常,在main函数里,我们会像下面这样做。建立一个Job对象,设置它的JobName,然后配置输入输出路径,设置我们的Mapper类和Reducer类,设置InputFormat和正确
2012-08-24 15:40:17 6806
原创 [Hadoop源码解读](二)MapReduce篇之Mapper类
前面在讲InputFormat的时候,讲到了Mapper类是如何利用RecordReader来读取InputSplit中的K-V对的。 这一篇里,开始对Mapper.class的子类进行解读。 先回忆一下。Mapper有setup(),map(),cleanup()和run()四个方法。其中setup()一般是用来进行一些map()前的准备工作,map()则一般承担主要的处理工
2012-08-24 00:50:39 24056 5
原创 [Hadoop源码解读](一)MapReduce篇之InputFormat
平时我们写MapReduce程序的时候,在设置输入格式的时候,总会调用形如job.setInputFormatClass(KeyValueTextInputFormat.class);来保证输入文件按照我们想要的格式被读取。所有的输入格式都继承于InputFormat,这是一个抽象类,其子类有专门用于读取普通文件的FileInputFormat,用来读取数据库的DBInputFormat等等。
2012-08-23 17:20:51 16082 14
原创 SEVERE: org.apache.solr.common.SolrException: undefined field text
nutch 与 solr3.6.* 集成时出现了这个错误。找了很久,终于发现这里 说Deprecate defaultSearchField,你需要修改SOLR_HOME/example/solr/conf/solrconfig.xml,将里面的text都替换为content(你可以在vim下使用 :%s/old/new/g 全文替换指定字符);接着,将从nutch下拷贝到solr/conf
2012-08-18 15:35:40 6886
原创 [MapReduce编程]用MapReduce大刀砍掉海量数据离线处理问题。
今日在CSDN看再次遇见July的这篇博文:教你如何迅速秒杀掉:99%的海量数据处理面试题。这篇文章我之前是拜读过的,今天闲来没事,就想拿来当做MapReduce的练习。MapReduce这把刀太大,刀大了问题就抵不住这刀锋了,事实上一开始我想着,这么多些题目,当是要花不少功夫的,但当我做完一题继续看下面的题目的时候,才发现这些题目在MapReduce模型下显得大同小异了,看来拿大刀的人是
2012-08-16 21:02:04 2674
原创 [Hadoop]使用DistributedCache进行复制联结
使用DistributedCache有一个前提,就是进行联结的数据有一个足够小,可以装入内存中。注意我们可以从代码中看出它是如何被装入内存中的,因此,我们也可以在装入的过程中进行过滤。但是值得指出的是,如果文件很大,那么装入内存中也是很费时的。DistributedCache的原理是将小的那个文件复制到所有节点上。我们使用DistributedCache.addCacheFile()来
2012-08-15 21:35:48 3413
原创 使用hadoop的datajoin包进行关系型join操作
datajoin包在hadoop的contrib目录下,我们也可以在src下面看见其源码,它的源码很小,我建议大体看看以了解其原理。利用datajoin进行join操作,在《Hadoop in action》里面已经讲的十分清楚,在这里只提及值得注意的几个地方。TaggedMapOutput的目的是标识数据,让我们知道哪个记录是从哪里来的。DataJoinMapperBase类中的ge
2012-08-15 21:01:55 2790 5
原创 java.io.IOException: File /home/hadoop/mapred/system/jobtracker.info could only be replicated to 0 n
我又再次在关闭hadoop前format了,然后又出现这个错误。java.io.IOException: File /home/hadoop/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1at org.apache.hadoop.hdfs.server.namenode.
2012-08-15 20:12:03 3349
原创 用eclipse编写mapreduce程序
自己的博客好像要过期了,把一些还有用的东西搬过来避难~首先,下载插件这是另一个插件,你可以看看。然后,放到eclipse/plugin下,我是fedora系统,我放在了/usr/lib/eclipse/plugins下。然后把插件重命名为:hadoop-eclipse-plugin-1.0.0.jar,我的eclipse版本:Eclipse PlatformVe
2012-08-15 19:36:32 2229
原创 关系型MapReduce模式:选择、分组和组内排序
”纸上得来终觉浅,绝知此事要躬行“,MapReduce还是要多练习的。 现有一学生成绩数据,格式如下: // 假设的取值类型和范围:
2012-08-11 10:06:11 3496 1
The C++ Standard Library, A Tutorial And Reference
2011-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人