1:Hadoop介绍
Hadoop是一个分布式系基础框架,它允许使用简单的编程模型跨大型计算机的大型数据集进行分布式处理.
它主要解决两个问题
大数据存储问题: HDFS
大数据计算问题:MapReduce
问题一: 大文件怎么存储?
假设一个文件非常非常大,大小为1PB/a.txt, 大到世界上所有的高级计算机都存储不下, 怎么办?
- 为了保存大文件, 需要把文件放在多个机器上
- 文件要分块 block(128M)
- 不同的块放在不同的
HDFS
节点
- 同时为了对外提供统一的访问, 让外部可以像是访问本机一样访问分布式文件系统
- 有一个统一的
HDFS Master
- 它保存整个系统的文件信息
- 所有的文件元数据的修改都从
Master
开始
- 有一个统一的
问题二: 大数据怎么计算?
从一个网络日志文件中计算独立 IP, 以及其出现的次数 如果数据量特别大,我们可以将,整个任务拆开, 划分为比较小的任务, 从而进行计算呢。
问题三: 如何将这些计算任务跑在集群中?
如果能够在不同的节点上并行执行, 更有更大的提升, 如何把这些任务跑在集群中?
- 可以设置一个集群的管理者, 这个地方叫做
Yarn
- 这个集群管理者有一个
Master
, 用于接收和分配任务 - 这个集群管理者有多个
Slave
, 用于运行任务
- 这个集群管理者有一个
Hadoop 的组成
- Hadoop分布式文件系统(HDFS) 提供对应用程序数据的高吞吐量访问的分布式文件系统
- Hadoop Common 其他Hadoop模块所需的Java库和实用程序。这些库提供文件系统和操作系统级抽象,并包含启动Hadoop所需的必要Java文件和脚本
- Hadoop MapReduce 基于YARN的大型数据集并行处理系统
- Hadoop YARN 作业调度和集群资源管理的框架