Hadoop点滴-Hadoop的IO
- Hadoop自带一套原子操作用于数据的I/O操作。
- 如果系统中需要处理的数据量达到Hadoop的处理极限时,数据被损害的概率还是很高的
- 检测数据是否被损害的常见措施是,在数据第一次被引进系统时,计算校验和(checksum),并在数据通过一个不可靠的通道进行传输时,再次计算校验和。
- 校验和也是可能损坏的,但由于校验和比数据小得多,所以损坏的可能性非常小
- HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和。
- 默认情况下为512个字节计算校验和,由于CRC-32校验和是4个字节,所以存储校验和的额外开销低于1%
- datanode负责在收到数据后存储该数据及其校验和之前对数据进行验证,它在收到客户端的数据或复制其他datanode的数据时执行这个操作。
- 正在写数据的客户端将数据及其校验和发送到有一些列datanode组成的管线,管线中最后一个datanode负责验证校验和。如果datanode检测到错误,客户端便会厚道一个IOException异常的一个子类。
- 客户端读取datanode数据时,也会验证校验和。
- 每个datanode中均持久保存有一个用于验证校验和 日志(persistent log of checksum verification),所有他知道每个数据块的最后一次验证时间。保存这些统计信息对于检测损坏的磁盘很有价值
- 不只是客户端在读取数据块时,会验证校验和,每个datanode也会在一个后台线程中运行一个DataBlockScanner。该措施是解决物理存储媒体上损坏的有力措施。
- 由于HDFS存储着每个数据块的副本(replica),因此它可以通过副本来修复损害的数据块,进而得到一个新的、完好无损的副本。基本思路是:客户端读取数据块时,如果检测到错误,首先向namenode报告已损坏的数据块及其正在尝试读操作的这个datanode,在抛出ChecksumException。namenode将这个数据块副本标记为已损坏,这样它不再将客户端处理请求直接发送到这个节点,或者尝试将这个复本复制到另一个datanode,如此一来,数据块的副本以腻子(replication factor)又回到期望的水平。
- 如果在使用open()方法读取文件之前,将false值传递给FileSystem对象的setVerfiChecksum()方法,即可禁用校验和验证
- 可以使用hadoop fs -checksum 来检查一个文件的校验和
- 校验和的计算代价是相当低的,java中使用的是本地代码实现的
- 压缩:有两大好处,减少存储文件所需要的磁盘空间,并加速数据在网络和磁盘上的传输。这两大好处在处理大量数据时相当重要。
- 序列化:用于分布式数据处理的两大领域:进程间通信和永久存储
- Hadoop为什么不使用java自带的序列化功能,反而要单独实现一套呢。java自带序列化与编程语言紧密相关,且太负责。hadoop需要一套至精至简、可以精确控制对象读写。
- Hadoop为什么不使用RMI,而要使用RPC呢:RPC更高效,且可以精确控制连接、延迟、缓冲。
- 基于文件的数据结构:SequenceFile、MapFile
Hadoop点滴-Hadoop的IO的更多相关文章
- Hadoop点滴-Hadoop分布式文件系统
Hadoop自带HDFS,即 Hadoop Distributed FileSystem(不是HaDoop FileSystem 的简称) 适用范围 超大文件:最新的容量达到PB级 流式数据访问:H ...
- org.apache.hadoop.ipc.RemoteException(java.io.IOException)
昨晚突然之间mr跑步起来了 jps查看 进程都在的,但是在reduce任务跑了85%的时候会抛异常 异常情况如下: 2016-09-21 21:32:28,538 INFO [org.apache.h ...
- 运行基准测试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 - ...
- 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 ...
- HBase中此类异常解决记录org.apache.hadoop.ipc.RemoteException(java.io.IOException):
ERROR: Can't get master address from ZooKeeper; znode data == null 一定注意这只是问题的第一层表象,真的问题是: File /hb ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
随机推荐
- JS高级(摘自简书)
JS高级 1. 访问对象属性(方法也是属性)的通用方式:obj['属性名'] 1. 属性名包含特殊字符,如"-".空格,访问:obj['content-type'] 2. 属性名不 ...
- CodeForces - 697C-Lorenzo Von Matterhorn(有点像LCA,原创
传送门: CodeForces - 697C 原创--原创--原创 第一次自己A了一道感觉有点难度的题: 题意:在一个类似于二叉树的图上,1 : u ,v,w 表示从u到v的所以路都加上w的费用: 2 ...
- CF - 1108 E 枚举上界+线段树维护
题目传送门 枚举每个点作为最大值的那个点.然后既然是作为最大值出现的话,那么这个点就是不需要被减去的,因为如果最小值也在这个区间内的话,2者都减去1,对答案没有影响,如果是最小值不出现在这个区间内的话 ...
- 杭电第六场 hdu6362 oval-and-rectangle 积分求期望
oval-and-rectangle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 棋盘问题 POJ - 1321 [kuangbin带你飞]专题一 简单搜索
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...
- Win7下部署Lepus企业级MySQL数据库监控
从官网下载(http://www.lepus.cc/soft/17)安装包后,解压到phpStudy的www目录下: 打开phpStudy管理界面,找到站点管理,并新增站点: 在浏览器里面打开后,报此 ...
- Intro to Machine Learning
本节主要用于机器学习入门,介绍两个简单的分类模型: 决策树和随机森林 不涉及内部原理,仅仅介绍基础的调用方法 1. How Models Work 以简单的决策树为例 This step of cap ...
- 大数据Hadoop基础入门到精通
1.hadoop前世今生: 1) 搜索引擎:网络爬虫+索引服务器(生成索引+检索) 2) Doung Cutting 3) Nutch a.分布式存储 b.分布式计算 4)GFS论文 doung c ...
- 013 turtle程序语法元素分析
目录 一.概述 二.库引用与import 2.1 库引用 2.2 使用from和import保留字共同完成库引用 2.3 两种库引用方法比较 2.4 使用import和as保留字共同完成库引用 三.t ...
- 实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示
最近有个需求,实时统计pv,uv,结果按照date,hour,pv,uv来展示,按天统计,第二天重新统计,当然了实际还需要按照类型字段分类统计pv,uv,比如按照date,hour,pv,uv,typ ...