• 《OD学hadoop》第四周0716


    7.16

    一、回顾

    二、HDFS Federation(联盟)
    Hadoop 2.2.0发布新特性
    很多的大公司都在使用:BAT
    HDFS Federation + HDFS HA架构
    互相隔开,但是数据存储共用

    1、新特性介绍
    ViewFs Guide 视图文件系统
    HDFS Snapshots 快照
    在某一时刻某一个瞬间在整个文件系统中,它存储的文件具体的情况
    比如:存储多少文件、它的副本数...一些信息
    好处:备份、恢复
    Edits Viewer
    Image Viewer
    用来查看fsimage和edits文件的工具
    Quotas and HDFS
    HDFS 配额
    两种:空间、目录
    C API libhdfs
    可以用C语言编写MR程序,访问文件系统

    2、HA和联盟的区别
    HDFS HA:
    两个namenode->管理同一个文件系统,内存中存储的内容是一样的。

    HDFS Federation:
    两个namenode各自管理属于自己一部分的数据,存储的内容完全不一样的。

    namenode共同使用datanode的存储空间

    namenode内存限制

    注意:配置之前需要关闭原有的集群还有正在运行的服务
    3、HDFS Federation配置
    dfs.namenode.rpc-address:8020
    datanode和namenode交互端口号
    dfs.namenode.servicerpc-address:8022
    减轻一个端口号的压力,可配置项
    dfs.namenode.http-address:50070
    浏览器访问端口
    dfs.namenode.https-address:50470
    浏览器访问端口

    格式化所有的namenode,虽然是三个不同的namenode
    但是是在一个集群中的,每个集群都有一个唯一的标识符clusterID
    如果不提供ID,会自动生成一个,以免与其他集群产生冲突


    三、MapReduce二次排序
    MR :
    input map() shuffle reduce() output
    MR shuffle:
    partition sort combiner compress group

    排序:默认是按照key排序
    分组:相同key的value放在一起
    比较:key相同
    指定:比较器->实现接口
    key和key的比较->shuffle

    需求:文件中有这些数据,依据第一个字段进行排序
    如果第一个字段相同,对第二个字段进行排序
    a,1 a#1,1
    z,3 z#3,3
    b,2 b#2,2
    a,100 a#100,100
    a,3 a#3,3
    b,1 b#1,1

    a#1,1 a#1,list<1,3,100> a,1 a,3 a,100
    a#3,3
    a#100,100
    b#1,1
    b#2,2
    z#3,3

    默认比较两个字段,要保持原来的第一个字段进行分组
    第一个字段相同,代表key相同
    这种排序是在整个shuffle阶段进行操作,并不是reduce的方法中操作的

    MR本身具有排序特性:将第一个作为key,第二个字段怎么办?
    直接对value进行排序?
    排序消耗的CPU内存资源

    【小结】mapreduce二次排序要点
    1,组合key,key是一个组合字段,自定义数据类型
    继承writablComparable
    2、保证原来的分区,需要自定义分区partitioner,
    继承partitioner
    3、保持原来的分组,需要自定义分组
    继承RawComparator

    四、MR join
    HDFS两张表:两类文件->MR分析

    map join(在数据比较小的情况下可以使用)

    【举例】

    淘宝天猫双十一购物

    1、 账户信息包括:用户ID、名称、收货地址、电话联系方式

    (customer)

    cid cname address telphone

    2、订单信息包括:订单ID、用户ID、商品价格、商品名称

    (order)

    oid cid price pname

    将两个表进行关联

    关联之后的信息包括:用户ID、名称、收货地址、电话联系方式、商品名称

    cid name address telphone pname

    每个商品订单都能找到购买人

    两张表->公共连接点->key(map输出的key)

    cid cname address telphone(小表)

    oid cid price pname(大表)

    功能:

    cid name address telphone pname

    map-><key,value>

    <cid(key), customerinfo(value)>    ->   <cid, customerinfo>

    reduce端join(也叫shuffle join或common join)

    reduce input keyvalue:

    <cid, list(cinfo, orderinfo, order info, orderinfo, orderinfo)>

    map

      customer:

        <cid,cinfo>

          cinfo:

            (标识)tag:customer/order

               data:cinfo/orderinfo

      order:

        <cid,orderinfo>

    五、MapReduce分布式缓存

    DistributeCache

    六、

    Apache hadoop:

    hadoop 1.x

    hadoop 2.x

    cloudera hadoop:  -> cloudera manager

    CDH3 CDH4 CDH5

    hortonworks hadoop: -> yahoo

    HDP 2.x

    hue

  • 相关阅读:
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.RequestContext
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
    Caused by: java.lang.ClassNotFoundException: javassist.ClassPool
    Caused by: java.lang.ClassNotFoundException: ognl.PropertyAccessor
    利用DBLINK同步表数据库--老刘
    100万并发连接服务器笔记之1M并发连接目标达成
    模拟row cache lock
    redis读写性能测试
    Adobe RIA 开发工程师认证考试大纲
  • 原文地址:https://www.cnblogs.com/yeahwell/p/5675371.html
Copyright © 2020-2023  润新知