1. Hadoop自带一套原子操作用于数据的I/O操作。
  2. 如果系统中需要处理的数据量达到Hadoop的处理极限时,数据被损害的概率还是很高的
  3. 检测数据是否被损害的常见措施是,在数据第一次被引进系统时,计算校验和(checksum),并在数据通过一个不可靠的通道进行传输时,再次计算校验和。
  4. 校验和也是可能损坏的,但由于校验和比数据小得多,所以损坏的可能性非常小
  5. HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和。
  6. 默认情况下为512个字节计算校验和,由于CRC-32校验和是4个字节,所以存储校验和的额外开销低于1%
  7. datanode负责在收到数据后存储该数据及其校验和之前对数据进行验证,它在收到客户端的数据或复制其他datanode的数据时执行这个操作。
  8. 正在写数据的客户端将数据及其校验和发送到有一些列datanode组成的管线,管线中最后一个datanode负责验证校验和。如果datanode检测到错误,客户端便会厚道一个IOException异常的一个子类。
  9. 客户端读取datanode数据时,也会验证校验和。
  10. 每个datanode中均持久保存有一个用于验证校验和  日志(persistent log of checksum verification),所有他知道每个数据块的最后一次验证时间。保存这些统计信息对于检测损坏的磁盘很有价值
  11. 不只是客户端在读取数据块时,会验证校验和,每个datanode也会在一个后台线程中运行一个DataBlockScanner。该措施是解决物理存储媒体上损坏的有力措施。
  12. 由于HDFS存储着每个数据块的副本(replica),因此它可以通过副本来修复损害的数据块,进而得到一个新的、完好无损的副本。基本思路是:客户端读取数据块时,如果检测到错误,首先向namenode报告已损坏的数据块及其正在尝试读操作的这个datanode,在抛出ChecksumException。namenode将这个数据块副本标记为已损坏,这样它不再将客户端处理请求直接发送到这个节点,或者尝试将这个复本复制到另一个datanode,如此一来,数据块的副本以腻子(replication factor)又回到期望的水平。
  13. 如果在使用open()方法读取文件之前,将false值传递给FileSystem对象的setVerfiChecksum()方法,即可禁用校验和验证
  14. 可以使用hadoop fs -checksum 来检查一个文件的校验和
  15. 校验和的计算代价是相当低的,java中使用的是本地代码实现的
  16. 压缩:有两大好处,减少存储文件所需要的磁盘空间,并加速数据在网络和磁盘上的传输。这两大好处在处理大量数据时相当重要。
  17. 序列化:用于分布式数据处理的两大领域:进程间通信和永久存储
  18. Hadoop为什么不使用java自带的序列化功能,反而要单独实现一套呢。java自带序列化与编程语言紧密相关,且太负责。hadoop需要一套至精至简、可以精确控制对象读写。
  19. Hadoop为什么不使用RMI,而要使用RPC呢:RPC更高效,且可以精确控制连接、延迟、缓冲。
  20. 基于文件的数据结构:SequenceFile、MapFile

Hadoop点滴-Hadoop的IO的更多相关文章

  1. Hadoop点滴-Hadoop分布式文件系统

    Hadoop自带HDFS,即 Hadoop Distributed FileSystem(不是HaDoop  FileSystem 的简称) 适用范围 超大文件:最新的容量达到PB级 流式数据访问:H ...

  2. org.apache.hadoop.ipc.RemoteException(java.io.IOException)

    昨晚突然之间mr跑步起来了 jps查看 进程都在的,但是在reduce任务跑了85%的时候会抛异常 异常情况如下: 2016-09-21 21:32:28,538 INFO [org.apache.h ...

  3. 运行基准测试hadoop集群中的问题:org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /benchmarks/TestDFSIO/io_data/test_

    在master(即:host2)中执行 hadoop jar hadoop-test-1.1.2.jar DFSCIOTest -write -nrFiles 12 -fileSize 10240 - ...

  4. hive运行query语句时提示错误:org.apache.hadoop.ipc.RemoteException: java.io.IOException: java.io.IOException:

    hive> select product_id, track_time from trackinfo limit 5; Total MapReduce jobs = 1 Launching Jo ...

  5. HBase中此类异常解决记录org.apache.hadoop.ipc.RemoteException(java.io.IOException):

    ERROR: Can't get master address from ZooKeeper; znode data == null   一定注意这只是问题的第一层表象,真的问题是: File /hb ...

  6. hadoop报错java.io.IOException: Bad connect ack with firstBadLink as 192.168.1.218:50010

    [root@linuxmain hadoop]# bin/hadoop jar hdfs3.jar com.dragon.test.CopyToHDFS Java HotSpot(TM) Client ...

  7. hadoop报错java.io.IOException: Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured

    不多说,直接上干货! 问题详情 问题排查 spark@master:~/app/hadoop$ sbin/start-all.sh This script is Deprecated. Instead ...

  8. Spark- ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

    运行 mport org.apache.log4j.{Level, Logger} import org.apache.spark.rdd.RDD import org.apache.spark.{S ...

  9. idea 提示:ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException解决方法

    Windows系统中的IDEA链接Linux里面的Hadoop的api时出现的问题 提示:ERROR util.Shell: Failed to locate the winutils binary ...

随机推荐

  1. 设计模式(C#)——08组合模式

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321       游戏通常包含许多视图.主视图中显示角色.有一个子视图,显示玩家的积分.有一个子视图,显示游戏中剩下的时间.      ...

  2. unity编辑器扩展_07(创建对话框,检测按钮的点击,点击按钮后提示信息,保存设置的数据,显示点击按钮后的处理的进度条信息)

    代码: using UnityEditor;using UnityEngine; public class ChangeValue : ScriptableWizard {               ...

  3. 使用WPF为Powershell程序制作GUI界面

    1. 使用Xaml创建应用界面 打开visual studio,创建一个新的项目,在已安装模板中选择Visual C# →Wpf应用. 完成创建后,我们得到如下图所示的应用界面. wpf界面是基于xa ...

  4. 从强转 byte 说起

    折腾的心,颤抖的手,只因在 main 函数中执行了一次 int 强转 byte 的操作,输出结果太出所料,于是入坑,钻研良久,遂有此篇. 我们都知道,Java中有8中基本数据类型,每种类型都有取值范围 ...

  5. 常用maven整合

    常用Maven依赖 rt,常用Maven配置整合,不定期更新 一.dependencies 1.jstl开发环境 <!-- jstl开发环境 --> <!-- https://mvn ...

  6. MyBatis_Generator (MBG)逆向工程的四种方式

    mybatis是目前很流行的持久层框架,其逆向工程更是大大缩减了我们的开发时间.有兴趣的可以看文档. 文档地址: http://www.mybatis.org/generator/index.html ...

  7. HTML5 01. 布局、语义化标签、智能化表单、表单元素/标签/属性/事件、多媒体、类操作、自定义属性

    1.知识点 lang = “en”   所用语言是英文 文档结构更简洁 IE8一下不支持h5c3 书写更宽松 div没有语义 标签语义化:在合适的地方使用合适的标签 对seo优化友谊 网页经典布局 页 ...

  8. input上传按钮的优化

    在使用input标签按钮的时候,<input type="file" value="" /> 显示很难看,怎么办? 使用label <li c ...

  9. Tomcat服务器学习和使用

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  10. puttdy连接服务器报错No supported authentication methods available (server sent:publickey,gassapi-keyex,gassapi-with-mic)

    No supported authentication methods available (server sent:publickey,gassapi-keyex,gassapi-with-mic) ...