![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hadoop
文章平均质量分 86
陈先生-HDU
这个作者很懒,什么都没留下…
展开
-
MR源码学习(一)
首先说一下MR的执行过程,再按照执行顺序阅读源码。 1.map阶段: 1.1读取文件内容,把每一行解析成一个键值对。默认的key是每一行文本的偏移量,value是每一行的内容。 1.2自定义map函数,对进行处理,转换成输出。其中的数量与的数量没有关系。 1.3对输出的进行分区。 1.4对不同分区的数据,按照key进行排序,分组。 1.5(可选)对数据进行规约。 2.reduce阶段原创 2015-10-21 13:13:20 · 878 阅读 · 0 评论 -
HDFS(2)
HDFS中读文件过程,如上图所示。 1.打开一个分布式文件系统,也就是API中的filesystem.get()方法,获得一个文件系统实例。 2.通过fs的open方法,fs会通过RPC来调用nn,通过方法传入的文件名称,会在nn中得到blocksequence中的一批block信息。 3.原创 2015-12-08 19:06:29 · 366 阅读 · 0 评论 -
HDFS(3)
1.继续研究HDFS写操作的源码过程,客户端通过DistributedFileststem中的create方法创建文件。结构与上一篇读文件的操作类似,会执行FileSystemLinkResolver的resolve方法,即调用docall方法。 public FSDataOutputStream doCall(final Path p) throws IOException原创 2015-12-10 16:07:14 · 377 阅读 · 0 评论 -
MR源码学习(三)
job.setOutputFormatClass(TextOutputFormat.class);学习MR的输出过程,依然是从上面的代码作为入口,默认的输出格式是TextOutputFormat类。先不看TextOutputFormat类,看他最顶级的父类OutputFormat/** * OutputFormat describes the output-specification for原创 2015-12-14 16:12:05 · 434 阅读 · 0 评论 -
MR源码学习(二)
继续之前的源码学习,上一篇分析了InputFormat的getSplits()方法,接下来是createRecordReader()方法。 从这里可以看到该方法为一个split创建一个recordReader,并且在使用split之前会回调recordReader的初始化方法,该方法的具体实现在TextInputFormat中。 @Override public RecordReade原创 2015-10-22 12:09:53 · 325 阅读 · 0 评论 -
HDFS(1)
HDFS中,主要有namenode与datanode节点。其中,namenode节点主要保存数据的元数据信息,datanode保存数据本身。对于 namenode而言,hdfs中只有一个namenode节点,所以namenode至关重要,也就有了namenode的HA研究。nn中具体保存fsimage和edits两种文件,文件位置在hdfs-site.xml中dfs.namenode.name.d原创 2015-12-07 14:34:21 · 237 阅读 · 0 评论 -
SequenceFile使用随笔
hadoop不适合小文件,所以需要对小文件进行额外处理,常使用SequenceFile,下面是刚刚使用SequenceFile的感悟。 1.创建sequenceFile public static void main(String[] args) throws Exception { final Configuration conf = new Configuration(); fin原创 2015-10-24 14:44:58 · 558 阅读 · 0 评论