hadoop
yanzhelee
这个作者很懒,什么都没留下…
展开
-
MapReduce模型初探(二)
MapReduce模型初探一MR执行流程二shuffle阶段1 shuffle中的分区Partition2 shuffle中的排序和分组3 shuffle中的CombinerShuffle阶段排序流程详解参考博文一、MR执行流程最简单过程:map –> reduce定制了Partitioner分区的过程:map–>partition–>原创 2017-07-11 01:09:49 · 913 阅读 · 0 评论 -
FileStatus类介绍
FileStatus类介绍FileStatus对象封装了文件系统中文件和目录的元数据,包括文件的长度、块大小、备份数、修改时间、所有者以及权限等信息。FileStatus对象一般由FileSystem的getFileStatus()方法获得,调用该方法的时候要把文件的Path传递进去。FileStatus字段解析private Path path; // Path路原创 2017-09-02 10:05:37 · 10321 阅读 · 0 评论 -
MapRedece中的分区Partitioner
MapRedece中的分区Partitioner分析MapReduce中会将map输出的k-v对,按照相同的key进行分组,然后分发给不同的reduceTask中。 默认的分发规则为:根据key的hashcode%reducetask数来分发 所以如果要按照特定的需求进行分组,则需要改写数据分发组件Partitioner。原创 2017-07-10 09:00:21 · 1140 阅读 · 0 评论 -
hadoop序列化和反序列化
序列化就是将内存中的对象或数据,转换成字节数组,以便于存储(持久化)和网络传输。反序列化就是将字节数组转换成内存对象。下面是对hadoop的序列化进行详细介绍,并且对hadoop的序列化方式和java原生的序列化进行了比较。原创 2017-08-14 00:19:52 · 1281 阅读 · 0 评论 -
hadoop自定义排序对比器和分组对比器
排序对比器,分组对比器的总结原创 2017-08-19 22:41:52 · 2304 阅读 · 0 评论 -
ChainMapper/ChainReducer实现原理及案例分析
ChainMapper/ChainReducer主要为了解决线性链式Mapper而提出的。也就是说,在Map或者Reduce阶段存在多个Mapper,这些Mapper像linux管道一样,前一个Mapper的输出结果直接重定向到下一个Mapper的输入,形成一个流水线。原创 2017-08-19 15:41:02 · 1319 阅读 · 0 评论 -
多个MapReduce之间的嵌套
多个MapReduce之间的嵌套在很多实际工作中,单个MR不能满足逻辑需求,而是需要多个MR之间的相互嵌套。很多场景下,一个MR的输入依赖于另一个MR的输出。结合案例实现一下两个MR的嵌套。 Tip:如果只关心多个MR嵌套的实现,可以直接跳到下面《多个MR嵌套源码》章节查看案例描述根据log日志计算log中不同的IP地址数量是多少。测试数据如下图所示: 该日志中每个字段都是用Tab建分割的。原创 2017-07-13 01:24:43 · 6402 阅读 · 2 评论 -
shell脚本定期上传日志到hdfs上
解决服务器定期上传日志到hdfs上闲话少说,直接上代码#!/bin/bash#设置java环境变量export JAVA_HOME=/soft/jdkexport JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH = ${JAVA_HOME}/bin:$PATH#设原创 2017-07-08 21:41:06 · 1421 阅读 · 0 评论 -
Hadoop InputFormat介绍
Hadoop InputFormat介绍1 概述我们在编写MapReduce程序的时候,在设置输入格式的时候,会调用如下代码:job.setInputFormatClass(KeyVakueTextInputFormat.class)通过上面的代码来保证输入的文件是按照我们想要的格式被读取,所有的输入格式都继承于InputFormat,这是一个抽象类,其子类有专门用于读取普通文件的FileInput原创 2017-09-02 14:00:34 · 3830 阅读 · 0 评论