zoukankan      html  css  js  c++  java
  • 简介

      为什么不实用数据库加上磁盘而采用Map-Reduce?

        因为寻址时间的提高速度远远慢于传输速率的提高速度.寻址就是将磁头移动到特定的位置进行读写操作的工序.特点是磁盘操作有延迟,人传输速率相对应于磁盘的带宽

      

      关系数据库和Map-Reduce的比较

      RDBMS Map Reduce
    数据大小 GB PB
    访问 交互型和批处理 批处理
    更新 多次读写 一次写入多次读取
    结构 静态模式 动态模式
    集成度
    伸缩性 非线性 线性

      

      Map Reduce是一种线性可伸缩编程模型

      Map Reduce Job是客户端执行的单位.它包括输入数据,Map Reduce程序和配置信息.Hadoop把作业分成若干个小任务(task)来工作.其包括两种类型的任务:map任务和reduce任务.有两种类型的节点控制着作业执行过程:job tracker和多个task tracker.job tracker通过调度任务在task tracker中运行来协调所有运行在系统上的作业.Task tracker运行任务的同时,把进度报告传送到job tracker.Job tracker记录着每项任务的整体进展状况,若其中的一个任务失败,job tracker可以重新调度任务到另一个task tracker.Hadoop把输入数据划分成等长的小数据发送到MapReduce中,称为输入分片(input split).Hadoop为每个分片创建一个map任务,由他来运行用户定义的map函数来分析每个分片中的记录.一个理想的分片打消是一个HDFS块的大小.默认是64MB.

     

      Hadoop允许用户声明一个combiner运行在map的输出上.该函数作为redcue函数的输入

      

      Hadoop流使用Unix标准流作为Hadoop程序之间的接口,所以可以使用任何语言.只要编写的MapReduce程序能够读取标准输入并写到标准输出.map的输入数据把标准输入流传输到map函数.其中是一行一行的传输,然后再把行写入标准输出.一个map输出的键值对是以单一的制表符分隔的行来写入的.reduce函数的输入具有相同的格式,通过制表符来分隔的键值对,传输标准输入流.reduce函数从标准输入流读取行,然后为保证结果的有序性用键来排序,最后将结果写到标准输出中.

      

      Hadoop把网络看作一棵树,两个节点间的距离是距离他们最近的共同祖先的总和.该树中的等级是没有被预先设定的.但它相当于数据中心,框架和一直运行的节点的等级是共同的.

      Hadoop Archives通过使用archive工具根据一个文件集合创建而来.这些工具运行一个Map Reduce作业并行处理输入文件.因此需要一个Map Reduce集群去运行使用.HAR文件以.har结尾,它由两个部分组成:两个索引文件和部分文件的集合.这些部分文件包含了一些已经链接在一起的大量原始的文件的内容,并且所以使我们可以查找那些包含归档文件的部分分拣,包括他的起始点和长度.对于HAR文件,创建一个归档文件会创建原始文件的一个副本.需要于原始文件同样的磁盘空间.但目录不支持档案压缩.一旦创建,Archives便不可改变,要增加或移除文件,必须重新归档文件.

  • 相关阅读:
    P1579哥德巴赫猜想
    JAVA快速入门方法
    PHP快速入门方法
    Java 8 lambda表达式
    JVM内存配置参数
    Synchronized 关键字
    数据库事务的理解
    hello world 执行原理
    面试知识点总结之JVM调优
    面试知识点总结之RabbitMQ/Kafka使用场景
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/9890304.html
Copyright © 2011-2022 走看看