- 浏览: 596379 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Hadoop HDFS文件存储特点结构
- 博客分类:
- Hadoop
1:什么是HDFS?
HDFS适合做:
1.存储大文件。上G、T甚至P。
2.一次写入,多次读取。并且每次作业都要读取大部分的数据。
3.搭建在普通商业机群上就可以了。虽然会经常宕机,但HDFS有良好的容错机制。
HDFS不适合做:
1.实时数据获取。如果有这个需求可以用HBase。
2.很多小文件。因为namenode要存储HDFS的metadata(比如目录的树状结构,每个文件的文件名、ACL(权限管理)、长度、owner、文件内容存放的位置等等信息),所以HDFS上文件的数目受到namenode内存的限制。
3.并发环境下的写入和修改。
hadoop中存储文件以HDFS形式存储,HDFS拥有自己的设计原则:
1:文件大小以block块的形式存储
2:每个块至少分配到三台DataNode(看集群情况而定)
3:通过副本机制提高可靠度和吞吐量
4:hadoop1.0使用单一的master(NameNode)来协调存储元数据(metadata)
5:最有意思的是hadoop设计者没有设置客户端缓存机制,因为我们对处理数据有足够的信心。
下图为HDFS的系统结构
NameNode:主要存储元数据:例如:文件名,拷贝几份,分别备份到哪里;
过程大概如下:
client要向集群中写入数据,首先询问Master(NameNode),Master告知客户端向哪些DataNode写入数据,在往DataNode写入数据的同时,DataNode与NameNode保持心跳,如果DataNode在执行任务失败,NameNode会通过心跳机制得知DataNode死掉,将重新分配新的任务到其他的DataNode。
2:Block之副本放置策略
第一副本:放置在上传文件DataNode,如果是集群外提交,由NameNode选择一台磁盘不太满,CPU不太忙的节点。
第二副本:放置在于第一副本不同的机架的节点上
第三副本:与第二个副本相同集群的节点
也许根据业务的需要我们需要更多地副本,其他副本随机分配
3:Block的存储形式
1:Block默认大小64M,如果上传文件小于64M,那么仍然占用一个命名空间(NameNode metadata),
但是物理存储不会占用64M空间;(这也是hadoop为什么不太适合处理小数据的原因之一)
2:Block大小和副本数由Client端上传文件到HDFS时设置,其中副本数可以变更,Block是不可以再上传后变更的。
转自:http://www.cnblogs.com/zhanghuijunjava/archive/2013/04/22/hadoop-block_hdfs.html
HDFS适合做:
1.存储大文件。上G、T甚至P。
2.一次写入,多次读取。并且每次作业都要读取大部分的数据。
3.搭建在普通商业机群上就可以了。虽然会经常宕机,但HDFS有良好的容错机制。
HDFS不适合做:
1.实时数据获取。如果有这个需求可以用HBase。
2.很多小文件。因为namenode要存储HDFS的metadata(比如目录的树状结构,每个文件的文件名、ACL(权限管理)、长度、owner、文件内容存放的位置等等信息),所以HDFS上文件的数目受到namenode内存的限制。
3.并发环境下的写入和修改。
hadoop中存储文件以HDFS形式存储,HDFS拥有自己的设计原则:
1:文件大小以block块的形式存储
2:每个块至少分配到三台DataNode(看集群情况而定)
3:通过副本机制提高可靠度和吞吐量
4:hadoop1.0使用单一的master(NameNode)来协调存储元数据(metadata)
5:最有意思的是hadoop设计者没有设置客户端缓存机制,因为我们对处理数据有足够的信心。
下图为HDFS的系统结构
NameNode:主要存储元数据:例如:文件名,拷贝几份,分别备份到哪里;
过程大概如下:
client要向集群中写入数据,首先询问Master(NameNode),Master告知客户端向哪些DataNode写入数据,在往DataNode写入数据的同时,DataNode与NameNode保持心跳,如果DataNode在执行任务失败,NameNode会通过心跳机制得知DataNode死掉,将重新分配新的任务到其他的DataNode。
2:Block之副本放置策略
第一副本:放置在上传文件DataNode,如果是集群外提交,由NameNode选择一台磁盘不太满,CPU不太忙的节点。
第二副本:放置在于第一副本不同的机架的节点上
第三副本:与第二个副本相同集群的节点
也许根据业务的需要我们需要更多地副本,其他副本随机分配
3:Block的存储形式
1:Block默认大小64M,如果上传文件小于64M,那么仍然占用一个命名空间(NameNode metadata),
但是物理存储不会占用64M空间;(这也是hadoop为什么不太适合处理小数据的原因之一)
2:Block大小和副本数由Client端上传文件到HDFS时设置,其中副本数可以变更,Block是不可以再上传后变更的。
转自:http://www.cnblogs.com/zhanghuijunjava/archive/2013/04/22/hadoop-block_hdfs.html
发表评论
文章已被作者锁定,不允许评论。
-
Hadoop namenode的fsimage与editlog详解
2017-05-19 10:04 1177Namenode主要维护两个文件,一个是fsimage,一个是 ... -
Hadoop HBase建表时预分区(region)的方法学习
2017-05-15 11:18 1189如果知道Hbase数据表的key的分布情况,就可以在建表的时候 ... -
Hadoop HBase行健(rowkey)设计原则学习
2017-05-15 10:34 1124Hbase是三维有序存储的,通过rowkey(行键),colu ... -
Hadoop HBase中split原理学习
2017-05-12 13:38 2270在Hbase中split是一个很重 ... -
Hadoop HBase中Compaction原理学习
2017-05-12 10:34 994HBase Compaction策略 RegionServer ... -
Hadoop HBase性能优化学习
2017-05-12 09:15 684一、调整参数 入门级的调优可以从调整参数开始。投入小,回报快 ... -
Hadoop 分布式文件系统学习
2017-05-10 15:34 498一. 分布式文件系统 分布式文件系统,在整个分布式系统体系中处 ... -
Hadoop MapReduce处理wordcount代码分析
2017-04-28 14:25 591package org.apache.hadoop.exa ... -
Hadoop YARN完全分布式配置学习
2017-04-26 10:27 572版本及配置简介 Java: J ... -
Hadoop YARN各个组件和流程的学习
2017-04-24 19:04 647一、基本组成结构 * 集 ... -
Hadoop YARN(Yet Another Resource Negotiator)详细解析
2017-04-24 18:30 1153带有 MapReduce 的 Apache Had ... -
Hive 注意事项与扩展特性
2017-04-06 19:31 7451. 使用HIVE注意点 字符集 Hadoop和Hive都 ... -
Hive 元数据和QL基本操作学习整理
2017-04-06 14:36 1017Hive元数据库 Hive将元数据存储在RDBMS 中,一般常 ... -
Hive 文件压缩存储格式(STORED AS)
2017-04-06 09:35 2299Hive文件存储格式包括以下几类: 1.TEXTFILE ... -
Hive SQL自带函数总结
2017-04-05 19:25 1139字符串长度函数:length ... -
Hive 连接查询操作(不支持IN查询)
2017-04-05 19:16 718CREATE EXTERNAL TABLE IF NOT ... -
Hive优化学习(join ,group by,in)
2017-04-05 18:48 1814一、join优化 Join ... -
Hive 基础知识学习(语法)
2017-04-05 15:51 896一.Hive 简介 Hive是基于 Hadoop 分布式文件 ... -
Hive 架构与基本语法(OLAP)
2017-04-05 15:16 1242Hive 是什么 Hive是建立在Hadoop上的数据仓库基础 ... -
Hadoop MapReduce操作Hbase范例学习(TableMapReduceUtil)
2017-03-24 15:37 1208Hbase里的数据量一般都 ...
相关推荐
1. **Hadoop HDFS**:Hadoop HDFS是分布式文件系统,用于存储大量数据。它以高容错性和可扩展性为设计目标,使得数据可以在多台机器上分布存储。Java API提供了访问HDFS的接口,例如`org.apache.hadoop.fs....
通过阅读《HDFS——Hadoop分布式文件系统深度实践》,读者不仅可以掌握HDFS的基本操作,还能深入了解其内部机制,从而更好地利用HDFS来构建和管理自己的大数据存储系统。书中的实例和实践指导对于提升Hadoop开发者和...
Hadoop HDFS文件系统技术概述 Hadoop Distributed File System(HDFS)是一种分布式文件系统,旨在提供高容错、可靠、可扩展的文件存储解决方案。HDFS来自Google的GFS(Google File System),是GFS的开源版本。 ...
Hadoop HDFS文件系统技术概述 概述:HDFS(Hadoop Distributed File System)是Hadoop生态系统中的核心组件,作为分布式文件系统,HDFS提供了高容错、可扩展、可靠的存储解决方案,广泛应用于大数据处理和分析领域。...
本文件“hadoophdfs写入文件原理详解共2页.pdf.zip”虽然只有短短两页,但应该涵盖了HDFS文件写入的关键流程。以下是基于该主题的详细知识解析: 1. **HDFS架构**:HDFS是由NameNode和DataNode组成的。NameNode作为...
标题"I001-hadoophdfs-mkdirs.7z"指向的是一个关于Hadoop HDFS(Hadoop Distributed File System)操作的压缩包文件,特别是关于创建目录(mkdirs)的教程或参考资料。Hadoop是Apache软件基金会开发的一个开源框架,...
3. Linux FS的结构及其在HDFS中的作用:Linux FS是基于树形结构的文件系统,其中文件存储在树叶节点,而其他节点是目录。Linux FS是HDFS的底层文件系统,这意味着HDFS的每次读写操作都是通过Linux文件系统的读写操作...
本文主要讨论了在 Java Web 程序中上传文件到 Hadoop HDFS 文件系统中失败的原因分析及解决方法。通过对问题的分析和解决,可以总结出以下知识点: 1. Hadoop 文件上传失败的原因分析: 在上传文件到 Hadoop HDFS ...
### Hadoop文件存储结构:深入理解HDFS #### 引言与目标设定 Hadoop分布式文件系统(HDFS)作为一款专为运行在廉价硬件上的分布式文件系统设计,其架构和功能设定旨在应对大规模数据集的高效管理和处理。不同于...
Hadoop分布式文件系统(HDFS)是为处理大规模数据集而设计的一种高容错性的分布式存储系统。HDFS源于Apache Nutch项目,是Hadoop项目的一部分,旨在支持高吞吐量的数据访问,适用于大规模批量处理任务,而非常规的...
标题中的“hadoop hdfs ftp”表明我们正在讨论Hadoop分布式文件系统(HDFS)与FTP(文件传输协议)的结合使用。Hadoop是Apache软件基金会开发的一个开源框架,主要用于处理和存储大量数据,而FTP则是一种标准网络...
6. 日志查看:在操作HDFS文件时,插件会显示相关的操作日志,帮助开发者追踪和解决问题。 在安装与使用这款插件时,用户需要注意以下几点: 1. 安装流程:首先,从插件市场搜索"Idea hadoop-hdfs插件"并下载,然后...
HDFS是分布式文件系统,它是Hadoop的核心组件之一,用于存储大量数据。它的设计目标是高度容错性和高吞吐量,适合在廉价硬件上运行。HDFS将大文件分割成块,并将这些块复制到多个节点,以提高数据可用性并确保容错性...
HDFS文件在物理上被分割成固定大小的块,这个块的大小可以通过配置参数`dfs.blocksize`进行设定。默认情况下,在Hadoop 2.x中,块大小为128MB,而在旧版本中为64MB。选择较大的块大小是为了减少寻址开销,使得数据...
在Hadoop生态系统中,HDFS(Hadoop Distributed File System)是分布式存储的核心组件,它提供了高容错性和高吞吐量的数据访问。本文件描述的是一个名为`HdfsService`的Java类,该类用于执行HDFS上的基本文件操作,...
- HDFS文件在物理上是以块的形式存储,块的大小可以通过配置参数`dfs.blocksize`来设定,默认在Hadoop 2.x版本中为128MB,旧版本为64MB。 - 设置较大的块大小有利于提高读取效率,因为寻址时间相比数据传输时间...
- `hdfs dfs -cat <remotedir>`:显示HDFS文件的内容。 通过掌握这些基本操作,可以有效地管理和操作HDFS中的文件,进而更好地利用Hadoop进行大规模数据分析处理。 总之,HDFS作为分布式存储系统的核心组成部分,...