目录
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的性能。