1、了解Hadoop
对于程序员来说,hadoop就是Java语言编写的一个框架
Hadoop都有什么功能?
(1)分布式存储(HDFS hadoop distributed file system)
(2)分布式计算(MapReduce)
a)什么是分布式存储呢? 数据分布才很多台不同的机器中,进程存数和计算 简单的例子就是360和百度云盘
在云盘中我们的数据是统一管理的,在公司和家里看的结果就是一样的,
分布式存储让用户感觉不到数据分散在多台机器中存储的。好像是在一台机器上一样
为什么数据要存在多台机器上呢? 数据在一台机器上存不下啦
分布式存储在hadoop中表现为HDFS
b)
分布式计算
简单的来说就是程序员写的代码程序在多台机器中跑。
为什么有分布式计算? 如果不用分布式计算,就需要把所有的数据加载到1台机器上去计算,但是这台机器上的内容 有多大 硬盘有多大 磁盘的IO操作都是瓶颈
分布式计算指的是一套程序在很多台机器中运行,协同完成一件事情。
好处:降低程序的执行时间 节省计算时间
分布式计算在hadoop中表现为MapReduce
误区:并不是所有的程序都可以用来分布式计算 一般是顺序结构代码的程序 可以用来分布式计算 并且该代码是整体程序可以抽离出来的程序
总结:Hadoop就是用来解决数据的分布式存储和分布式计算的
2、介绍Apache Hadoop
a)hadoop的版本
(1)Apache 官方版本
(2)Cloudera 使用下载最多的版本,稳定,有商业支持,在Apache的基础上打上了一些patch,推荐使用
(3)HortonWorks 基于Apache的版本进行了集成
3、介绍第三方公司的Hadoop
a)Cloudera Hadoop
b)Cloudera Hadoop
c)Cloudera Hadoop
4、Hadoop中各组件的结构讲解
a)hadoop的核心项目
(1)HDFS:Hadoop Distributed File System 分布式文件系统
(2)Yarn:资源管理平台,在上面运行分布式计算,典型的计算模型有MapReduce(批处理)、Storm(流试数据)、Spark(内存计算数据)等
b)各个组件的体系架构
(1)
HDFS的架构: 负责数据的分布式存储
主从结构:
主节点,可以有多个:namenode 负责:(1)接收用的操作请求,是用户操作的入口 (2)维护文件系统的目录结构,称作命名空间
从节点,有很多个:datanode 负责:存贮文件
(2)Yarn的架构: 资源的调度和管理平台
主从结构:
主节点,只有一个:ResourceManager [采用代理管理]
负责:(1)集群资源的分配和调度 (2)MapReduce、Storm、Spark等应用,必须实现ApplicationMaster接口,才能被RM管理
从节点,有很多个:NodeManager
负责:单节点资源的管理
(3)MapReduce的架构:依赖磁盘IO的壁橱里计算模型
主从结构:
主节点,只有一个:JobTracker
负责:(1)接收用户提交的计算任务 (2)把计算任务分配给TaskTrackers执行,即任务调度 (3)监控TaskTracker的执行情况
从节点,有很多个:TaskTracker
TaskTrackers
负责
:执行JobTracker分配的计算任务
(4)Storm的架构:实时的流式计算模型
主从结构:
主节点,只有一个:Ninbus
负责:(1)接收客户提交的计算任务 (2)把计算任务分成Task,放置到Zookeeper上,供supervisor使用
从节点,有很多个:Supervisor 负责:从zookeeper中获取Task,执行Task
5、Hadoop集群分布图
hadoop的特点:
(1)扩容能力[处理PB级别数据] (2)成本低[普通PC搭建集群] (3)高效率[并行计算] (4)可靠性[多副本]
6、Hadoop1和Hadoop2中MRv1与MRv2的不同