课程设计(二) Hadoop分布式文件系统(HDFS)运行测试
实验2 大数据分析平台中HDFS的使用

1、HDFS 预备知识2、HDFS 读写数据的过程(一) 实验目的1.理解HDFS 在Hadoop 体系结构中的角色;2.理解HDFS 存在的原因;3.理解HDFS 体系架构;4.理解HDFS 读写数据过程;5.熟练使用HDFS 常用的Shell 命令。
(三) 实验环境1.在HDFS 中进行目录操作;2.在HDFS 中进行文件操作;3.从本机中上传文件到HDFS ;4.从HDFS 下载文件到本机。
(四) 实验步骤(二) 实验要求1.大数据分析实验系统(FSDP );2.CentOS 6.7;3. Hadoop 2.7.1。
分布式文件系统(Distributed File System )是指文件系统管理的物理存储资源不一定直接连接在本地节点,而是通过计算机网络与节点相连。
HDFS (Hadoop 分布式文件系统,Hadoop Distributed File System )是一种适合运行在通用硬件上的分布式文件系统,它是一个高度容错性的系统,适合部署在廉价的机器上。
HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
HDFS 为大数据分析平台的其他所有组件提供了最基本的存储功能。
它具有高容错、高可靠、可扩展、高吞吐率等特征,为大数据存储和处理提供了强大的底层存储架构。
HDFS 采用主/从(master/slave )式体系结构,从最终用户的角度来看,它就像传统的文件系统,可通过目录路径对文件执行增删改查操作。
由于其分布式存储的性质,HDFS 拥有一个NameNode 和一些DataNode ,NameNode 管理文件系统的元数据,DataNode 存储实际的数据。
1.HDFS 预备知识;2.HDFS 读写数据的过程;3.HDFS 的目录和文件操作。
HDFS 提供高吞吐量应用程序访问功能,适合带有大型数据集的场景,具体包括: •数据密集型并行计算:数据量大,但是计算相对简单的并行处理,如大规模Web 信息搜索;•计算密集型并行计算:数据量相对不是很大,但是计算较为复杂的并行处理,如3D 建模与渲染、气象预报、科学计算等;•数据密集型与计算密集型混合的计算,如3D 电影渲染等。
Hadoop大数据开发基础教案Hadoop介绍教案

Hadoop大数据开发基础教案Hadoop介绍教案第一章:Hadoop概述1.1 课程目标了解Hadoop的定义、发展历程及应用场景掌握Hadoop的核心组件及其作用理解Hadoop在大数据领域的优势1.2 教学内容Hadoop的定义与发展历程Hadoop的核心组件:HDFS、MapReduce、YARN Hadoop的应用场景与优势1.3 教学方法讲解与案例分析相结合互动提问,巩固知识点1.4 课后作业简述Hadoop的发展历程及其在大数据领域的优势。
第二章:HDFS(分布式文件系统)2.1 课程目标掌握HDFS的架构与工作原理了解HDFS的优势与局限性掌握HDFS的常用操作命令2.2 教学内容HDFS的架构与工作原理HDFS的优势与局限性HDFS的常用操作命令:hdfs dfs, hdfs dfsadmin2.3 教学方法讲解与实践操作相结合案例分析,理解HDFS的工作原理2.4 课后作业利用HDFS命令练习文件的与。
第三章:MapReduce编程模型3.1 课程目标掌握MapReduce的基本概念与编程模型理解MapReduce的运行原理与执行过程学会使用MapReduce解决大数据问题3.2 教学内容MapReduce的基本概念:Mapper、Reducer、Shuffle与Sort MapReduce的编程模型:Map阶段、Shuffle阶段、Reduce阶段MapReduce的运行原理与执行过程3.3 教学方法讲解与编程实践相结合剖析经典MapReduce案例,理解编程模型3.4 课后作业编写一个简单的MapReduce程序,实现单词计数功能。
第四章:YARN(资源管理器)4.1 课程目标掌握YARN的基本概念与架构了解YARN的工作原理与调度策略掌握YARN的资源管理与优化方法4.2 教学内容YARN的基本概念与架构YARN的工作原理与调度策略YARN的资源管理与优化方法4.3 教学方法讲解与案例分析相结合实操演练,掌握YARN的资源管理方法4.4 课后作业分析一个YARN集群的资源使用情况,提出优化方案。
hadoop分布式实验总结

hadoop分布式实验总结Hadoop分布式实验总结一、实验目标本次实验的目标是深入理解Hadoop分布式文件系统(HDFS)和MapReduce计算模型,通过实际操作和案例分析,掌握Hadoop的基本原理和应用。
二、实验内容在本次实验中,我们主要完成了以下几个部分的内容:1. HDFS的基本操作:包括在HDFS中创建文件夹、上传和下载文件等。
2. MapReduce编程:编写Map和Reduce函数,实现对数据的处理和分析。
3. Hadoop集群搭建:配置Hadoop集群,了解节点间的通信和数据传输机制。
4. 性能优化:通过调整参数和优化配置,提高Hadoop集群的性能。
三、实验过程1. HDFS操作:首先,我们在本地机器上安装了Hadoop,并启动了HDFS。
然后,我们通过Hadoop命令行工具对HDFS进行了基本的操作,包括创建文件夹、上传和下载文件等。
在操作过程中,我们遇到了权限问题,通过修改配置文件解决了问题。
2. MapReduce编程:我们选择了一个经典的问题——单词计数作为案例,编写了Map和Reduce函数。
在编写过程中,我们了解了MapReduce的基本原理和编程模型,以及如何处理数据的分片和shuffle过程。
3. Hadoop集群搭建:我们在实验室的局域网内搭建了一个Hadoop集群,配置了各个节点之间的通信和数据传输。
在配置过程中,我们注意到了防火墙和网络通信的问题,通过调整防火墙规则和配置网络参数,解决了问题。
4. 性能优化:我们对Hadoop集群进行了性能优化,通过调整参数和优化配置,提高了集群的性能。
我们了解到了一些常用的优化方法,如调整数据块大小、优化网络参数等。
四、实验总结通过本次实验,我们深入了解了Hadoop分布式文件系统和MapReduce计算模型的基本原理和应用。
在实验过程中,我们遇到了一些问题,但通过查阅资料和互相讨论,最终解决了问题。
通过本次实验,我们不仅掌握了Hadoop的基本操作和编程技能,还提高了解决实际问题的能力。
数据存储实验报告

一、实验背景随着互联网和大数据时代的到来,数据已成为企业、科研机构和社会组织的重要资产。
数据存储技术作为数据管理的基础,其性能、可靠性和安全性直接影响到数据的有效利用。
本实验旨在通过对数据存储技术的学习和实践,掌握不同类型数据存储系统的原理和操作方法,提高数据存储管理的实际操作能力。
二、实验目的1. 了解数据存储技术的发展历程和主流技术;2. 掌握关系型数据库(MySQL)的安装、配置和使用;3. 熟悉分布式文件系统(HDFS)的原理和操作;4. 掌握HBase的安装、配置和使用;5. 培养数据存储系统的性能优化和安全性保障能力。
三、实验环境1. 操作系统:Windows 102. 数据库:MySQL 5.73. 分布式文件系统:Hadoop 3.2.14. NoSQL数据库:HBase 1.4.9四、实验步骤1. 关系型数据库(MySQL)实验(1)安装MySQL数据库,并配置环境变量。
(2)创建一个名为“data_storage”的数据库。
(3)在“data_storage”数据库中创建一个名为“students”的表,包含以下字段:id(主键)、name、age、class。
(4)向“students”表中插入一些测试数据。
(5)使用SQL语句查询、更新和删除数据。
2. 分布式文件系统(HDFS)实验(1)安装Hadoop 3.2.1,并配置环境变量。
(2)启动Hadoop集群,包括HDFS和YARN。
(3)在HDFS中创建一个名为“data_storage”的目录。
(4)将一些文本文件上传到“data_storage”目录。
(5)使用HDFS命令行工具操作文件。
3. NoSQL数据库(HBase)实验(1)安装HBase 1.4.9,并配置环境变量。
(2)启动HBase集群。
(3)在HBase中创建一个名为“students”的表,包含以下字段:id(主键)、name、age、class。
Hadoop测试例子运行详解

Hadoop测试例⼦运⾏详解⼀、软件环境Hadoop搭建系统环境:三台完全⼀样的Centos6.5_64位系统,其中⼀个做Namenode和Datanode,另外两个做Datanode。
Hadoop安装⽬标版本:Hadoop2.2.0⼆、运⾏步骤2.1 新建输⼊⽂件内容在当前⽬录新建⼀个⽂件夹叫input,在⽂件夹⾥新建三个⽂件f1.txt,f2.txt,f3.txt,并分别写⼊⼀些内容。
mkdir -p input/{1..3}.txt 递归创建⽬录和⽂件echo "hello hadoop" > input/f1.txt'echo "hello java" > input/f2.txt'echo "hello world" > input/f3.txt'2.2 在运⾏的hadoop中创建⽂件夹注意在操作之前,⼀定要保证这个时候hadoop已经正常运⾏,datanode、jodtracker、namenode等必要信息均显⽰正常。
使⽤如下的命令创建⽂件夹hadoop fs -mkdir -p /home/hadoop/input/*注意相对路径,这⾥的/home/hadoop是我当前⽤户的⽬录,可根据⾃⼰具体情况进⾏改动没有-p参数会⽆法创建成功*/然后查看我们在hadoop中是否已经成功创建了该⽂件夹:[hadoop@master bin]$ hadoop fs -ls /home/hadoop/Found 2 itemsdrwxr-xr-x - hadoop supergroup 0 2014-03-05 19:00 /home/hadoop/input如果我们能看到如上的字样表明我们这⼀步已经成功了。
2.3 把⽂件复制到hadoop中的⽂件系统中(Hdfs)[hadoop@master ~]$ hadoop fs -put input/* /home/hadoop/input/把(本地⽬录)/home/hadoop/input/*下的所以⽂件复制到HDFS中的input⽬录下然后查看⽂件是否在hadoop中,并查看⽂件内容是否和输⼊的⼀致:hadoop fs -ls /home/hadoop/inputhadoop fs -cat /home/hadoop/input/f1.txt注:我们可以通过节点IP或节点主机名:50070/dfshealth.jsp来从浏览器中查看整个hdfs⽂件系统的⽬录,打开namenode的链接,点击其中的Browse the filesystem超级链接,就可以看到相应的⽬录结构了。
Hadoop技术的性能测试与优化

Hadoop技术的性能测试与优化Hadoop是一个非常流行的分布式文件系统和分布式计算框架,它可以将一个大型的数据集分成许多小的文件块,并且将这些文件块分别存储在不同的计算机节点上,通过MapReduce算法在这些节点上进行数据处理,从而实现分布式计算。
随着数据的规模不断增大,Hadoop的性能测试和优化变得越来越重要,本文将介绍Hadoop的性能测试和优化方法。
一、Hadoop的性能测试性能测试是评估Hadoop系统工作效能的关键,它可以帮助用户了解Hadoop系统的各项指标,例如数据吞吐量、响应时间、并发用户数和资源占用情况等等。
以下是一些常见的性能测试工具:1. Hadoop Benchmark SuiteHadoop Benchmark Suite是Hadoop自己提供的一套性能测试工具,它可以测试HDFS(分布式文件系统)的读写速度、MapReduce(分布式计算框架)的性能,以及HBase(分布式数据库)的性能。
用户可以通过Hadoop Benchmark Suite测试不同场景下的Hadoop系统性能,例如多节点情况下的数据吞吐量、响应时间、任务失败率等等指标。
2. Yahoo! Cloud Serving BenchmarkYahoo! Cloud Serving Benchmark(YCSB)是一个流行的分布式数据存储和检索性能测试工具。
它可以测试不同的分布式存储系统,包括Hadoop的分布式数据库HBase。
用户可以通过YCSB 测试Hadoop系统在高并发和大数据量情况下的性能。
3. TeraByte SortTeraByte Sort是一种经典的分布式排序算法,它可以测试Hadoop系统在大规模数据排序时的性能。
用户可以通过TeraByte Sort测试Hadoop系统在不同节点数量和不同数据量下的排序速度和资源占用情况。
二、Hadoop的性能优化性能测试可以帮助用户了解Hadoop系统的工作效能,但只有通过对Hadoop系统的性能瓶颈进行优化,才能真正提升系统的工作效率。
分布式系统性能测试实验报告

分布式系统性能测试实验报告一、引言分布式系统是由多台独立的计算机节点组成的系统,通过网络通信和协调合作来完成任务。
在实际应用中,分布式系统的性能测试至关重要,它可以评估系统的可靠性和效率。
本报告旨在介绍一次分布式系统性能测试的实验过程和结果。
二、实验环境1. 硬件配置:在本次实验中,我们使用了5台独立的计算机作为分布式系统的节点,每台计算机配置如下:CPU为Intel Core i7,内存为8GB,硬盘容量为1TB,网络带宽为1Gbps。
2. 软件配置:我们采用了开源软件Apache Hadoop作为分布式系统的基础框架,并在每台计算机上安装了相应版本的Hadoop。
实验中使用的Hadoop 版本为2.7.3。
三、实验设计1. 测试目标:本次实验旨在评估分布式系统的性能表现,包括系统的吞吐量和响应时间。
2. 测试内容:我们设计了三个不同的测试场景,分别是并行计算、数据分析和分布式存储。
对于每个场景,我们都设计了相应的数据集和任务。
3. 测试步骤:(1)并行计算:我们使用了一组大规模的计算任务,通过在分布式系统上同时执行这组任务来测试系统的计算能力和并行处理能力。
(2)数据分析:我们使用了一组真实的数据集,包括用户行为数据、销售数据等。
通过在分布式系统上进行复杂的数据分析和挖掘任务,来测试系统在大规模数据处理方面的性能。
(3)分布式存储:我们模拟了多台计算机同时读写数据的场景,测试系统在分布式存储方面的性能表现,包括数据传输速度和读写延迟。
四、实验结果与分析1. 并行计算场景:在并行计算场景下,我们观察到系统的吞吐量随着任务数量的增加而线性增长,表明系统具有良好的可扩展性和并行处理能力。
同时,随着计算任务规模的增大,系统的响应时间也略有增加,但整体表现仍然稳定。
2. 数据分析场景:在数据分析场景中,我们发现系统在处理大规模数据集时表现出色。
无论是复杂的数据挖掘任务还是统计分析,系统均能在短时间内完成,并且具有良好的稳定性。
大数据存储期末试题及答案

大数据存储期末试题及答案一、选择题1. 大数据存储主要面临的挑战是:A. 存储容量不足B. 存储速度慢C. 数据安全性差D. 数据管理困难答案:D2. 下列哪种存储介质适合存储大数据?A. 磁盘B. 固态硬盘(SSD)C. 内存D. 光盘答案:B3. 大数据存储的备份策略应包括以下哪些方面?A. 定期数据备份B. 数据冗余备份C. 数据压缩备份D. 数据加密备份答案:A、B、D4. RAID技术用于提高存储系统的哪些方面的性能?A. 存储容量B. 存储速度C. 数据安全性D. 数据压缩率答案:B、C5. 下列哪种网络存储技术适合大数据存储?A. DAS(直接连接存储)B. SAN(存储区域网络)C. NAS(网络附加存储)D. CAS(内容地址存储)答案:B、C二、填空题1. Hadoop分布式文件系统(HDFS)允许将大数据分割为__________进行存储。
答案:数据块2. 感知存储系统(CPS)是一种______________机制,可以根据数据的重要性和访问频率来自动调整数据存储位置。
答案:自适应存储3. 数据湖是指以_____________的方式存储大数据,使得所有数据可供各种分析和挖掘应用程序使用。
答案:原始形式4. 数据备份的目的是为了______________,以免数据丢失后无法找回。
答案:数据恢复5. 数据压缩可以提高存储系统的___________。
答案:存储容量利用率三、简答题1. 请简要介绍大数据存储的常用技术有哪些?答:大数据存储的常用技术包括:- 分布式文件系统:如Hadoop分布式文件系统(HDFS),将大数据分割为数据块存储在集群中的多个节点上,实现数据的高可靠性和可扩展性。
- 列式存储:将数据按列存储,提高查询效率和压缩率,适用于大规模数据分析。
- 高速缓存技术:利用内存或固态硬盘(SSD)作为高速缓存,加快数据访问速度。
- 压缩技术:通过压缩算法减小数据的存储空间,节约存储成本,并提高数据传输效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学实验报告学生姓名: 学号: 指导老师:田文洪实验地点:实验时间:2009 年 12 月 15 日一、实验室名称:二、实验项目名称:Hadoop 分布式文件系统(HDFS)运行测试三、实验学时:16四、实验原理:在 SIP 项目设计的过程中,对于它庞大的日志在早先就考虑使用任务分解的 多线程处理模式来分析统计,但是由于统计的内容暂时还是十分简单,所以就采 用 Memcache 作为计数器结合 Mysql 完成了访问控制以及统计的工作。
但未来, 对于海量日志分析的工作,还是需要有所准备。
现在最火的技术词汇莫过于“云 计算”,在 Open API 日益盛行的今天,互联网应用的数据将会越来越有价值,如 何去分析这些数据,挖掘其内在价值,就需要分布式计算来支撑起海量数据的分 析工作。
回过头来看,早先那种多线程,多任务分解的日志分析设计,其实是分布式 计算的一个单机版缩略,如何将这种单机的工作分拆,变成集群工作协同,其实 就是分布式计算框架设计所涉及的。
BEA 和 VMWare 合作采用虚拟机来构建集 群,无非就是希望使得计算机硬件能够类似于应用程序中的资源池中的资源,使 用者无需关心资源的分配情况,最大化了硬件资源的使用价值。
分布式计算也是 如此,具体的计算任务交由哪一台机器执行,执行后由谁来汇总,这都由分布式 框架的 Master 来抉择,而使用者只需简单的将待分析内容的提供给分布式计算 系统作为输入,就可以得到分布式计算后的结果。
Hadoop 是 Apache 开源组织的 一个分布式计算开源框架,在很多大型网站上都已经得到了应用,亚马逊, Facebook,Yahoo 等等。
对于我来说,最近的一个使用点就是服务集成平台的日志 分析,服务集成平台的日志量将会很大,这也正好符合了分布式计算的适用场景 (日志分析,索引建立就是两大应用场景)。
什么是 HadoopHadoop 框架中最核心设计就是:MapReduce 和 HDFS。
MapReduce 的思想 是由 Google 的一篇论文所提及而被广为流传的,简单的一句话解释 MapReduce 就是任务的分解与结果的汇总。
HDFS 是 Hadoop 分布式文件系统的缩写,为分 布式计算存储提供了底层支持。
MapReduce 从 它 名 字 上 来 看 就 大 致 可 以 看 出 个 缘 由 , 两 个 动 词 Map,Reduce,Map(展开)就是将一个任务分解成为多个任务,Reduce 就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。
这不是什么新思想, 其实在前面提到了多线程,多任务的设计就可以找到这种思想的影子。
不论是现 实社会,还是在程序设计中,一项工作往往可以被拆分成为多个任务,任务之间 的关系可以分为两种:一种是不相关的任务,可以并行执行;另一种是任务之间 有相互的依赖,先后顺序不能够颠倒,这类任务是无法并行处理的。
大学老师上 课时让大家去分析关键路径,无非就是找最省时的任务分解执行方式。
在分布式 系统中,机器集群就可以看作硬件资源池,将并行的任务拆分交由每一个空闲机 器资源去处理,能够极大地提高计算效率,同时这种资源无关性,对于计算集群 的扩展无疑提供了最好的设计保证。
任务分解处理以后,那就需要将处理以后的 结果在汇总起来,这就是 Reduce 要做的工作。
图 1 MapReduce上图就是 MapReduce 大致的结构图,在 Map 前还可能会对输入的数据有 split 的过程,保证任务并行效率,在 Map 之后还会有 shuffle 的过程,对于提高 Reduce 的效率以及减小数据传输的压力有很大的帮助。
后面会具体提及这些部分的细 节。
根据流程图来说一下具体一个任务执行的情况。
1. 在分布式环境中客户端创建任务并提交。
2. InputFormat 做 Map 前的预处理,主要负责以下工作:1. 验证输入的格式是否符合 JobConfig 的输入定义,这个在实现 Map 和构建 Conf 的时候就会知道,不定义可以是 Writable 的任意子类。
2. 将 input 的文件切分为逻辑上的输入 InputSplit,其实这就是在 上面提到的在分布式文件系统中 blocksize 是有大小限制的,因此 大文件会被划分为多个 block。
3. 通过 RecordReader 来再次处理 inputsplit 为一组 records,输出 给 Map。
(inputsplit 只是逻辑切分的第一步,但是如何根据文件 中的信息来切分还需要 RecordReader 来实现,例如最简单的默认 方式就是回车换行的切分)3. RecordReader 处理后的结果作为 Map 的输入,Map 执行定义的 Map 逻辑, 输出处理后的 key 和 value 对应到临时中间文件。
4. Combiner 可选择配置,主要作用是在每一个 Map 执行完分析以后,在本 地优先作 Reduce 的工作,减少在 Reduce 过程中的数据传输量。
5. Partitioner 可选择配置,主要作用是在多个 Reduce 的情况下,指定 Map 的结果由某一个 Reduce 处理,每一个 Reduce 都会有单独的输出文件。
(后 面的代码实例中有介绍使用场景)6. Reduce 执行具体的业务逻辑,并且将处理结果输出给 OutputFormat。
7. OutputFormat 的职责是,验证输出目录是否已经存在,同时验证输出结果类型是否如 Config 中配置,最后输出 Reduce 汇总后的结果。
HDFS 是分布式计算的存储基石,Hadoop 的分布式文件系统和其他分布式文 件系统有很多类似的特质。
分布式文件系统基本的几个特点: 1. 对于整个集群有单一的命名空间。
2. 数据一致性。
适合一次写入多次读取的模型,客户端在文件没有被成功 创建之前是无法看到文件存在。
3. 文件会被分割成多个文件块,每个文件块被分配存储到数据节点上,而 且根据配置会有复制文件块来保证数据的安全性。
图 2 HDFS上图中展现了整个 HDFS 三个重要角色:NameNode,DataNode,Client。
NameNode 可以看作是分布式文件系统中的管理者,主要负责管理文件系 统的命名空间,集群配置信息,存储块的复制。
NameNode 会存储文件系统的 Meta-data 在内存中,这些信息主要包括了文件信息,每一个文件对应的文件块 的信息,每一个文件块在 DataNode 的信息。
DataNode 是文件存储的基本单元。
它存储 Block 在本地文件系统中,保存 了 Block 的 Meta-data,同时周期性的发送所有存在的 block 的报告给 NameNode。
Client 就是需要获取分布式文件系统文件的应用程序。
这里通过三个操作来说明他们之间的交互关系。
文件写入:1. Client 向 NameNode 发起文件写入的请求。
2. NameNode 根据文件大小和文件块配置情况,返回给 Client 它所管理部 分 DataNode 的信息。
3. Client 将文件划分为多个 Block,根据 DataNode 的地址信息,按顺序写 入到每一个 DataNode 块中。
文件读取: 1. Client 向 NameNode 发起文件读取的请求。
2. NameNode 返回文件存储的 DataNode 的信息。
3. Client 读取文件信息。
文件 Block 复制: 1. NameNode 发现部分文件的 block 不符合最小复制数或者部分 DataNode失效。
2. 通知 DataNode 相互复制 Block。
3. DataNode 开始直接相互复制。
最后在说一下 HDFS 的几个设计特点:(对于框架设计值得借鉴)1. Block 的放置 默认不配置,一个 Block 会有三份备份。
一份放在 NameNode 指定的 DataNode, 另一份放在与指定 DataNode 非同一 Rack 上的 DataNode,最后一份放在与指定 DataNode 同一 Rack 上的 DataNode 上。
备份无非就是为了数据安全,考虑同一 Rack 的失败情况以及不同 Rack 之间数据拷贝性能问题就采用这种配置方式。
2. 心跳检测 DataNode 的健康状况,如果发现问题就采取数据备份的方式来保 证数据的安全性。
3. 数据复制。
(DataNode 失败的时候,需要平衡 DataNode 的存储利用率的时 候,需要平衡 DataNode 数据交互压力的时候)这里先说一下,使用 HDFS 的 balancer 命令,可以配置一个 Threshold 来平衡每 一个 DataNode 磁盘利用率。
例如设置了 Threshold 为 10%,那么执行 balancer 命令的时候,首先统计所有 DataNode 的磁盘利用率的均值,然后判断如果某一 个 DataNode 的磁盘利用率超过这个均值 Threshold 以上,那么将会把这个 DataNode 的 block 转移到磁盘利用率低的 DataNode,这对于新节点的加入来说 十分有用。
4. 数据交验。
采用 CRC32 作数据交验。
在文件 Block 写入的时候除了写入数 据还会写入交验信息,在读取的时候需要交验后再读入。
5. NameNode 是单点。
如果失败的话,任务处理信息将会纪录在本地文件系 统和远端的文件系统中。
6. 数据管道性的写入。
当客户端要写入文件到 DataNode 上,首先客户端读取一个 Block 然后写到第一个 DataNode 上,然后由第一个 DataNode 传递到备份的 DataNode 上,一直 到所有需要写入这个 Block 的 NataNode 都成功写入,客户端才会继续开始写下 一个 Block。
7. 安全模式。
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安 全模式结束。
安全模式主要是为了系统启动的时候检查各个 DataNode 上数据块 的有效性,同时根据策略必要的复制或者删除部分数据块。
运行期通过命令也可 以进入安全模式。
在实践过程中,系统启动的时候去修改和删除文件也会有安全 模式不允许修改的出错提示,只需要等待一会儿即可。
在 Hadoop 的系统中,会有一台 Master,主要负责 NameNode 的工作以及 JobTracker 的工作。
JobTracker 是的主要职责就是启动,跟踪,调度各个 Slave 的任务执行。