目录

2.1Hadoop简介

HDFS(分布式文件系统)

MapReduce(分布式并行编程框架)

Hadoop的特点

Hadoop的应用

​编辑Hadoop版本的变化

2.2Hadoop项目结构

Tez

Spark

Hive

Pig

Oozie

Zookeeper

HBase

Flume

Sqoop

Ambari

2.3Hadoop集群的部署和使用

NameNode

DataNode

JobTracker,TaskTracker

备份SecondaryNameNode

部署完成后进行Hadoop集群基准测试

云环境使用Hadoop


2.1Hadoop简介

Hadoop是Apache软件基金会旗下的开源软件——分布式计算平台,由Java语言开发,但支持多种编程语言。

Hadoop两大核心:

HDFS(分布式文件系统)

解决了海量数据的存储,顺序读写

MapReduce(分布式并行编程框架)

解决了海量数据的处理

Hadoop的特点

高可靠性:冗余副本机制

高效性:成百上千的机器一起计算,集群处理

可扩展性:可以不断向集群中加入机器

成本低:低端普通pc机

Hadoop的应用

Hadoop版本的变化

Yarn:为上层的计算框架进行底层计算资源的调度功能

NN Federation:NameNode,名称节点做数据目录服务,设置多个名称节点,分区管理

HA:高可用性,对Name Node进行热备份,避免单点失效

2.2Hadoop项目结构

Tez

运行在Yarn之上的下一代Hadoop查询处理框架,对MapReduce上的作业进行分析优化后构建有向无环图,获得最高的工作效率与最优流程(先后顺序,是否重复完成等)。

Spark

类似MapReduce的通用并行框架,基于内存计算,因此效率比MapReduce高出一个数量级。(MapReduce是基于磁盘)

Hive

Hadoop上的数据仓库,存储大量历史数据,用于企业的数据分析。架构于MapReduce之上,因此Hive实际运行时会把SQL语句转换成MapReduce作业去执行。(批量数据处理)

Pig

一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin。(流数据处理,轻量级的脚本语言,和直接使用MapReduce相比大大简化了代码段)。

Oozie

Hadoop上的工作流管理系统。

Zookeeper

提供分布式协调一致性服务,实现分布式锁,集群管理等功能。

HBase

Hadoop上的非关系型的分布式数据库,属于列族数据库,支持随机读写,实时应用。(HDFS是顺序读写)

Flume

日志收集分析框架。一个高可用,高可靠,分布式的海量日志采集、聚合和传输的系统。

Sqoop

用于在Hadoop与传统关系型数据库之间进行数据传递。

Ambari

Hadoop快速安装部署工具,支持apache Hadoop集群的供应、管理和监控。

2.3Hadoop集群的部署和使用

HDFS集群硬件配置:

NameNode

总管家角色:管理各种元数据并提供服务,NameNode里面有很多元数据直接保存在内存当中。

DataNode

MapReduce两大核心组件:

JobTracker,TaskTracker

JobTracker相当于大的作业管家。MapReduce的程序开发每次是以一个MapReduce作业的形式去完成具体计算任务。JobTracker将用户的大作业拆分成很多小作业,协调分发到不同机器去执行。在不同的机器上则安装了TaskTracker,每一个TaskTracker负责跟踪和执行被分配给自己所在机器的小作业。

备份SecondaryNameNode

在HDFS上的组件,1.0版本中属于冷备份。在集群较小时可以与NameNode在一起,集群较大时需要单独分配服务器。

部署完成后进行Hadoop集群基准测试

1)Hadoop自带的基准测试程序,被打包在测试程序JAR文件中;

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

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

云环境使用Hadoop