大数据处理架构Hadoop

一、概述

1.1 Hadoop简介

  • Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构,基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中 。

  • Hadoop的核心是分布式文件系统HDFS和MapReduce,被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力,几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务 。

1.2 Hadoop发展简史

  • Hadoop最初是由Apache Lucene项目的创始人Doug Cutting开发的文本搜索库。

  • 在2004年,Nutch项目也模仿GFS开发了自己的分布式文件系统NDFS(Nutch Distributed File System),也就是HDFS的前身 。

  • 2004年,谷歌公司又发表了另一篇有深远影响的论文,阐述MapReduce分布式编程思想。

  • 2005年,Nutch开源实现了谷歌的MapReduce。

  • 2006年2月,Nutch中的NDFS和MapReduce开始独立出来,成为Lucene项目的一个子项目,称为Hadoop。

  • 2008年1月,Hadoop正式成为Apache顶级项目。

  • 2008年4月,Hadoop打破世界纪录,成为最快排序1TB数据的系统。

  • 在2009年5月,Hadoop更是把1TB数据排序时间缩短到62秒。

1.3 Hadoop的特性

Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:

  • 高可靠性

  • 高效性

  • 高可扩展性

  • 高容错性

  • 支持多种编程语言

1.4 Hadoop的应用架构

二、Hadoop项目结构

Hadoop的项目结构不断丰富发展,已经形成一个丰富的Hadoop生态系统:

三、Hadoop的安装与使用

  • 单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试 。

  • 伪分布式模式:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作DataNode,同时,读取的是 HDFS 中的文件 。

  • 分布式模式:使用多个节点构成集群环境来运行Hadoop。

四、Hadoop集群的部署与使用

4.1 集群节点类型

Hadoop框架中最核心的设计是对数据进行计算的MapReduce和为海量数据提供存储的HDFS。MapReduce的作业主要包括:从磁盘或从网络读取数据,即IO密集工作和计算数据,即CPU密集工作 。Hadoop集群的整体性能取决于CPU、内存、网络以及存储之间的性能平衡。一个基本的Hadoop集群中的节点主要有:

  • NameNode:负责协调集群中的数据存储

  • DataNode:存储被拆分的数据块

  • JobTracker:协调数据计算任务

  • TaskTracker:负责执行由JobTracker指派的任务

  • SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息

4.2 集群网络拓扑

  • 普通的Hadoop集群结构由一个两阶网络构成

  • 每个机架(Rack)有30-40个服务器,配置一个1GB的交换机,并向上传输到一个核心交换机或者路由器(1GB或以上)

  • 在相同的机架中的节点间的带宽的总和,要大于不同机架间的节点间的带宽总和

五、总结

  • Hadoop被视为事实上的大数据处理标准,具有高可靠性、高效性、高可扩展性、高容错性、成本低、运行在Linux平台上、支持多种编程语言等特性 。

  • 经过多年发展,Hadoop项目已经变得非常成熟和完善,包括Avro、Zookeeper、HDFS、MapReduce、HBase、Hive、Chukwa、Pig等子项目,其中,HDFS和MapReduce是Hadoop的两大核心组件。

六、参考资料

《大数据技术原理与应用——概念、存储、处理、分析与应用(第二版)》

posted on 2022-02-16 01:40  lixin05  阅读(674)  评论(0编辑  收藏  举报