天天看点

Hadoop之旅 — 1.Hadoop简述(初学者)

@初识Hadoop

Hadoop

分布式计算框架,可以在大量低成本硬件设备组成的集群上运行应用程序。

@起源与发展(​​http://baike.baidu.com/item/Hadoop​​)

Hadoop之旅 — 1.Hadoop简述(初学者)
Hadoop之旅 — 1.Hadoop简述(初学者)

名字起源

Hadoop这个名字不是一个缩写,而是一个虚构的名字。该项目的创建者,Doug Cutting解释Hadoop

的得名 :“这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准就是简短,容易发音和

拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手。”

@什么是Hadoop

第一印象:

1)数据量 可以是PB级别以上

2)上千个节点上的分布式处理方式

3)可靠性:启动和维护多个数据副本 用于确保失败的节点重新分布式处理数据

4)并行的方式处理,因此处理速度很快

5)可伸缩性->用于不同的数据级别

6)依赖于社区服务,费用低

7)开发语言:java(主要)c++(也可以)

8)平台:Linux、windows(cygwin)

进一步了解:

设计目标

1)故障检测与快速恢复

2)大 数据吞吐量,但是反应速度相对慢

3)移动计算:(计算过程 在 数据存储的位置,个人理解)

4)数据一次写入,多次读写

5)超大规模的数据集

6)可移植性强

模型:

Master/Slave

数据的复制与存放

# 统一机架

# 副本就近选择

# 安全模式 (检测数据块[包括副本]的有效性,并根据策略需要删除/复制部分数据块)

通信协议

# HDFS通信协议

#  TCP/IP 网络协议

Hadoop之旅 — 1.Hadoop简述(初学者)

健壮性:

1)磁盘数据错识

NameNode 通过向 DateNode发送心跳信号判断该DateNode是否发生宕(读音:dang [捂脸])机,

若宕机,NameNode将启动复制操作。

2)集群均衡

3)数据完整性

HDFS写入的时候计算出校验和,然后每次读的时候再计算校验和,

DateNode在存储收到的数据前会校验数据的校验和。

访问:

FS Shell(​​https://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html​​)

浏览器

存储空间回收:

#删除和恢复功能

#有效减少副本数量

@Hadoop的组成(核心架构)

Hadoop集群搭建官方文档(​​https://hadoop.apache.org/docs/r1.0.4/cn/cluster_setup.html​​)

*  Hadoop集群中的两大角色

通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。

余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves。

Hadoop之旅 — 1.Hadoop简述(初学者)

NameNode:

# HDFS的守护程序 

# 纪录文件是如何分割成数据块的,还有这些数据块被存储到哪些节点上 

# 对内存和I/O进行集中管理 

# 是个单点,发生故障将使集群崩溃

SecondaryNameNode:

#监控HDFS状态的辅助后台程序

#与NameNode进行通讯,定期保存HDFS元数据快照

#当NameNode故障可以作为备用NameNode使用 

#每个集群都有一个

JobTracker:

#用于处理作业(用户提交代码)的后台程序

#决定有哪些文件参与处理,然后切割task并分配节点 

#监控task,重启失败的task(于不同的节点) 

#每个集群只有唯一一个JobTracker,位于Master节点 

Hadoop之旅 — 1.Hadoop简述(初学者)

DateNode:

# 每个 从服务器

# 根据客户端或者是NameNode的调度存储和检索数据,并且定期向NameNode发送他们所存储的块(block)的列表。

TaskTracker:

#每个节点只有一个TaskTracker,但一个TaskTracker可以启动多个JVM,用于并行执行Map或Reduce任务 

# 位于Slave节点上,与DateNode结合(代码与数据同位置) 

#管理各自节点上的Task(由JobtTracker分配) 

# 与JobTracker交互 

1)HDFS(​​Hadoop分布式文件存储系统​​ )

数据块(block):大文件会被分割成多个块进行存储,块(block)大小默认为64MB。

每一块会在多个DateNode上存储多份副本,默认是3份。

NameNode:负责管理文件目录、文件和块(block)的对应关系以及块和DateNode的对应关系。

DateNode:负责存储,大部分容错机制都是在DateNode上实现的。

Hadoop之旅 — 1.Hadoop简述(初学者)

2)MapReduce(​​分布式计算框架​​)

一个Map/Reduce 作业(job) 通常会把输入的数据集切分为若干独立的数据块,

由 Map任务(task)以完全并行的方式处理它们。框架会对Map的输出先进行排序,

然后把结果输入给Reduce任务。

通常作业的输入和输出都会被存储在文件系统(HDFS)中。整个框架负责任务

的调度和监控,以及重新执行已经失败的任务。

Hadoop之旅 — 1.Hadoop简述(初学者)

在运行一个MapReduce计算任务时候,任务过程被分为两个阶段:map阶段和reduce阶段,

每个阶段都是用键值对(key/value)作为输入(input)和输出(output)。而程序员要做

的就是定义好这两个阶段的函数:map函数和reduce函数。

3)子项目家族

Hadoop之旅 — 1.Hadoop简述(初学者)

继续阅读