hadoop的概念

  1. 是一个适合海量数据的分布式存储和分布式计算的平台
  2. 分拣大豆
  3. 作者Doug Cutting 受Google三篇论文的启发,开发了hadoop。

Google FS,MapReduce,BigTable

HDFS , MapReduce,HDFS

hadoop三大组件

  1. hdfs:是一个分布式存储框架,适合海量数据存储
  2. mapreduce:是一个分布式计算框架,适合海量数据计算
  3. yarn:是一个资源调度平台,负责给计算框架分配计算资源

分布式储存

什么是分布式存储:

  1. 在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件。
  2. 为了组织众多的文件,把文件可以放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为命名空间(namespace)。命名空间管理着整个服务器集群中的所有文件。
  3. 集群中不同的节点承担不同的职责。
  4. 负责命名空间职责的节点称为主节点(master node)
  5. 负责存储真实数据职责的节点称为从节点(slave node)。
  6. 主节点负责管理文件系统的文件结构,从节点负责存储真实的数据,称为主从式结构(master-slaves)。
  7. 用户操作时,应该先和主节点打交道,查询数据在哪些从节点上存储,然后再到从节点读取。
  8. 在主节点上,为了加快用户访问的速度,会把整个命名空间信息都放在内存中,当存储的文件越多时,那么主节点就需要越多的内存空间。
  9. 在从节点存储数据时,有的原始数据文件可能很大,有的可能很小,大小不一的文件不容易管理,那么可以抽象出一个独立的存储文件单位,称为块(block)。
  10. 数据存放在集群中,可能因为网络原因或者节点硬件原因造成访问失败,最好采用副本(replication)机制,把数据同时备份到多台节点中,这样数据就安全了,数据丢失或者访问失败的概率就小了。

分布式储存图解

  1. 标准图解

HADOOP - 图1

  1. 绘图图解

HADOOP - 图2

HDFS

1.hdfs的特性

  1. HDFS具有主从架构
  2. HDFS集群由单个名称节点组成,主服务器管理文件系统名称空间并控制客户机对文件的访问。此外,还有许多数据节点,通常是集群中每个节点一个,它们管理连接到运行它们的节点的存储
  3. 页面端口号:50070
  4. api端口号:9000

2.架构分析:

  1. 负责数据的分布式存储
  2. 主从结构:
  3. 主节点,可以有2个:namenode:namenode负责接收用户操作请求,是用户操作的入口维护文件系统的目录结构,称作命名空间
  4. 从节点,有多个:datanode:datanode负责存储数据

cd /usr/local/soft/hadoop-2.7.6

cd tmp/

dfs文档

name

namesecondary

name —>current文档

cd current

edits _000000000XXXXXXXXX 保存hdfs的数据 例如

hdfs-site.xml

replication 副本的含义 1 的含义是只有一份

HADOOP - 图3

master:namenode

node1:datanode

node2:datanode

rack:机架 容灾 数据丢失 机架损坏 提高安全性

block块:对应一个文件(128M大小) 分为多个块进行切分储存

yarn架构分析

yarn的作用:资源调度和管理平台

yarn的组成以及各个作用:

  1. 主从结构主节点,可以有2个:ResourceManager
  2. 从节点,有很多个: NodeManager
  3. ResourceManager负责集群资源的分配与调度MapReduce、Storm、Spark等应用,必须实现ApplicationMaster接口,才能被RM管理
  4. NodeManager负责单节点资源的管理(CPU+内存)

HADOOP - 图4

MapReduce架构分析

mapreduce的概念:依赖磁盘io的批处理计算模型

mapreduce的组成以及各个作用:

  1. 主从结构 :主节点,只有一个: MRAppMaster 从节点,就是具体的task
  2. MRAppMaster负责:

接收客户端提交的计算任务

把计算任务分给NodeManager的Container中执行,即任务调度

Container是YARN中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源)

Container由ApplicationMaster向ResourceManager申请的,由ResouceManager中的资源调度器异步分配给ApplicationMaster

Container的运行是由ApplicationMaster向资源所在的NodeManager发起的

监控Container中Task的执行情况

  1. Task负责:处理数据

Hadoop特点

扩容能力(Scalable):

能可靠(reliably)地存储和处理PB级别的数据。如果数据量更大,存储不下了,再增加节点就可以了。

成本低(Economical):

可以通过普通机器组成的服务器集群来分发以及处理数据.这些服务器集群可达数千个节点。

高效率(Efficient):

通过分发计算程序,hadoop可以在数据所在节点上(本地)并行地(parallel)处理他们,这使得处理非常的迅速

可靠性(Reliable):

hadoop能够自动地维护数据的多份副本,并且在任务失败后能够自动地重新部署(redeploy)计算任务.

多个依赖 一个依赖




导入hadoop-client架包

需要更多的jar包