Hadoop自学笔记(二)HDFS简单介绍

1. HDFS Architecture

一种Master-Slave结构。包括Name Node, Secondary Name Node,Data Node Job Tracker, Task Tracker。JobTrackers: 控制全部的Task Trackers 。这两个Tracker将会在MapReduce课程里面具体介绍。以下具体说明HDFS的结构及其功能。

Name Node:控制全部的Data Node。

存储了整个文件系统的信息。

全部新建文件,删除,拷贝等,都会在此更新。存储了Block Mapping.

Secondary Name Node:简单来说,是Name Node的一个备份。

Data Node: 真实进行全部操作的地方。比方一个用户要读取一份文件。用户会先和NameNode沟通,然后Name Node告诉用户这份文件在哪一个Data Node上面,然后用户从此Data Node中读取。Data Node还负责拷贝数据(当然也要报告Name Node)。

上述四个部分能够放到一台机器上面,也能够分别放在不同机器上面。

HDFS特征:

数据丢失保护:每份数据都会存储好几份。默认3份。

假设丢失一个block,能够从其它备份中恢复。假设丢失整个Rack,可是因为同一个数据的备份不会存储到同一Rack。因此也能够恢复。

相同,假设从一个Rack内部读取数据要比跨Rack读取数据速度更快,HDFS会首先试图从一个Rack读取全部所需数据,这个能够称为Rack Awareness。相同这样同一时候获得了可靠的数据存储,以及高数据吞吐量。

2. HDFS Internals

Name Node: 内存中存储了全部文件名称,备份数。以及文件所在的block id。另一个Edit Log,用于存储操作日志,当机器重新启动的时候,会生成一个FsImage文件,整合了Edit Log文件里的内容,相当于把内存持久化。

重新启动后再读取到内存中。

用户读写文件都是和Name Node交互。从Name Node中获取数据存储的Blocks,然后从对应的Block读取出文件。

Secondary Name Node: 为了防止Name Node奔溃或者丢失。

每小时把Name Node中的Edit Log读取过来,然后生成FsImage,等Name Node丢失后。能够用于恢复。

Data Node: 直接和Name Node进行交互。其实。Name Node并不和Data Node进行交互,也不和Secondary Name Node交互, 而是后二者主动和Name Node进行交互。

Data Node每3秒钟向Name Node报告一次。假设10秒钟没报告,就觉得是出问题了,開始进行恢复操作。每个Block默认大小是64M. 这样能够保证在大文件的情况下,Name Node不会太庞大,并且提升读取速度。

Block越大,Name Node中的metaData越小。

每个Block有id,同一份block(备份)的id相同,例如以下图。存储在不同的rack上面。

并且还会把相同一份文件的block放到尽量相近的位置便于读写操作。假设时间长了Blocks的位置混乱了,能够使用rebalancing 工具来又一次排序使其恢复到最优位置。

每隔3秒钟Data Node就会向Name Node报告自己的Blocks,Data Node内部包括了一个Block Scanner用来汇报。假设Name Node发现有block备份多了,就删除;假设发现某一block备份不足,就将该任务放到一个队列中,这个队列依照优先级来复制备份不足的block。备份最少的block优先级最高。

3. HDFS interaction

Ubuntu里面能够依照例如以下图所看到的输入命令,然后与HDFS进行交互,其命令大部分和Shell命令一样。叫FS Shell。除了Shell以外。另一个Web UI用来交互。

假设想知道每个命令能够去google搜索Hadoop Command Guide,然后就能够找到这些命令的具体使用方法。

时间: 2024-08-05 06:33:15

Hadoop自学笔记(二)HDFS简单介绍的相关文章

HDFS简单介绍及用C语言訪问HDFS接口操作实践

一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广泛的应用. Hadoop分布式文件系统(Hadoop Distributed File System.HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是Hadoop项目的核心子项目,是一种具有高容错性.高可靠性.高可扩展性.高吞吐量等特征的分布

hadoop学习笔记(二)

hadoop学习笔记(二) 我的个人博客站点地址:孙星的个人博客主页 后续的学习笔记:hadoop学习笔记 hadoop单节点的搭建 下载hadoop: wget http://apache.fayea.com/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz tar -zxvf hadoop-2.7.1.tar.gz 解压配置免密码登陆: //生成秘钥 ssh-keygen -t rsa //一直回车,在当前目录中会出现2个文件,一个是公钥,一个是私

Hadoop自学笔记(一)常见Hadoop相关项目一览

本自学笔记来自于Yutube上的视频Hadoop系列.网址: https://www.youtube.com/watch?v=-TaAVaAwZTs(当中一个) 以后不再赘述 自学笔记,难免有各类错误纰漏.请看者谨慎. Hadoop的使用还有大数据时代什么的就不说了.Hadoop不是一个单独的工具,而是一整个生态系统.包括一系列工具.所以首先要先介绍一下Hadoop相关的工具和各类概念,是以后经常会接触到的. 1. Hadoop Core a) HDFS  Hadoop分布式文件系统,Hadoo

hadoop学习笔记(二)——hadoop思想简介

这几天阅读<hadoop实战>,初步了解了一下hadoop的核心思想,简要的比较如下: 1.  hadoop是一个开源框架,可编写和运行分布式应用处理大数据,具有方便.简单.健壮性.可扩展性等优点 2.  MapReduce程序的执行分为两个阶段,为mapping和reducing.每个阶段均定义为数据处理函数,分别被称为mapper和reducer.在mapping阶段,MapReduce获取输入数据并将数据单元装入mapper:在reducing阶段,reducer处理来自mapper的所

how tomcat works 读书笔记(二)----------一个简单的servlet容器

app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/article/details/39378157) 回顾我们上一章,我们开发了一个最最简单的web服务器,它可以使用户访问服务器内的静态资源.当然这是远远不够的,在这一节里,我们就试着让服务器在能相应静态资源的基础上继续支持servlet. servlet接口 javax.servlet.Servlet接口

Hadoop集群(二) HDFS搭建

HDFS只是Hadoop最基本的一个服务,很多其他服务,都是基于HDFS展开的.所以部署一个HDFS集群,是很核心的一个动作,也是大数据平台的开始. 安装Hadoop集群,首先需要有Zookeeper才可以完成安装.如果没有Zookeeper,请先部署一套Zookeeper.另外,JDK以及物理主机的一些设置等.请参考: Hadoop集群(一) Zookeeper搭建 Hadoop集群(三) Hbase搭建 Hadoop集群(四) Hadoop升级 下面开始HDFS的安装 HDFS主机分配 1

Hadoop-HBASE案例分析-Hadoop学习笔记&lt;二&gt;

之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第八章的笔记 主要介绍HBase,一个分布式数据库的应用案例. 案例概况: 1)时间序列数据库(OpenTSDB) 用HBase储存时间序列数据,每时每刻都在解决,数据库为开源 2)HBase爬虫调度库 垂直搜索爬虫 大规模爬虫(全网爬虫) 这里界定URL爬虫调度 3)HBase文档库 储存文档数据库,偏重于储存 4)银行人民币查询系统 不在博客园上阅读时才会看到的,这篇博文归http://www.cnbl

Hadoop学习笔记0002——HDFS文件操作

  说明:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式. 方式一:命令行方式 Hadoop文件操作命令形式为:hadoop fs -cmd <args> 说明:cmd是具体的文件操作命令,<args>是一组数目可变的参数. Hadoop最常用的文件操作命令,包括添加文件和目录.获取文件.删除文件等. 1 添加文件和目录 HDFS有一个默认工作目录/usr/$USER,其中$USER是你的登录用户名,作者的用户名是root.该目录不能自动创建,需要执行m

hadoop学习笔记之--- HDFS原理学习

HDFS HDFS设计基础与目标: 冗余:硬件错误是常态 流式数据访问.即数据比量读取而非随机读写,Hadoop擅长做的是数据分析而不是事务处理. 大规模数据集 简单一致性模型.为了降低系统复杂程度,对文件采用一次性写多多次读的逻辑设置,即是文件一经写入,关闭,再也不能修改. 程序采用"数据京近"原则分配节点执行. OLTP:偶尔随机性德读写 HDFS体系架构: NameNode: 管理文件系统的命名空间: 记录每个文件数据块在各个Datanode上的位置和副本信息: 协调客户端对文件