作为分布式系统而言,有两个重要内容(当然还有其它的内容,这里仅仅讨论hadoop的核心):分布式存储和分布式计算。
分布式存储的原理:将一个大文件划分成若干部分,存储到不同的节点上(副本存储)。
好处:1)由于有副本存储,某个节点的down机不会影响到整个集群的使用,数据还是可以保证完整性的;
2)大文件划分小文件存储,这样便于后面的处理。这是因为计算节点(存储节点是同一个概念)可以处理这一部分数据,多个
计算节点可以并行处理。
整个来讲,HDFS的原理比较容易读,本质上讲,它是一个文件系统,只不过是分布式的,你也完全写一个简单的分布式文件系统出来的,只要你想做。
在讲分布式计算之前,我们来考虑一个问题,假设我们想完成一个任务:统计文章中哪些词出现的概率比较大。你会怎么做呢?
1.如果数据量小的话:
1)一个文件一个文件地读;
2)建立一个hashmap,key就是单词,value是频率;
3)如此循环。
2.如果数量大的话:
你会将这些文件分成若干部分,放到N台机器上并行运行,然后结果再合并。
问题:1)文件的分配,一个个复制吗?
2)结果合并,容易吗?
所以,出现了分布式计算框架,它要解决的问题就是上面的两点。
第1)点已经解决了,因为文件本身就是存储在不同的计算节点上的;
第2)其实包含了几个部分:
a)文件的打开与读取(Hadoop是一行一行的读);
b)中间结果的保存(也是存储到文件中去);
c)中间结果的合并和输出(最终结果存储到文件中去)。
你会发现,它的设计思想就是这么简单。然而要设计一个分布式系统框架,还是有很多事情要考虑的,这一点需要自己去体会。
分享到:
相关推荐
【Hadoop入门教程】 本文将带你逐步了解如何在Ubuntu虚拟机中安装配置Hadoop,并使用Eclipse进行Hadoop...随着对Hadoop理解的深入,你可能需要扩展到多节点集群,以及更复杂的Hadoop生态系统组件,如YARN和HBase等。
理解如何在Hadoop中处理数据对于高效的大数据应用至关重要。 - **MapReduce基础**:MapReduce是一种分布式数据处理模型,包括Map阶段和Reduce阶段。 - **MapReduce工作流程**:从数据读取到最终结果输出的整个过程...
本书详细地讲述了Hadoop生态圈中最为重要的几个组件。不仅介绍了Hadoop涉及的分布式理论基础知识,还着重讲解Hadoop系统的工程实践应用。为了深入浅出地讲述Hadoop各个组件的运行机理,作者使用了贴切的实战用例
8. **案例研究**:通过真实案例分析,展示Hadoop在不同行业和场景下的应用,加深对Hadoop理解。 通过阅读《Hadoop权威指南》,无论是初学者还是有经验的开发者,都能深入理解Hadoop的工作原理,掌握其使用技巧,...
《深入理解Hadoop.第2版》是一本专注于Hadoop技术的权威著作,全面而深入地探讨了这个分布式计算框架的各个方面。Hadoop是Apache软件基金会的一个开源项目,旨在提供一个可扩展、可靠且分布式存储和处理大数据的平台...
5. **Hadoop优化**:随着对Hadoop理解的加深,第四期可能会涉及性能优化技巧,如数据块大小的调整、任务调度策略、I/O优化等,这对于提升Hadoop集群的运行效率至关重要。 6. **案例分析与实战**:每期可能都会提供...
《深入理解Hadoop》这本书是Hadoop学习者的宝贵资源,它深入解析了Hadoop的核心组件,包括HDFS、MapReduce和YARN等。通过阅读书中的源码,我们可以更直观地理解这些分布式计算和存储系统的工作原理,这对于优化...
《深入理解Hadoop 第2版》是一本专为IT专业人士准备的深度学习Hadoop技术的书籍,它旨在帮助读者全面掌握Hadoop生态系统的核心概念、架构和应用。Hadoop是大数据处理领域的重要工具,其分布式计算框架使得大规模数据...
《深入理解Hadoop》这本书是Hadoop学习者的宝贵资源,它不仅涵盖了Hadoop生态系统的各个重要组件,还深入探讨了分布式计算的基础理论。Hadoop作为大数据处理的核心框架,其重要性不言而喻,尤其在处理海量数据时,它...
在使用Hadoop进行大数据分析时,理解这些基础组件的工作原理和如何正确配置它们对于成功运行Hadoop任务至关重要。例如,开发人员可能需要使用Winutils.exe来获取HDFS上的文件信息,或者通过hadoop.dll来实现数据的...
《深入理解Hadoop》是Hadoop技术领域的一本经典之作,源自英文版的《Pro Apache Hadoop》。这本书深入解析了Hadoop的核心组件及其工作原理,对于开发者和数据工程师来说,是一份宝贵的参考资料。源码的提供使得读者...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理...随着对Hadoop理解的深入,你还可以探索更高级的主题,如HA(高可用性)、数据均衡、监控和调优等。不断学习和实践,你将成为一名出色的Hadoop专家。
总之,对于Windows上的Hadoop开发,理解和配置winutils.exe及hadoop.dll至关重要。它们是连接Windows环境和Hadoop生态系统的关键桥梁,使得开发者能够在非Linux环境中充分利用Hadoop的功能。为了顺利进行Hadoop开发...
Hadoop是一个开源的分布式计算框架,由Apache基金会开发,它主要设计用于处理和存储大量数据。...理解DLL文件的工作原理以及如何在Hadoop生态系统中配置和管理它们,是成功部署和使用Hadoop的关键。
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的核心设计是解决大数据处理的问题。Hadoop 2.7.4是Hadoop发展过程中的一个重要版本...了解和掌握这些知识点,对于深入理解大数据处理和分布式计算至关重要。
在IT行业中,Hadoop是一个...理解它们的作用和配置方法对于在Windows上部署和管理Hadoop集群至关重要。这两个文件的提供使得开发者和数据工程师能够在Windows平台上充分利用Hadoop的强大功能,进行大数据分析和处理。
这个文件使得Windows系统能够理解Hadoop的某些操作,如与HDFS交互。 `winutils.exe`是另一个在Windows上运行Hadoop所必需的工具,它提供了Hadoop在本地系统上的实用功能,包括设置Hadoop环境变量、管理HDFS等。`...