Hadoop I/O By ShiChaojie.

Slides:



Advertisements
Similar presentations
index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
Advertisements

大数据基础技术和应用. 大纲 大数据概述 大数据基础技术 工程技术 策略技术 典型应用 我们处于数据爆炸的时代 数据库 文字记录 照片 线下数据信息化 网页数据 用户行为记录 数字图像 互联网 - 移动互联网 设备监控 智能家居 摄像头 传感器 地球上至今总共的数据量: 在 2006 年,个人用户才刚刚迈.
急性腹痛 急性疼痛. 急性疼痛 — 孙树杰、沈洪、 刘保池 (1)(1)(1)(1) 概 述 (2)(2)(2)(2) 重症急性腹痛的临床特点 (3)(3)(3)(3) 急性腹痛的分类及诊治 主要教学内容.
课程介绍 (PPT版本号:2016年1月24日版本) 温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字 林子雨
中华字库的云输入法 王勇 基础软件国家工程研究中心
第九课 第二框 建设社会主义精神文明.
让我们撑起一把青春伞.
让 我 们 撑 起 一 把 青 春伞.
C语言程序设计 李伟光.
會計資訊系統 專章A.
第三章 調整與編表.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
一百零一年溪口國小 學校日 班級: 三年三班 教師: 張慈麟.
兒童及少年保護宣導 和興國小校長 吳柚 中華民國 100 年 8 月 31日 2008張淑慧.
中国特色社会主义政党制度 主讲:西南大学 李强 2011年12月28日.
基于Hadoop的Map/Reduce框架研究报告
关注热点 2014年天猫双十一成交总额 571亿 点亮217个国家地区
欢迎南京市政治学科的教研同仁 光临指导.
第二章 项目一:企业厂区与车间平面设计 1.
律师公司业务实务 北京市嘉润道和律师事务所 龚志忠 2011年10月21日.
消 息 制作教师:程焕新 湖北省黄冈高级技工学校.
共产党员致力 新疆油田信息化建设 数据公司信息业务党支部 2013年6月.
南京大学计算机科学与技术系 主讲人:黄宜华 2011年春季学期
面向海量数据的 高效天文交叉证认的研究 答辩人:赵青 指导老师:孙济洲 教授 天津大学计算机学院
高等职业学校建筑设计类与艺术设计类专业骨干教师实践能力国家级培训
第11章 海量信息存储 主讲:刘方明 副教授 华中科技大学计算机学院
云梯的多namenode和跨机房之路
数据采集与Hadoop框架 报告人:黄文君 导 师:王华忠 BEA Confidential.
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
没有请柬该如何办 记者如何选取有利位置 着装 准备工作 提问时的注意事项
發展東華特色課程 期末成果發表 呂進瑞 國立東華大學財金系.
3.1能源资源的开发 ——以我国山西省为例.
一 二 三 四 五 六 七 项目建设总体情况 建设工作机制与举措 项目建设进展 建设经费投入与使用 贡献与示范 典型案例
走向自立人生 自己的事情自己干 一、自立人生少年始. 走向自立人生 自己的事情自己干 一、自立人生少年始.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
認識同志伴侶 劉安真 弘光科技大學通識教育中心助理教授.
一种基于Hadoop的视频大数据分布式解码方法 冯强
祖 父 母 節.
Made by Feng Nie 开源机器学习库&Hadoop介绍 Made by Feng Nie
Introduction to MapReduce
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
第3章 分布式文件系统HDFS (PPT版本号:2017年2月版本)
第2章 大数据处理架构Hadoop (PPT版本号:2017年2月版本)
快速学习环境搭建 安装前预备工作(Linux相关配置) 实操演示(hadoop、hbase为例) 总结&练习题(课后练练手)
實現雲端運算 Hadoop HDFS 磁碟及記憶體之即時分級服務
《大数据技术原理与应用》 第七章 MapReduce (2016春季学期) 林子雨 厦门大学计算机科学系 主页:
CHAPTER 6 認識MapReduce.
厦门大学数据库实验室 MapReduce 连接
Hadoop平台與應用規劃實作 報告者:劉育維.
Cloud Computing MapReduce进阶.
从TDW-Hive到TDW-SparkSQL
Skew Join相关论文 报告人:蔡珉星 厦大数据库实验室
Hadoop.
基于大数据的物流资源整合 福建师范大学协和学院 沈庆琼.
Homework 1(上交时间:10月14号) 倒排索引.
软件工程基础 云计算概论 刘 驰.
大数据介绍及应用案例分享 2016年7月 华信咨询设计研究院有限公司.
大数据与物流 沈庆琼 物流教研室.
基于大数据平台数据管理研究 何家乐 2013年7月 中国科学院高能物理研究所.
软件测试 (四)静态测试与动态测试.
A Big Data Framework for u-Healthcare Systems Utilizing Vital Signs
Unit 05 雲端分散式Hadoop實驗 -I M. S. Jian
用牛顿环测量透镜的曲率半径 华中农业大学应用物理系 物理实验教学中心
密级: 亿赞普Hadoop应用浅析 IZP 肖燕京.
基于云计算及数据挖掘技术的海量数据处理研究
第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
如何制订幼儿园园本培训工作计划 大连亿达世纪城幼儿园 姜承华 2011年3月10日.
方格紙上畫正方形.
03/03/2019 豐盛生命的呼召 楊知予長老.
第四章 買賣業會計.
Presentation transcript:

Hadoop I/O By ShiChaojie

index 数据完整性 1 2 3 4 压缩 序列化 基于文件的数据结构

Introduction 所谓I/O,通俗的讲就是:利用接口等处理不同输入输出信息。 Hadoop自带一套原子操作用于数据I/O。其中一些技术比较常用,如数据完整性保持与压缩。 另一些则是基于Hadoop工具或者API,它们所形成的构建模块可用于开发分布式系统,比如序列化操作和在盘(on-disk)数据结构。 对于多达几个TB的数据集,这些方法特别值得关注。

数据完整性 目的: 用户希望系统在存储和处理数据时,数据不会有任何损失 或丢失。 现实: Hadoop对硬件要求不高,硬件故障。 系统需要处理的数据达到Hadoop能够处理的极限时,数 据被破坏的概率还是很高的 方案: 引入校验和(checksum)的概念:在数据第一次引入系 统时计算效验和通过不可靠通道传输时再次计算校验和。 校验和无法修复数据,因此推荐使用ECC内存。 CRC-32(循环冗余校验)

数据完整性—HDFS HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和。它针对每个由io.bytes.per.checksum指定字节的数据计算校验和。(512Bytes CRC32) datanode负责在验证收到数据后存储数据及其校验和。 客户端从datanode读取数据时,也会验证校验和,将它们与datanode中存储的校验和进行比较。 此外,每个datanode也会在后台线程中运行一个DataBlockScanner,定期验证存储在这个datanode上所有的数据块。 HDFS文件系统存储着每个数据块的副本,通过复制完好的数据副本可以修复损坏的数据块。

数据完整性—LocalFileSystem Hadoop的LocalFileSystem执行客户端的校验和验证。当写入名为filename的文件时,文件系统客户端会明确地在包含每个文件块校验和同一个目录内新建一个名为.filename.crc 的隐藏文件。 就像HDFS一样,文件块的大小由属性io.bytes.per.checksum控制,控制,默认为512bytes。 在读取文件时需要验证校验和,检测到错误,LocalFileSystem将抛出一个ChecksumException异常。 校验和的计算代价是相当低的。

数据完整性—ChecksumFileSystem LocalFileSystem通过ChecksumFileSystem完成校验,有了该类,其他文件系统(无校验和系统)加入校验和就变的相当简单,ChecksumFileSystem类继承自FileSystem类。一般用法如下: Configuration conf = … FileSystem fs = new RawLocalFileSystem(); Fs.initialize(null , conf);

压缩 压缩的好处:可以减存储文件所需要的磁盘空间;可以加速数据在网络和磁盘上的传输。 常见的压缩格式:

压缩-codec Codec实现了一种压缩-解压缩算法。Hadoop中,一个对CompressionCodec接口的实现代表一个codec。所以GzipCodec包装了gzip的压缩和解压缩算法。 Hadpoop实现的codec:

压缩-CompressionCodec CompressionCodec接口包含两个函数,可以用于压缩和解压数据。 对写入输出数据流的数据进行压缩,可用createOutputStream(OutputStream out)方法在底层的数据流中对需要以压缩格式写入在此之前尚未压缩的数据新建一个CompressionOutputStream对象。 对输入数据流中读取的数据进行解压缩的时候,调用createInputStream(InputStream in)获取CmpressionInputStream,通过该方法从底层数据流读取解压缩后的数据。

压缩-CompressionCodec 该程序压缩从标准输入读取的数据,然后将其写到标准输出。

压缩-CompressionCodecFactory 若文件以.gz结尾,则可以用GzipCodec来读取。 通过使用getCodeC()方法, CompressionCodecFactory提供了一种方法将文件名映射到一个CompressionCodec,改方法读取文件的Path对象作为参数。

压缩-原生类库 为了性能,最好使用“原生”(naive)类库来实现压缩和解压缩。 在测试中,使用原生gzip类库可以减少大约一半的解压缩时间和大约10%的压缩时间(与内置的java实现)。 下表给出了每种压缩格式的java实现和原生类库实现: Codecpool:如果使用原生代码库并且在应用中执行大量的压缩和解压缩操作,可以使用Codecpool,它允许反复使用压缩和解压缩,以分摊创建这些对象所涉及的开销。

压缩-压缩和输入分片 压缩将由MapReduce处理的数据时,压缩格式是否支持切片(splitting)是非常重要的。

压缩-在MapReduce中使用压缩 如果输入文件是压缩的,根据文件扩展名推断出相应的codec后,MapReduce会在读取时文件时自动解压缩文件。 对MapReduce作业的输出进行压缩,应在祖业配置过程中,将mapred.output.compress属性设置为true和mapred.output.compression.codec属性设置为打算使用的压缩codec的类名。

压缩-在MapReduce中使用压缩 为生顺序文件(sequence file),可以设置mapred.output.compression.type属性来控制要使用哪种压缩格式。 默认值是RECORD,即针对每条记录进行压缩。(BLOCK 、压缩效率高)

压缩-在MapReduce中使用压缩 对map阶段的中间输如进行压缩,可以获得不少好处。 在作业任务中启用map任务输出gzip压缩格式的代码:

序列化 所谓序列化(serialization),是指将结构化的对象转化为字节流,以便在网络上传输或写到磁盘进行永久存储。 反序列化( deserialization )是指将字节流转回到结构化对象的逆过程。 领域:进程间通信和永久存储。 Hadoop中,系统的多个节点上的进程间的通信是通过“远程过程调用(RPC)”实现的,远程节点将二进制流反序列化为原始信息。 RPC格式: 紧凑、快速、可扩展、互操作 Hadoop使用自己的序列化格式Writable,它格式紧凑、速度快,但很难用Java以外的语言进行扩展或使用。

序列化-Writable接口 writable接口定义了两个方法: 1. 将其状态写到DataOutput二进制流 2.从DataInput二进制流读取其状态

序列化-Writable接口 用途: 使用Inwritable封装一个Java int 在序列化对象捕捉字节流

序列化-Writable接口 用途: 反序列化(从一个字节数组中读取一个Writable对象): deserialize()函数读取数据,原始值为163

序列化-WritableComparable 和 comparator 该接口实现了比较数据流的记录,而无需把数据流反序列化为对象(好处)。 comparator实现了compare()方法。 WritableComparator提供了连个主要功能。第一:提过了对原始compare()方法的一个默认实现。第二,充当RawComparator实例的工厂。

序列化-Writable类 Hadoop自带的org.apache.hadoop.io包自带广泛的Writable类供选择 层次结构图:

序列化-java基本类型的Writable类

序列化-java基本类型的Writable类 对整数的编码 Example:值163需要两个字节

序列化-java基本类型的Writable类 Text类型: ByteWritable类型: NullWritable类型: Writable集合类:

序列化-序列化框架 尽管多数MapReduce都使用Writable类型的键和值,但并非MapReduce API强制使用的。 事实上,只要有一种机制支持对每个类型进行类型与二进制表示的来回转换即可。 为了支持这一机制,Hadoop有一个针对可替换序列化框架(serialization framework) Why not java serialization?

序列化-Avro 旨在解决Hadoop中Writable类型的不足:缺乏语言的可移植性