Apache HADOOP是一个用于开发在分布式计算环境中执行的数据处理应用程序的框架。
与驻留在个人计算机系统的本地文件系统中的数据类似,在Hadoop中,数据驻留在称为Hadoop分布式文件系统的分布式文件系统中。
处理模型基于“数据局部性”概念,其中计算逻辑被发送到包含数据的集群节点(服务器)。
这种计算逻辑只不过是用Java等高级语言编写的程序的编译版本。这样的程序,处理存储在Hadoop HDFS中的数据。
HADOOP是一个开源软件框架。使用HADOOP构建的应用程序在分布在商用计算机集群上的大型数据集上运行。
商品计算机便宜且广泛可用。这些主要用于以低成本实现更高的计算能力。
计算机集群由一组多个处理单元(存储磁盘+处理器)组成,它们相互连接并充当单个系统。
Hadoop的组件
下图显示了Hadoop生态系统中的各种组件 -
Apache Hadoop包含两个子项目 -
Hadoop MapReduce:MapReduce是一个计算模型和软件框架,用于编写在Hadoop上运行的应用程序。这些MapReduce程序能够在大型计算节点集群上并行处理大量数据。
HDFS(Hadoop分布式文件系统):HDFS负责Hadoop应用程序的存储部分。MapReduce应用程序使用HDFS中的数据。HDFS创建多个数据块副本,并将它们分发到群集中的计算节点上。这种分布可以实现可靠且极其快速的计算。
尽管Hadoop以MapReduce及其分布式文件系统HDFS而闻名,但该术语还用于属于分布式计算和大规模数据处理的一系列相关项目。Apache的其他Hadoop相关项目包括Hive,HBase,Mahout,Sqoop,Flume和ZooKeeper。
'Hadoop'的特点
•适用于大数据分析
由于大数据往往是分布式和非结构化的,HADOOP集群最适合分析大数据。由于处理逻辑(不是实际数据)流向计算节点,因此消耗的网络带宽较少。这个概念被称为数据局部性概念,有助于提高基于Hadoop的应用程序的效率。
•可扩展性
通过添加额外的集群节点,可以轻松地将HADOOP集群扩展到任何程度,从而允许大数据的增长。此外,缩放不需要修改应用程序逻辑。
•容错
HADOOP生态系统可以将输入数据复制到其他群集节点上。这样,在群集节点发生故障的情况下,数据处理仍然可以通过使用存储在另一个群集节点上的数据来继续。
Hadoop中的网络拓扑
当hadoop集群的大小增加时,网络的拓扑(Arrangment)会影响Hadoop集群的性能。除了性能之外,还需要关注高可用性和故障处理。为了实现这一目标,Hadoop集群的形成利用了网络拓扑。
替换高清大图
通常,网络带宽是形成任何网络时要考虑的重要因素。然而,由于测量带宽可能很难,在Hadoop中,网络表示为树,并且该树的节点之间的距离(跳数)被认为是形成Hadoop集群的重要因素。这里,两个节点之间的距离等于它们与最近共同祖先的距离之和。
Hadoop集群由数据中心,机架和实际执行作业的节点组成。这里,数据中心由机架组成,机架由节点组成。可用于进程的网络带宽取决于进程的位置。也就是说,随着我们离开以下情况,可用带宽变得更小了 -
进程在同一节点上
同一机架上的不同节点
同一数据中心的不同机架上的节点
不同数据中心的节点
领取专属 10元无门槛券
私享最新 技术干货