zoukankan      html  css  js  c++  java
  • 读书笔记Hadoop实战3

     注:之前写过MapReduce程序,所以对Hadoop和MapReduce编程有一些了解,现在正在阅读《Hadoop实战》一书,这里主要是记下对自己有用的一些点,完全不能覆盖书中的全部要点。想要学习MapReduce入门的同学请移尊步,勿浪费时间。

    这里是我觉得不错的几个入门文章:

    http://www.cnblogs.com/forfuture1978/category/300670.html

    http://blog.csdn.net/aidayei/article/details/6580277

    http://www.cnblogs.com/mdyang/category/307547.html

    http://www.cnblogs.com/wycg1984/category/238035.html

    -----------------------------------------------------------敌我分割线------------------------------------------------------------

     

    访问HDFS:

    命令行方式 hadoop fs  -cmd  <args>

    例如: hadoop fs  -ls

    编程访问(Java版):API的起点为 FileSystem这个类。

     

    Hadoop数据类型:

    Hadoop中数据(键值对)需要在计算过程各个阶段流动,因此应了解数据(键值对)的类型。

    Hadoop是键值对存储和计算,其中的键值都是有类型的。简单说,值需要实现Writable接口,键需要实现WritableComprable接口。Writable类型的对象能够写入文件系统和从文件系统中读取(实现了readField,write函数),WritableComprable类型的对象除了存储外,能够进行比较(实现了compareTo函数)。原因是键值在MapReduce过程都要存到HDFS或本地文件系统上,另外键在MapReduce的shuffle过程中需要分区(MapReduce计算框架在shuffle过程中要排序)。

     

    Hadoop的几个函数:

    Mapper:将一个键值对变成另一个(或多个)键值对。k1/v1 => k2/v2

    Reducer:接收Mapper的输出(按key合并的输出),k2/list(v2) => k3/v3

    Partitioner:书上说是重定向Mapper的输出。一般会设定若干个reduce(只有一个reduce并行度低),Partitioner函数的输入参数是k/v和程序员设定的reducer个数,返回一个介于0~reducer个数 的整数,该k/v就被发送到这个编号的reducer。简单说,就是指定一个k/v对应该由哪个reducer来执行(因为可能有很多reducer)。

    Combiner:本地reducer。使用Combiner需要前提条件,这个在Hadoop权威指南一书上说了。例如为求和可以用,但是求平均值就不能直接简单用Combiner。

  • 相关阅读:
    TCP定时器 之 重传/延迟ACK/保活 定时器初始化
    指针03-指针和字符串
    指针02
    指针01
    switch语句分析
    结构体分析
    参数、返回值、局部变量、数组分析
    多维数组分析
    循环语句分析
    if语句分析
  • 原文地址:https://www.cnblogs.com/apprentice89/p/2672421.html
Copyright © 2011-2022 走看看