• Hadoop与分布式开发


        hadoop上的并行应用程序开发是基于MapReduce编程框架的,MapReduce编程模型的原理是:利用一个输入的key/value对集合来产生一个输出的key/value对集合。

    MapReduce库的用户用两个函数来表达这个计算:Map和Reduce。

        用户自己定义的map函数接收一个输入的key/value对,然后产生一个中间key/value对的集合。MapReduce把全部具有同样key值的value集合在一起,然后传递给reduce函数。
        用户自己定义的reduce函数接收key和相关的value集合。reduce函数合并这些value值,形成一个较小的value集合。一般来说,每次reduce函数调用仅仅产生0或1个输出的value值。通常我们通过一个迭代器把中间的value值提供给reduce函数,这样就能够处理无法所有放入内存中的大量的value值集合了。MapReduce计算模型很适合在大量计算机组成的大规模集群上并行执行。
        Hadoop分布式文件系统由一个名称节点和N个数据节点组成。

    每一个节点均是一台普通的计算机。在使用方式上HDFS与我们熟悉的单机文件系统很类似,它能够创建文件夹,创建、复制和删除文件。以及查看文件的内容等。

        通常,MapReduce框架和分布式文件系统是执行在一组同样的节点上的,也就是说,计算节点和存储节点在一起。这样的配置同意框架在那些已经存好数据的节点上高效地调度任务,这能够使整个集群的网络带宽被很高效的利用。


        HBase的数据管理

        HBase是一个类似Bigtable的分布式数据库,它的大部分特性和Bigtable一样,是一个稀疏的、长期存储的、多维度的排序映射表。这张表的索引是行keyword、列keyword和时间戳。每一个值是一个不解释的字符数组,数据都是字符串。没有类型。
    HBase体系结构的三大重要组成部分是:
    • HBaseMaster:HBase主server,与Bigtable的主server类似。
    • HRegionServer:HBase域server,与Bigtable的Tabletserver类似。
    • HBaseClient:HBase客户端是由org.apache.hadoop.HBase.client.HTable定义的。
        NameNode:HDFS的守护程序。记录文件是怎样切割成数据块的。以及这些数据块被存储到哪些节点上,对内存和I/O进行集中管理,是个单点,发生问题将使集群崩溃
        SecondaryNameNode:监控HDFS状态的辅助后台程序。每一个集群都有一个,与NameNode进行通讯。定期保存HDFS元数据快照。当NameNode故障能够作为备用NameNode使用
        DataNode:每台从server都执行一个,负责把HDFS数据块读写到本地文件系统。负责所在物理节点的存储管理。一次写入,多次读取,文件由数据块组成。典型的大小是64MB,数据块尽量散布到各个节点
        JobTracker:用于处理作业的后台程序,决定有哪些文件參与处理,然后分割task并分配节点,监控task,重新启动失败的task,每一个集群仅仅有唯一一个JobTracker。位于Master节点
        TaskTracker:位于Slave节点,与DataNode结合,管理各自节点上的task,每一个节点仅仅有一个TaskTracker,但一个TaskTracker能够启动多个JVM,用于并行运行map或reduce任务,与JobTracker交互
        Master:执行NameNode、SecondaryNameNode、JobTracker的节点,Master不是唯一的
        Slave:执行TaskTracker、DataNode的节点

    三种执行模式

    单机模式:安装简单,差点儿不用作不论什么配置。但仅限于调试用于
    伪分布模式:在单节点上同一时候启动NameNode、DataNode、JobTracker、TaskTracker、SecondaryNameNode等五个进程。模拟分布式执行的各个节点
    全然分布模式:正常的Hadoop集群,由多个各司其职的节点构成

    NameNode使用事务日志记录HDFS元数据的变化。使用映像文件存储文件系统的命名空间,包含文件映射。文件属性等。
  • 相关阅读:
    CORS 跨域问题, 以及作为api server 的正确配置, 后台 nginx 配置
    angular2 各种开发种遇到的问题和设置
    angular2 cli 无法正确安装使用解决
    inline-block text-align: justify 实现自适应布局, 当子inline-block之间没有空格时失效及原因
    rails active record 使用default_scope is evil, 记一次 order not work 的排查
    java class jar 的加载问题
    es6 匿名函数求阶乘
    ruby 一些基础的语法, 各种杂物箱
    ruby 给对象添加新的方法
    javascript 核心语言笔记 7
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5328708.html
Copyright © 2020-2023  润新知