第二讲:大数据处理架构Hadoop

--内容来自厦门大学林子雨教授的《大数据技术原理》课程,作为学习笔记。

2.1概述

2.2Hadoop项目结构

2.3Hadoop的安装和使用

2.4Hadoop集群的部署与使用

2.1.1Hadoop简介

    Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构;

    Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中;

    Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce;

    Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力;

    几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如:谷歌、雅虎、微软、思科、淘宝等都支持Hadoop;

2.1.2Hadoop发展简史

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

    谷歌三大核心论文:GFS(谷歌文件系统)、MapReduce、BigTable;

2.1.3 Hadoop的特性

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

  • 高可靠性
  • 高效性
  • 高可扩展性
  • 高容错性
  • 成本低
  • 运行在Linux平台上
  • 支持多种编程语言

    国内采用Hadoop的公司主要有百度、淘宝、网易、华为、中国移动等,其中淘宝的Hadoop集群比较大;

第二讲:大数据处理架构Hadoop_第1张图片

2.1.4Hadoop版本演变

    Hadoop版本分为两代,分别为Hadoop1.0和Hadoop2.0

    第一代Hadoop包含三个大版本:0.20、0.21、0.22;

    第二代Hadoop包含两个版本:0.23.x和2.x,第二代与第一代完全不同,是一套全新的架构,第二代均包含HDFS Federation和YARN两个系统,2.x比0.23.x增加了NameNode HA和Wire-compatibility两大特性;

2.1.5 Hadoop各个版本

    在Apache Hadoop的基础上,各大公司开发了商业版本,在性能,易用性,维护性更优。。。

2.2 Hadoop项目结构

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

第二讲:大数据处理架构Hadoop_第2张图片

Hadoop项目结构
组件 功能
HDFS 分布式文件系统
MapReduce 分布式并行编程模型
YARN 资源管理和调度器
Tez 运行在YARN之上的下一代Hadoop查询处理框架
Hive Hadoop上的数据仓库
HBase Hadoop上的非关系型的分布式数据库
Pig 一个基于Hadoop的大规模数据分析平台,提供类SQL的查询语言PigLatin
Sqoop 用于在Hadoop与传统数据库之间进行数据传递
Oozie

Hadoop上的工作流管理系统

Zookeeper 提供分布式协调一致性服务
Storm 流计算框架
Flume 一个高可用的,高可靠性的,分布式的海量日志采集,聚合和传输的系统
Ambari Hadoop快速部署工具,支持Apache Hadoop集群的供应,管理和监控
Kafka 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据类似于Hadoop MapReduce的通用并行框架

2.3 Hadoop 的安装和使用

另行介绍。。。。。

2.4 Hadoop集群的部署和使用

  • 2.4.1集群节点类型
  • 2.4.2集群规模
  • 2.4.3集群硬件配置
  • 2.4.4集群网络拓扑
  • 2.4.5集群的简历与安装
  • 2.4.6集群基准测试
  • 2.4.7在云计算环境中使用Hadoop

2.4.1 Hadoop集群中有哪些节点类型

    Hadoop框架中最核心的设计是为海量数据提供存储的HDFS和对数据进行计算的MapReduce;

    MapReduce的作业主要包括:(1)从磁盘或从网络读取数据,即IO密集工作,(2)计算数据,即CPU密集工作;

    Hadoop集群的整体性能取决于CPU、内存、网络以及存储之间的性能平衡。因此运营团队在选择机器配置时要针对不同的工作节点选择合适硬件类型;

    一个基本的Hadoop集群中的节点主要有:

  • NameNode:负责协调集群中的数据存储;
  • DataNode:存储被拆分的数据块;
  • JobTracker:协调数据计算任务;
  • TaskTracker:负责执行由JobTracker指派的任务;
  • SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息;

2.4.2集群硬件配置

    在集群中,大部分的机器设备是作为DataNode和TaskTracker工作的,可以采用以下方案:

  • 4个磁盘驱动器(单盘1-2T),支持JBOD(Just a Bunch Of Disks,磁盘簇)
  • 2个4核CPU,至少2-2.5GHz
  • 16-24GB内存
  • 千兆以太网

    NameNode提供整个HDFS文件系统的NameSpace(命名空间)管理,块管理等所有服务,因此需要更多的RAM,与集群中的数据块数量相对应,并且需要优化RAM的内存通道带宽,采用双通道或三通道以上内存。硬件规格可以采用以下方案:

  • 8-12个磁盘驱动器(单盘1-2T)
  • 2个4核/8核CPU
  • 16-72GB内存
  • 千兆/万兆以太网

    SecondaryNameNode在小型集群中可以和NameNode公用一台机器,较大的集群可以采用与NameNode相同的硬件

2.4.3集群规模要多大

    Hadoop集群规模可大可小,初始时,可以从一个较小规模的集群开始,比如包含10个节点,然后规模随着存储器和计算需求的扩大而扩大

    对于一个小的集群,NameNode和JobTracker可以运行在单个节点上,但不适合较大的集群

    SecondaryNameNode可以和NameNode运行在相同的节点上,但不建议如此设置

2.4.4集群网络拓扑

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

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

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

2.4.5集群的建立与安装

    采购好相关硬件设备后,就可以把硬件装入机架,安装并运行Hadoop;

    安装Hadoop有多种方法:手动安装、自动化安装

2.4.6Hadoop集群基准测试

    通过基准测试来判断一个Hadoop集群是否正确安装;

    Hadoop自带有一些基准测试程序,被打包在测试程序JAR文件中

    用TestDFSIO基准测试,来测试HDFS的IO性能;

    用排序测试MapReduce:Hadoop自带一个部分排序的程序,这个测试过程的整个数据集都会通过洗牌(Shuffle)传输至Reducer,可以充分测试MapReduce的性能;

2.4.7在云计算环境中使用Hadoop

    Hadoop不仅可以在企业内部的集群中,也可以运行在云计算环境中,如:Amazon的EC2;

    在EC2上运行Hadoop尤其适用于一些工作流。例如,在Amazon S3中存储数据,在 EC2上运行集群,在集群中运行MapReduce作业,读取存储在S3中的数据,最后, 在关闭集群之前将输出写回S3中;如果长期使用集群,复制S3数据到运行在EC2上 的HDFS中,则可以使得数据处理更加高效,因为,HDFS可以充分利用数据的位置, S3则做不到,因为,S3与EC2的存储不在同一个节点上 

你可能感兴趣的:(大数据,Hadoop)