Hadoop学习笔记(一)——Hadoop体系结构

HDFS和MapReduce是Hadoop的两大核心。整个Hadoop体系结构主要是通过HDFS来实现分布式存储的底层支持的,并且通过MapReduce来实现分布式并行任务处理的程序支持。

一、HDFS体系结构

HDFS采用了主从(Master/Slave)结构模型。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中,NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据。HDFS典型的部署是在一个专门的机器上运行NameNode,集群中的其他机器各运行一个DataNode;也可以在运行NameNode的机器上同时运行DataNode,或者一台机器上运行多个DataNode。一个集群只有一个NameNode的设计大大简化了系统架构。

从最终用户的角度来看,它就像传统的文件系统一样,可以通过目录路径对文件执行CRUD(Create/Read/Update/Delete)操作。

NameNode管理文件系统的元数据,DataNode存储实际的数据。客户端通过同NameNode和DataNodes交互访问文件系统。客户端联系NameNode以获取文件的元数据,而真正的文件I/O操作时直接和DataNode进行交互的。

下图为HDFS体系结构

文件写入(Or客户端文件上传):

1、Client向NameNode发起文件写入的请求。

2、NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

3、Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

文件读取:

1、Client向NameNode发起文件读取的请求。

2、NameNode返回文件存储的DataNode的信息。

3、Client读取文件信息。

客户端:文件切分为block依次上传;与NameNode交互获取文件位置信息;与DataNode交互读取或者写入文件;管理和访问HDFS

二、MapReduce体系结构

MapReduce是一种并行编程模式,利用这种模式软件开发者可以轻松编写出分布式并行程序。在Hadoop体系结构中,MapReduce是一个简单易行的软件框架,基于它可以将任务分发到由上千台商用机器组成的集群上,并以一种可靠容错的方式并行处理大量数据集,实现Hadoop并行任务处理能力。

MapReduce框架是由一个单独运行在主节点的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控他们的执行情况,并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务。

当一个Job被提交时,JobTracker接收到提交作业和其配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行

后续会不断完善补充……

Hadoop学习笔记(一)——Hadoop体系结构,布布扣,bubuko.com

时间: 2024-12-25 08:22:42

Hadoop学习笔记(一)——Hadoop体系结构的相关文章

Hadoop学习笔记0001——Hadoop安装配置

Hadoop配置主要事项 1. 保证Master和Slave能够ping通: 2. 配置/etc/hosts文件: 3. 能够ssh无密码切换各台主机: 4. 安装sun公司的jdk,在/etc/profile中设置好环境变量: 5. 下载Hadoop,安装.配置.搭建Hadoop集群: 1.Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(

hadoop学习笔记(一)——hadoop安装及测试

这几天乘着工作之余,学习了一下hadoop技术,跌跌撞撞的几天,终于完成了一个初步的hadoop的安装及测试,具体如下: 动力:工作中遇到的数据量太大,服务器已经很吃力,sql语句运行老半天,故想用大数据技术来改善一下 环境:centos5.11+jdk1.7+hadoop2.5.2 1.  伪分布安装步骤 关闭防火墙 修改ip 修改hostname 设置ssh自动登录 安装jdk 安装hadoop 注:此部分涉及到的Linux操作部分可以再下面的链接中找到,Linux初级操作 2.  安装jd

Hadoop学习笔记(3) Hadoop文件系统二

1 查询文件系统 (1) 文件元数据:FileStatus,该类封装了文件系统中文件和目录的元数据,包括文件长度.块大小.备份.修改时间.所有者以及版权信息.FileSystem的getFileStatus()方法用于获取文件或目录的FileStatus对象. 例:展示文件状态信息 public class ShowFileStatusTest{ private MiniDFSCluster cluster; private FileSystem fs; @Before public void

Hadoop 学习笔记五 ---Hadoop系统通信协议介绍

本文约定: DN: DataNode TT: TaskTracker NN: NameNode SNN: Secondry NameNode JT: JobTracker 本文介绍Hadoop各节点和Client之间通信协议. Hadoop的通信是建立在RPC的基础上,关于RPC的详解介绍大家可以参照 "hadoop rpc机制 && 将avro引入hadoop rpc机制初探" Hadoop中节点之间的通信是比较复杂的一个网络,若可以把它们之间的通信网络了解清楚,那么

Hadoop学习笔记之Hadoop伪分布式环境搭建

搭建为伪分布式Hadoop环境 1.宿主机(Windows)与客户机(安装在虚拟机中的Linux)网络连接. a) Host-only 宿主机与客户机单独组网: 好处:网络隔离: 坏处:虚拟机和其他服务器之间不能通讯: b) Bridge 桥接 宿主机与客户机在同一个局域网中. 好处:窦在同一个局域网,可以互相访问: 坏处:不完全. 2.Hadoop的为分布式安装步骤 a) 设置静态IP 在centos下左面上右上角图标右键修改: 重启网卡service network restart; 验证:

[Hadoop] Hadoop学习笔记之Hadoop基础

1 Hadoop是什么? Google公司发表了两篇论文:一篇论文是“The Google File System”,介绍如何实现分布式地存储海量数据:另一篇论文是“Mapreduce:Simplified Data Processing on Large Clusters”,介绍如何对分布式大规模数据进行处理.Doug Cutting在这两篇论文的启发下,基于OSS(Open Source software)的思想实现了这两篇论文中的原理,从而Hadoop诞生了. Hadoop是一种开源的适合

Hadoop学习笔记—6.Hadoop Eclipse插件的使用

开篇:Hadoop是一个强大的并行软件开发框架,它可以让任务在分布式集群上并行处理,从而提高执行效率.但是,它也有一些缺点,如编码.调试Hadoop程序的难度较大,这样的缺点直接导致开发人员入门门槛高,开发难度大.因此,Hadop的开发者为了降低Hadoop的难度,开发出了Hadoop Eclipse插件,它可以直接嵌入到Hadoop开发环境中,从而实现了开发环境的图形界面化,降低了编程的难度. 一.天降神器插件-Hadoop Eclipse Hadoop Eclipse是Hadoop开发环境的

Hadoop 学习笔记四 ---Hadoop系统通信协议介绍

本文约定: DN: DataNode TT: TaskTracker NN: NameNode SNN: Secondry NameNode JT: JobTracker 本文介绍Hadoop各节点和Client之间通信协议. Hadoop的通信是建立在RPC的基础上,关于RPC的详解介绍大家可以参照 "hadoop rpc机制 && 将avro引入hadoop rpc机制初探" Hadoop中节点之间的通信是比较复杂的一个网络,若可以把它们之间的通信网络了解清楚,那么

Hadoop学习笔记—3.Hadoop RPC机制的使用

一.RPC基础概念 1.1 RPC的基础概念 RPC,即Remote Procdure Call,中文名:远程过程调用: (1)它允许一台计算机程序远程调用另外一台计算机的子程序,而不用去关心底层的网络通信细节,对我们来说是透明的.因此,它经常用于分布式网络通信中. RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了传输层和应用层.RPC使得开发包括网络分布式多程序在内的应用程序更加容易. (2)Hadoop的进程间交互都是通过R

Hadoop学习笔记——安装Hadoop

sudo mv /home/common/下载/hadoop-2.7.2.tar.gz /usr/local sudo tar -xzvf hadoop-2.7.2.tar.gz sudo mv hadoop-2.7.2 hadoop #改个名 在etc/profile文件中添加 export HADOOP_HOME=/usr/local/hadoop export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin  1.修改/usr/local/hado