hadoop 小文件 挂载 小文件对NameNode的内存消耗 HDFS小文件解决方案 客户端 自身机制 HDFS把块默认复制3次至3个不同节点。
hadoop不支持传统文件系统的挂载,使得流式数据装进hadoop变得复杂。
hadoo中,文件只是目录项存在;在文件关闭前,其长度一直显示为0:如果在一段时间内将数据写到文件却没有将其关闭,则若网络中断后,则我们得到的仅仅是一个空白文件;故:最好编写小文件,这样能尽快将其关闭-----错误。
【mapper 单个文件块 1:1】
由于hdfs的元数据保存在NameNode的内存中,因此创建的文件越多,所需的RAM就越多。从MapReduce角度看,小文件会导致效率低下。通常情况下,,每个Mapper都会被分配单个文件块作为
输入(除非使用了某些压缩编码)。如果过多的小文件,那么与待处理的数据相比,与待处理的数据相比,启动工作进程的代价就过高。这种碎片会导致更多的Mapper任务,使得总的Job运行时间增加。
【内存的容量严重制约了集群的扩展】
0-在HDFS中,任何Block、文件或者目录在内存中均以对象的形式存储,每个对象约占150Byte。若有1千万小文件,每个小文件占用1个Block,则NameNode约需要2GB空间:内存的容量严重制约了集群的扩展;
1-HDFS最初是为流式访问大文件而开发的,如果访问大量小文件,则需要不断从一个DataNode跳到另一个DataNode,严重影响了性能,导致最后处理大量小文件的速度远远小于处理同等大小的大文件的速度;每个文件要占用一个Solt,而Task启动将消耗大量的时间,从而导致大部分时间都耗费在启动和释放Task上。
【客户端 自身机制】
用户程序合并:
0-HadoopArchive SequenceFile CombineFileInputFormat

Q1、HDFS可以存储比单个磁盘空间还要大的文件吗?如果可以,什么原理?
Q2、HDFS是怎么实现数据的高可用(High Availability,HA)?
Q3、HDFS中让块分布在同一机架还是多个机架?
参考资料
(1)
HDFS特点:
1、大文件
大,huge,以兆字节为单位,100+MB;
小文件影响HDFS的性能的原因:元数据会消耗主节点NameNode的大量内存;
2、顺序访问
HDFS上的读和写操作都应该按照顺序处理。
只要文件的读取时有序的,MapReduce和其他执行引擎就可以高效地、任意次数地读取HDFS上的文件。
(2)
块抽象
块,block,由于存储文件的块抽象,你可以存储任意大小的文件。
块大小,blocksize,默认128MB。一个100MB的文件仅会占用一个HDFS块上的100MB。块会分布在多个节点上,可以存储比单个磁盘空间还要大的文件。
(3)
大多数系统通过(通常2个节点之间)复制整个数据结构来支持数据的高可用HA:这确保了如果其中一个节点或数据源失效了,另一个节点或数据的副本仍然可用的。
HDFS通过数据块的抽象在此基础上做了扩展,实现了2次改进:
i、默认情况下,HDFS想数据复制2次(而非1次),使得每个块共有3个副本;
ii、HDFS并不是把节点A上的所有块复制到节点B,而是吧这些块分布到多个节点之上;
示例:
HDFS把块默认复制2次至3个不同节点。
(4)
Hadoop components are rack-aware.
机架感知、Rack Awareness。
数据中心的机器通常放在机架或者某些用于承载服务器的容器中。一个机架上可以放置很多台机器。这些机器通宵场距离很近而且网络上下文中也很近。
相同机架上机器之间的连接通常比跨机器之间的连接更高效。通过向HDFS提供这种无理架构,分布式系统的性能和弹性都会得到改善。
可以让块分布在同一机架的多个节点上,这样连通性不收网络带宽的限制。
但让块分布在多个机架张,这样即使整个机架上的服务器全部失效,也可以保证块的数据不丢失。
hadoop 小文件 挂载 小文件对NameNode的内存消耗 HDFS小文件解决方案 客户端 自身机制 HDFS把块默认复制3次至3个不同节点。的更多相关文章
- 有关Java内存溢出及内存消耗的小知识
内存溢出原理: 我们知道,Java程序本身是不能直接在计算机上运行的,它需要依赖于硬件基础之上的操作系统和JVM(Java虚拟机). Java程序启动时JVM都会分配一个初始内存和最大内存给这个应用程 ...
- 合并hive/hdfs小文件
磁盘: heads/sectors/cylinders,分别就是磁头/扇区/柱面,每个扇区512byte(现在新的硬盘每个扇区有4K) 文件系统: 文件系统不是一个扇区一个扇区的来读数据,太慢了,所以 ...
- 解决HDFS小文件带来的计算问题
hive优化 一.小文件简述 1.1. HDFS上什么是小文件? HDFS存储文件时的最小单元叫做Block,Hadoop1.x时期Block大小为64MB,Hadoop2.x时期Block大小为12 ...
- HDFS 小文件处理——应用程序实现
在真实环境中,处理日志的时候,会有很多小的碎文件,但是文件总量又是很大.普通的应用程序用来处理已经很麻烦了,或者说处理不了,这个时候需要对小文件进行一些特殊的处理——合并. 在这通过编写java应用程 ...
- python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名。
python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名. 使用for循环即可实现: for name in range(1,11): desktop_path='C: ...
- hadoop学习;大数据集在HDFS中存为单个文件;安装linux下eclipse出错解决;查看.class文件插件
sudo apt-get install eclipse 安装后打开eclipse,提示出错 An error has occurred. See the log file /home/pengeor ...
- Hadoop HDFS分布式文件系统设计要点与架构
Hadoop HDFS分布式文件系统设计要点与架构 Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群 ...
- hadoop 提高hdfs删文件效率----hadoop删除文件流程解析
前言 这段时间在用hdfs,由于要处理的文件比较多,要及时产出旧文件,但是发现hdfs的blocks数一直在上涨,经分析是hdfs写入的速度较快,而block回收较慢,所以分心了一下hadoop删文件 ...
- 【Hadoop】HDFS - 创建文件流程详解
1.本文目的 通过解析客户端创建文件流程,认知hadoop的HDFS系统的一些功能和概念. 2.主要概念 2.1 NameNode(NN): HDFS系统核心组件,负责分布式文件系统的名字空间管理.I ...
随机推荐
- HDFS Scribe Integration 【转】
It is finally here: you can configure the open source log-aggregator, scribe, to log data directly i ...
- asp.net获取URL方法
方法如下: Request.Url.ToString()获取完整url(协议名+域名+站点名+文件名+参数):https://localhost:44300/WebForm1.aspx?abc=123 ...
- ylb:sql语句重命名表名和列名
ylbtech-SQL Server:SQL Server-sql语句重命名表名和列名 sql语句重命名表名和列名 ylb:sql语句重命名表名和列名 返回顶部 一.更改数据库名 sp_rena ...
- 转: maven打可执行的jar包以及classpath设置
from: http://drizzlewalk.blog.51cto.com/2203401/416508
- AngularJS的稍复杂form验证
代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsSoccerFormCheck.rar 代码: <!DOCTYPE HTM ...
- UNP学习笔记(第七章 套接字选项)
有多种方法获取和设置影响套接字的选项: 1.getsockopt和setsockopt函数 2.fcntl函数 3.ioctl函数 getsockopt和setsockopt函数 这两个函数仅用于套接 ...
- git 操作分支
1. git 查看本地分支:git branch 2. git 查看所有分支:git branch -a 3. git 新建本地分支:git branch branchName 4. git 新建分支 ...
- MySql(四):备份与恢复
一.数据库备份使用场景 下面我就列举一下我个人理解的我们能够需要用到数据库备份的一些比较常见的情况吧. a.数据丢失应用场景 1.人为操作失误造成某些数据被误操作:2.软件BUG 造成数据部分或者全部 ...
- Ajax请求的跨域(CORS)问题
用浏览器,通过XHR(XMLHttpRequest)请求向另外一个域名请求数据时.会碰到跨域(CORS)问题. CORS:Cross-Origin Resource Sharing 什么是跨域? 简单 ...
- 一份还热乎的蚂蚁面经(已拿Offer)!附答案!!
本文来自我的知识星球的球友投稿,他在最近的校招中拿到了蚂蚁金服的实习生Offer,整体思路和面试题目由作者--泽林提供,部分答案由Hollis整理自知识星球<Hollis和他的朋友们>中「 ...