开门见山的一个问题:什么是Hadoop??
1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构
2)主要解决:海量数据的存储和海量数据的分析计算问题额
3)广义上来说,Hadoop通常是指一个更广泛的概念——HADOOP生态圈
Hadoop三大发行版本
Hadoop三大发行版本:Apache、Cloudera、Hortonworks
1)Apache 版本是最原始(最基础)的版本,对于入门学习最好
2)Cloudera 在大型互联网企业中用的较多
3)Hortonworks 文档较好
Hadoop的优势
1)高可用性:因为Hadoop 假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
2)高扩展性:在集群间分配任务数据,可方便扩展数以千计的节点。
3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。
Hadoop的组成
1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。
2)Hadoop MapReduce:一个分布式的离线并行计算框架。
3)Hadoop YARN:作业调度与集群资源管理的框架。
4)Hadoop Common:支持其它模块的工具模块(Configuration、RPC、序列化机制、日志操作等)。
HDFS架构概述
1)NameNode:存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限等),以及每个文件的块列表和块所在的DataNode等。
2)DataNode:在本地文件系统存储文件块数据、以及块数据的校验和。
3)Secondary NameNode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
YARN架构概述
1)ResourceManager:处理客户端请求、启动/监控Application、监控NodeManager、资源分配与调度。
2)NodeManager:单个节点上的资源管理,处理来自ResourceManager的命令、处理来自ApplicationMaster的命令。
3)ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
4)Container:对任务运行环境的抽象、封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
MapReduce架构概述
MaReduce将计算过程分为两个阶段:Map 和 Reduce
1)Map阶段并行处理输入数据 (类似于切片)
2)Reduce阶段对Map结果进行汇总 (对各种片进行整合处理)
大数据技术生态体系
Sqoop、Flume、Kafka、Storm、Spark、Oozie、Hbase、Hive、R语言、Mahout、ZooKeeper 等。