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便不可改变,要增加或移除文件,必须重新归档文件.

  • 相关阅读:
    POJ 3114 Tarjan+Dijkstra
    278. First Bad Version
    209. Minimum Size Subarray Sum
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    710. Random Pick with Blacklist
    767. Reorganize String
    524. Longest Word in Dictionary through Deleting
    349. Intersection of Two Arrays
    350. Intersection of Two Arrays II
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/9890304.html
Copyright © 2011-2022 走看看