zoukankan      html  css  js  c++  java
  • About HDFS blocks

    还是原小站的东西,学习Hadoop的一些心得,扔这里保管先吧。

      HDFS也有块(Block)的概念,但它的块是一个很大的单元,默认是64MB。像硬盘中的文件系统一样,在HDFS中的文件将会按块大小进 行分解,并作为独立的单元进行存储。但和硬盘中的文件系统不一样的是,存储在块中的一个比块小的文件并不会占据一个块大小的硬盘物理空间(HDFS中一个 块只存储一个文件的内容)。
      那为什么HDFS中的块如此之大呢?
      HDFS的块之所以这么大,主要原因就是为了把寻道(Seek)时间最小化。如果一个块足够大,那么从硬盘传输数据的时间将远远大于寻找块的起始位置的时间。这样就使得HDFS的数据传输速度和硬盘的传输速度更加接近。
    让我们来个简单的计算,假设寻道时间大约为10ms,传输速度为100MB/s。为了使得寻道时间仅为传输时间的1%,我们就需要设置块的大小为100MB。尽管很多应用的HDFS使用128MB的块,但默认的大小是64MB,这个参数将随着新一代硬盘速度的增长而增长。
      虽然大块有一定好处,但也不能太大。MR中的Map tasks一般一次只处理一个块,所以如果你的tasks太少了(少于你集群中的节点数),相对于设置较小块的Jobs来说,你的Jobs将会运行得比较慢。

  • 相关阅读:
    zip压缩类
    sqlserver配置允许快照隔离
    (三)装饰模式
    (二)策略模式
    (一)简单工厂模式
    MFC中lib和dll的区别
    VC MFC工具栏(CToolBar)控件(非常重要)
    CMFCMenuBar和CMFCToolBar相同ID,在显示不同标签文字
    CImageList类Create函数参数解析
    c++连接数据库代码
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1690280.html
Copyright © 2011-2022 走看看