`
yale
  • 浏览: 359875 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

HDFS框架中便于借鉴的设计

 
阅读更多

HDFS几个设计特点:

1. Block的放置:默认不配置。一个Block会有三份备份,一份放在NameNode指定的DataNode,另一份放在与指定DataNode非同一Rack上的DataNode,最后一份放在与指定DataNode同一Rack上的DataNode上。备份无非就是为了数据安全,考虑同一Rack的失败情况以及不同Rack之间数据拷贝性能问题就采用这种配置方式。
2. 心跳检测DataNode的健康状况,如果发现问题就采取数据备份的方式来保证数据的安全性。
3. 数据交验:采用CRC32作数据交验。在文件Block写入的时候除了写入数据还会写入交验信息,在读取的时候需要交验后再读入。
4. NameNode是单点:如果失败的话,任务处理信息将会纪录在本地文件系统和远端的文件系统中。
5. 数据管道性的写入:当客户端要写入文件到DataNode上,首先客户端读取一个Block然后写到第一个DataNode上,然后由第一个DataNode传递到备份的DataNode上,一直到所有需要写入这个Block的DataNode都成功写入,客户端才会继续开始写下一个Block。
6. 安全模式:在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。

7.合并

 我们可以把各服务器磁盘中的本地文件在向HDFS复制的过程中合并,这样可以节省本地计算机大大量磁盘空间,当然还可以先把文件进行合并,然后再复制到HDFS中(这种方式比较龊),因此,我们需要一个PutMerge类型的操作,Hadoop命令行工具中有一个getmerge命令,用于把一组HDFS文件在复制到本地计算机以前进行合并,但是没有setmerget命令把本地文件合并到HDFS中的命令,因此需要用HDFS API来实现,在Hadoop中用作文件操作的类位于org.apache.hadoop.fs包中,常见的open\read\write\close,实际,Hadoop文件API是通用的,可用于HDFS以外的其他文件系统,Hadoop文件API的起点是FileSystem类,这是与文件系统交互的抽象类,存在不同的具体实现子类来处理HDFS和本地文件系统,如下例子是一个合并本地文件到HDFS中:
 

 

我们可以继续看看上述代码中调用的接口或者实现的源代码:
Configuration类是用于保留键值配置参数的特殊类,默认是以HDFS系统的资源配置为基础的,如下:

 

 

HDFS接口的FileSystem对象

 

本地文件系统的FileSystem对象

 

得到本地文件列表

 

 

用于将数据写入HDFS文件中前定义参数:

 

8.冥等
虽然hadoop有对失败节点监控、自动重启的特性,但是这些特性无法完全满足健壮性的特点,比如:某节点并没有失效,只是由于一些异常原因导致运行速度缓慢,那么这个时候会影响hadoop整体的性能,为了解决这个问题,hadoop使用了冥等特性,不再仅当任务失败后才重启任务,hadoop会注意到运行速度缓慢的任务,并安排在另一个节点上并行执行相同的任务,冥等特性保证同步执行的任务会产生相同的输出,hadoop将监视这些同步执行的任务,只要一个任务成功完成,hadoop会采用它的输出,并杀死其他并行的任务,这种方式执行的时机是仅当所有的map任务已经安排执行之后,且仅对于那些比其他map任务平均执行进度远远落后的map任务,reduce任务也是一样

分享到:
评论

相关推荐

    hadoop_google论文

    HDFS在设计上借鉴了GFS的理念,提供了一种可靠的、分布式的文件存储解决方案,同时也进行了优化,如更灵活的块大小设置和更复杂的副本策略。Hadoop MapReduce则实现了MapReduce编程模型,让用户可以编写Java程序来...

    电力视频大数据分布式检索系统设计与实现.pdf

    在文章提及的系统设计与实现中,首先将视频文件存储在HDFS中,利用FFmpeg进行视频文件的解码。FFmpeg是一个完整的、跨平台的开源视频处理框架,它能高效地对视频数据进行格式转换、编码解码等操作。通过对视频数据的...

    基于Hadoop平台的通信数据分布式查询算法的设计与实现

    MapReduce是Hadoop用于大规模数据集并行计算的编程模型,它将复杂的计算任务拆解为两个阶段:Map和Reduce,便于在集群中并行执行。 针对通信数据的查询,论文可能涉及了以下知识点: 1. **数据预处理**:通信数据...

    Hadoop源代码分析

    综上所述,Hadoop不仅是一个强大的分布式计算框架,还是一个综合性的大数据处理平台,其设计和实现充分借鉴了Google的技术理念,同时在功能和性能上不断进行优化和扩展,以满足日益增长的数据处理需求。

    Hadoop源码分析

    HDFS的设计允许数据在集群中的多个节点进行复制,确保即使在硬件故障时也能保证数据的可用性。Hadoop的这一特性使得它成为大数据处理的基石,为许多大型企业及互联网公司的数据分析提供支撑。 MapReduce是Hadoop的...

    基于hadoop生态系统的气象数据可视化平台论文.docx

    - **结果可视化**:处理后的数据可以通过Hadoop生态系统中的工具进一步处理成可视化图表等形式,便于气象学家和其他研究人员理解分析结果。 ### 三、气象数据可视化平台的设计与实现 #### 3.1 平台架构设计 气象...

    易语言大数据处理应用源码

    7. 错误处理与调试:在大数据处理中,错误处理是非常重要的一环,源码可能包含了大量的异常处理和日志记录机制,以便于定位和修复问题。 8. 性能优化:由于大数据处理的计算密集型特性,源码可能包含了一些性能优化...

    基于协同过滤算法使用hadoop实现商品推荐系统.zip

    1. 数据收集:首先,我们需要收集用户的历史购买记录、浏览记录等行为数据,这些数据存储在HDFS中。 2. 数据预处理:包括数据清洗、格式转换等步骤,以便于后续处理。 3. 用户-物品相似度计算:使用协同过滤算法计算...

    DataX源码...

    这个开源框架设计的目标是实现高性能、高可用性以及易用性,使得开发者能够便捷地构建自己的数据同步任务。 标题“DataX源码”表明我们将深入探讨DataX的内部实现,了解其核心组件和工作原理。源码分析对于理解软件...

    BML百度大规模机器学习云平台实践

    知识点: 1. 百度机器学习云平台(BML)概述 - 百度是一个拥有庞大用户...它不仅提供了强大的计算能力支持,还通过易用、高效的框架设计,使得开发者能够专注于算法逻辑的实现,从而高效地解决现实世界中的各类问题。

    falcon-log-agent-master.zip

    Falcon-Log-Agent是一款专为日志收集设计的框架,其核心目标是实现日志的高效、稳定传输,为运维人员提供强大的日志处理能力。本文将深入探讨Falcon-Log-Agent的核心特性和应用场景,以期为读者提供实用的日志管理...

    Hadoop-new.pdf

    这个框架的核心包括两个主要组件:Hadoop Distributed File System(HDFS)和MapReduce。Hadoop的设计目标是为了处理PB级别的数据,它能够处理GB、TB的数据集,并且能够扩展到数千台服务器,形成一个大规模的集群。 ...

    基于云计算技术的数据挖掘.pdf

    云计算技术的数据挖掘方法是将大数据集和挖掘任务分解到多台计算机上...专业指导方面,文章不仅提出了问题、分析了原因,还设计了解决方案,并通过实验验证了方案的有效性,这为相关领域的发展提供了有力的参考和借鉴。

    hadoop前传

    它借鉴了Google的MapReduce编程模型和GFS(Google文件系统)理念,设计成分布式计算和存储系统,支持高容错性和高扩展性。 2. Hadoop的核心组件 - HDFS(Hadoop Distributed File System):Hadoop的分布式文件...

    大数据存储及分层实践-8-4 京东零售海量日志数据处理实践.zip

    在具体实践中,京东可能会使用ELK(Elasticsearch, Logstash, Kibana)堆栈进行日志收集、索引和可视化,便于快速查找和分析问题。同时,可能会结合大数据分析工具,如Tableau或Power BI,进行数据洞察,帮助业务...

    HBase技术介绍简介 NOSQL数据库 入门

    HBase的核心架构深受Google Bigtable的影响,通过借鉴Bigtable的设计理念,HBase实现了以下关键组件和技术: - **文件存储系统**:类似于Bigtable使用Google文件系统(GFS)作为底层存储,HBase选择Hadoop分布式...

    nosql分布式数据库期末考试题.docx

    - **MapReduce**: 大数据处理框架,与 HBase 并无直接技术借鉴关系。 - **Chubby**: Google 的一个分布式锁服务,HBase 并未直接借鉴。 - **Google File System (GFS)**: HBase 建立在 Hadoop 分布式文件系统 (HDFS)...

Global site tag (gtag.js) - Google Analytics