- 浏览: 151011 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (113)
- Java工具类 (3)
- Hibernate (1)
- Struts>1&2 (0)
- Spring (0)
- Web前端 (1)
- 数据库 (2)
- 中间件 (3)
- 搜索引擎 (11)
- EJB (1)
- Log日志 (1)
- OS操作系统 (7)
- Java文档 (4)
- Security (1)
- Exception&Error (7)
- 日志&心情 (7)
- 开心一下 (3)
- 云计算 (41)
- Cache缓存 (4)
- MongoDB (1)
- OS操作系统 Linux (7)
- jquery (1)
- 机器学习 (2)
- Plugins (2)
- AJAX (1)
- Java工具 (1)
- WebService (1)
最新评论
-
a420144030:
你好,我想计算n篇文章的相似度,用mahout能处理吗,如何做 ...
mahout使用 -
di1984HIT:
OK,真的很牛啊
hadoop常见错误 -
xwl1991:
还真是这个问题 !
quartz报错java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.ord
大数据的储存:百度HDFS集群的数据压缩
- 博客分类:
- 云计算
2012年4月13日,由IT168(ITPUB、IXPUB、ChinaUnix)主办的2012中国数据库技术大会(DTCC)在北京隆重召开。大会第三天,百度基础架构部高级工程师孙桂林发表了主题为“百度HDFS集群的数据压缩”的演讲。
当前,数字信息急剧膨胀。根据IDC的研究结果,2011年创造的信息数量达到1800EB,每年产生的数字信息量还在以60%的速度高速增长,到2020年,全球每年产生的数字信息将达到35ZB。面对海量数据处理的需求,“大数据”这一新的概念应运而生。关于大数据的定义,目前还没有标准的说法。
Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。HDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。HDFS开始是为开源的apache项目nutch的基础结构而创建,HDFS是hadoop项目的一部分,而hadoop又是lucene的一部分。
HDFS设计的针对对象主要适合流式访问的超大文件、在使用便宜的硬件搭建的集群上运行。HDFS中Block的大小默认是64M,小于块大小的的文件并不占据整个块的全部空间(一个块可能存有多个文件)。
在谈到为什么使用百度HDFS集群的数据压缩时,孙桂林表示,在存储上带来了灵活的可扩展性、高可用性、充分提高了存储空间利用率。
使用Blocks的好处:
1) 可以存储大文件,一个文件的大小可以大于任何一个单块硬盘的容量
2) 把存储单元抽象成块而不是文件,简化了存储子系统:简化了数据管理、取消元数据关注
3) 能很好适应数据复制,数据复制保证系统的容错和可用性。
HDFS提供了两种namenode的容错机制:
1) 备份存储持久化状态的文件系统元数据的文件
2) 提供secondary namenode。Secondary的主要角色是合并namespace image和edit log,防止edit log过大。但是secondary namenode的数据较master namenode的数据有所延迟,所有数据恢复以后肯定会有数据丢失。
一般来讲,冷数据和老数据经常会被压缩,块压缩相对于文件压缩的优势在于三方面。第一,透明性,客户端不需要知道压缩的存在,也不需要知道升级。第二,灵活性,对实际压缩的算法没有限制。第三,本地性,不需要在跨数据节点的压缩操作。
百度HDFS集群的数据压缩
提到异步压缩时,孙桂林表示,一个集群能从未压缩的状态变成压缩状态最多花费十天,如果压缩的数据很繁琐,我们可以通过处理器来减轻CPU的负载。
存储压缩的机制
DataNode数据已经压缩了,Client可能不知道,DataNode 在响应Client的时候回将数据解压。
Client 和DataNode之间可以通过压缩的机制。整个通信协议需要一些扩展,需要告诉写方,我们所需要压缩的文件格式以及什么样的编码。在写的操作上,存储编码和传输编码不一样,我们可以选择是否压缩储存和传输编码。在读的操作上,支持一些协议来进行转换。
为了节省带宽,我们尽量避免DataNode 和DataNode之间重复压缩的问题。在Append之前我们需要解压最后的块,还是解压最后一兆数据。一旦文件被Append之后,表示这个文件的最后一个块不被压缩。在压缩的时候,首先我们需要选择压缩速率,相对而言解压的速度更为关键。我们的目标是要实现节省存储空间、避免压缩影响计算作业,实时压缩透明。
如何处理小文件
1、 把小文件变成大文件(归档操作)
2、 把相同目录下的小文件合成一个大文件。数据块的大小可以达到一个数量级,可以做压缩处理。
不同的集群,压缩比部太一样,压缩比介于10%到50%之间,大部分的集群我们都可以获取50%以上的空间收益。
未来,我们主推的是后台异步压缩,等待CPU空闲的时候,我们才会开始压缩。压缩过程和压缩编码完全透明,我们可以采用分级压缩方法。对于冷数据,我们可以使用一些极致的压缩算法,尽量来节省空间。通过一些归档操作,我们可以节省大量的磁盘空间。
很多时候,我们A模块的输出数据刚好是B模块的输入,我们可以提供一个块共享的Quota Calculating ,我们可以通过块共享的机制使用快速拷贝。
一个文件如果存在的时候,对于一些重复的块文件该怎么处理,这将是我们未来的发展方向。
发表评论
-
用Sqoop把数据从HDFS导入到MYSQL
2012-10-27 23:30 2313转自:http://www.kaifajie.cn/mySQL ... -
用sqoop进行mysql和hdfs系统间的数据互导
2012-07-31 16:32 1878转自:http://abloz.com/2012/07/19/ ... -
从hive将数据导出到mysql
2012-07-31 16:31 1781转自:http://abloz.com/2012/07/20/ ... -
Hive SQL
2012-07-19 13:49 1397转自:http://www.tbdata.org/ ... -
Hive优化总结
2012-07-09 15:18 4261优化时,把hive sql当做ma ... -
hadoop/mapred 优化方法
2012-06-12 11:47 1368从三个方面着手优化 : 1. hadoop配置 2. ... -
hadoop集群dfs.data.dir目录权限问题导致节点无法启动
2012-06-11 18:32 6185安装使用Hive的时候发现文件无法从本地拷贝到hadoo ... -
hadoop中的balancer
2012-06-11 15:49 1100对于HDFS集群,经常长时间的运行,尤其是大量的delete操 ... -
Hadoop集群上使用Lzo压缩
2012-05-28 11:03 900转自:http://www.tech126.com/hadoo ... -
使用Hive读取Hbase中的数据
2012-05-23 13:12 2238转自:http://www.4ucode.com/Study/ ... -
在XP系统下配置eclipse集成hadoop开发
2012-05-05 11:09 1009一、目的:由于hadoop只能在Linux环境下运行,所以对于 ... -
使用Hive读取Hbase中的数据
2012-04-18 14:24 1053转自:http://www.4ucode.com/Study/ ... -
Web日志分析方法概述 让复杂的数据挖掘变得简单可行
2012-04-13 16:31 834志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志 ... -
应用sqoop将MySQL数据库中的数据导入Hbase
2012-04-12 11:31 2033转自:http://www.bwxxkj.com/a/jish ... -
hadoop中的trash机制,恢复删除的文件
2012-03-31 13:46 2153Hadoop回收站trash,默认是关闭的。 1.修改con ... -
Hadoop 和DBMS 的互补性
2012-03-29 12:22 642随着Microsoft 也加入Hadoop 阵营,Hadoop ... -
Hadoop 中的两表join
2012-03-29 12:20 822转自:http://www.gemini52013 ... -
各版本编译hadoop eclipse plugin
2012-03-29 12:19 1349转自:http://www.gemini52013 ... -
hadoop常见错误
2012-03-24 13:04 1619错误1:bin/hadoop dfs 不能正常启动,持续提 ... -
hbase运维
2012-03-23 17:33 1281转自:http://blog.bluedavy.c ...
相关推荐
大数据开发:HDFS数据节点与名称节点的通信机制.docx
一、单选题 1、以下哪个步骤不属于数据的采集与预处理: A....B.Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是针对GFS的开源实现 大数据导论:大数据技术单元测试与答案全文共5页,当前
华为大数据认证,HDFS部分
发展到目前为止,HDFS的运用非常广泛,基本上很多大数据平台大部分都会选用HDFS(或者类似HDFS)这样的分布式文件系统、来作为海量数据存储的一个解决方案。 定义: Doug Cutting 二、HDFS优势 高容错性,HDFS提供了...
理论篇揭秘大数据存储基石HDFS-理论篇.pptx
HDFS存储机制 1 Block 2 元数据 3 HDFS读流程 4 HDFS写流程 5 目 录 一、HDFS存储机制 假如目前由一个10G的文件要存储到HDFS中。首先,会在客户端处进行切分,切分成一个个Block块,默认情况下Block块的大小是128M。...
首先是NameNode,它是HDFS主从架构当中的主节点,其实主要负责接受客户端提交过来的读写请求、以及一些类似管理的工作,比如说,数据存到HDFS当中每个文件都会对应一份元数据信息,这些元数据信息都是存放在NameNode...
HDFS Shell命令允许使用命令行的方式在HDFS存储中进行文件夹和文件操作,包括像:文件夹的增删改查、文件的增删改查等等。 HDFS Shell命令 调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。 所有的的FS ...
大数据-java操作HDFS的增、删、查等基本操作,maven项目
大数据技术其实是分布式技术在数据处理领域的创新性应用,本质和我们此前讲到的分布式技术思路一脉相承:用更多的计算机组成一个集群,提供更多的计算资源,从而满足更大的计算压力要求。 分布式文件存储 HDFS 架构 ...
大数据 培训 课程 入门 HDFS hadoop
大数据面试突击系列HDFS原理篇
大数据 Hadoop HDFS 详解
(1)HDFS集群:负责海量数据的存储,集群中的角色主要有 NameNode / DataNode/SecondaryNameNode。 (2)YARN集群:负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager (3)...
1.HDFS命令行操作 1.1 HDFS命令行操作 1.1.1HDFS概述 HDFS概述 Hadoop由3个部分构成: Core HDFS MapReduce 1.1.2HDFS命令 HDFS命令 HDFS基本操作命令: -help [cmd] // 显示命令的帮助信息 -ls(r) <path> // 显示...
大数据与云计算教程课件 优质大数据课程 05.Hadoop入门数据分析实战(共57页).pptx 大数据与云计算教程课件 优质大数据课程 06.HDFS(共38页).pptx 大数据与云计算教程课件 优质大数据课程 07.HDFS Shell命令(共...
大数据与云计算教程课件 优质大数据课程 05.Hadoop入门数据分析实战(共57页).pptx 大数据与云计算教程课件 优质大数据课程 06.HDFS(共38页).pptx 大数据与云计算教程课件 优质大数据课程 07.HDFS Shell命令(共...
课后作业 1.如何检测损坏的文件,以及...2.添加节点如何优化数据平衡时的数据风暴 3.如何合并碎小的文件,为什么要这么做? 4.简述Hadoop集群的心跳机制 5.哪个类可以过滤HDFS读取的路径 6.编写一个程序读取Har文件信息
《大数据导论》HDFS的应用实验报告,含实验源码。实现功能:读取文件中的数字,进行排序,排序后输出。
启动HDFS集群 任务七 验证HDFS集群 任务一 Hadoop安装及JDK环境变量配置 所有节点,使用 root 用户登录,修改 /opt 的权限 # chmod 777 /opt --修改 /opt 文件夹的权限,使得 hadoop用户可读写 主节点使用 hadoop ...