更新1基于Hadoop的分布式文件系统的研究.docx
- 文档编号:30524069
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:30
- 大小:1.48MB
更新1基于Hadoop的分布式文件系统的研究.docx
《更新1基于Hadoop的分布式文件系统的研究.docx》由会员分享,可在线阅读,更多相关《更新1基于Hadoop的分布式文件系统的研究.docx(30页珍藏版)》请在冰豆网上搜索。
更新1基于Hadoop的分布式文件系统的研究
南阳理工学院
云计算导论大作业
学院(系):
软件学院
专业:
软件工程
学生:
李元池
指导教师:
陈可
完成日期2016年04月
基于Hadoop的分布式文件系统的研究
StudyofthedistributedfilesystembasedonHadoop
南阳理工学院云计算导论大作业
基于Hadoop的分布式文件系统的研究
StudyofthedistributedfilesystembasedonHadoop
学院(系):
软件学院
专业:
软件工程
学生姓名:
李元池
学号:
1415925619
指导教师(职称):
陈可讲师
评阅教师:
陈可
完成日期:
2016年04月
南阳理工学院
NanyangInstituteofTechnology
基于Hadoop的分布式文件系统的研究
云计算4班李元池
1[摘要]随着互联网的普及和快速发展,用户数据出现了迅速的增长。
传统的通过网络通信访问非本地数据在面对当前大规模数据存储需求,在数据容量、可靠性、安全性、高可扩展等方面已难胜任。
针对上述问题,提出一种新的大规模数据存储系统,即基于HDFS(HadoopDistributedFileSystem)的分布式存储系统,通过充分利用分布式存储的技术优势,以满足当前大规模数据存储和管理的要求。
HDFS作为主流的分布式存储系统,因为其高可靠、高性能存储服务而被广泛使用。
利用系统中的Master对所有的DataNode进行集中管理、监控和维护,同时,提供Client让用户通过其与整个系统交互,完成用户需要的系列功能,如包括大规模数据的读写、删改等。
[关键词]Hadoop分布式系统HDFS文件系统分布式数据存储
基于Hadoop的分布式文件系统的研究
StudyofthedistributedfilesystembasedonHadoop
Cloudcomputingclass4LiYuanChi
1Abstract:
WithAbstract:
thepopularizationandrapiddevelopmentoftheInternet,usershaveexperiencedrapidgrowthindata.Traditionalcommunicationaccessthroughthenetworkofnon-localdatainthefaceoflarge-scaledatastoragerequirementscurrentlyindatacapacity,reliability,security,highscalability,etc.havebeendifficulttodothejob.Inresponsetotheseproblems,anewlarge-scaledatastoragesystems,namelyHDFS(HadoopDistributedFileSystem)-baseddistributedstoragesystem,bymakingfulluseoftheadvantagesofdistributedstoragetechnologytomeetthecurrentlarge-scaledatastorageandmanagementrequirements.
2Abstract:
Asamainstreamamongdistributedstoragesystemsduetoitshighreliabilityandsatisfyingperformanceinstorageservice,HDFSiswidelyused.AndwecanmakeuseofMaster,thusconductingcentralizedmanagement,monitoringandmaintenanceoveralltheDataNodeinthesystem.Meanwhile,weprovidetheuserswithclienttoallowthemtointeractwiththewholesystemandcompeletetheneedysystematicalfunctions,includingthereading,writinganddeletingoflarge-scaledata.
3Abstract:
HadoopHDFSDistributedDataStorage
目录
1绪论1
1.1研究背景及意义1
1.2国内外研究现状2
1.3论文结构2
2相关键技术分析3
2.1Hadoop介绍3
2.2Hadoop分布式文件系统HDFS3
2.2.1HDFS相关概念3
2.3本章小结4
3实验环境构建4
3.1运行环境4
3.2VMwareWorkstation12Pro的安装5
3.2.1准备条件5
3.2.2安装截图5
3.3基于Ubuntu15.10的Hadoop集群安装与配置7
3.3.1安装JDK7
3.3.2安装SSH免密登录8
3.3.3进行Hadoop集群完全分布式的安装配置10
3.4测试是否安装成功13
3.5本章小结16
4Hadoop中HDFS的应用16
4.1HDFS体系架构16
4.2基本操作17
4.3HDFS的文件存储原理18
4.4基本文件命令20
4.5本章小结23
5结束语23
参考文献25
致谢26
1绪论
1.1研究背景及意义
随着人类生活水平的不断提高和科学技术的不断发展,在很多领域都产生了大规模的数据,如大规模的电子商务、社交网络、网络日志、互联网搜索索引、呼叫详细记录、天气预报研究、地震数据分析、基因分析、军事侦察,医疗记录等。
下面列举一些较典型的大规模数据例子:
国际数据公司(IDC)的研究结果表明,全球总共产生的数据量从2008年到2012年间已经翻了五六倍。
其中到2012年底,人类生产的总共资料信息的数据量是200PB,全地球人至今说过的话大约是5EB(1EB=1024PB)的数据量。
IBM的研究报告称,全球文明的所有数据中,过去两年内产生的约占将近百分之九十。
而预计到2020年底,全球所有的数据规模将是今天的44倍。
如今Facbook每天产生约10TB数据,2400个内核,9TB内存,绝大部分时间系统的硬件都是满负荷在不停的运行。
Youtube现在每月需要产生存储31PB的流媒体数据,而XX云每天处理的数据量大约相当五千个国家图书馆,Google公司每天搜索网页的数据已经超过了8l亿张,搜索的图片超过了10亿张,每天处理的数据量已超过20PB等。
针对这些大规模的数据而言,在单一的设备上存储和管理显然是不合适的,甚至是基本不可能的。
因此这样就出现了大数据怎样存储和如何管理的问题:
(1)容量问题。
大容量通常可达到PB级以上的数据规模,因此大规模数据存储系统要有相应等级容量的扩展能力。
与此同时,存储系统可扩展性要简单易用,即仅需通过增加相应的模块或磁盘柜来增大容量,甚至不需要停机、停服务。
(2)延迟问题。
由于大数据一般是分布式存储的,因而还存在实时性问题。
特别是些网上交易或金融类相关的,具有较高的实时性要求。
(3)安全问题。
例如金融方面的数据、医疗信息资料以及政府情报信息等都有相应的安全标准和保密性需求。
(4)成本问题。
对于使用大数据环境的单位,既要提高系统中每台机器设备的使用效率,同时控制成本也是较为关键的问题。
(5)数据的积累。
较多的数据需要保存几年,甚至很多年的时间,因为任何数据都是历史记录的一部分,而且以后的数据分析绝大部分是基于时间段进行的。
比如医疗信息常常是为了保证患者的生命安全,而财务方面的信息通常要保存七年等。
(6)灵活性。
大数据存储系统的基础设施规模通常都很大,因此必须经过仔细设计,才能保证存储系统的灵活性,使其能够随着应用分析软件一起扩容及扩展。
总之,满足上述要求的存储系统,系统要必须可以提供可扩展、高性能、跨平台、安全可靠的数据共享能力。
因此传统的存储管理系统已经很难满足这种大规模数据、密集型应用的错综复杂和性能要求。
所以我们要通过调研、研究、开发、设计专门的存储管理系统来解决这些大规模数据的存储和管理。
1.2国内外研究现状
目前,国外在大数据的存储和管理等方面处于比较领先的地位。
在商业应用方面上,雅虎公司通过使用超过数千个节点来构成大规模的Hadoop集群架构,从而来为用户提供互联网信息检索方面的服务,此外这还为科学研究提供了较好的平台和相关实验的条件。
亚马逊的搜索服务也是通过Hadoop集群框架来完成相关商品搜索的。
而Facebook公司的所有数据存储全都是由Hadoop集群框架组成,进而由Hadoop集群来对该公司所有数据的分析和计算,包括相关数据挖掘和访问日志分析等操作。
Google公司则开发了Bigtable,它是非关系的数据库,是一个分布式的、稀疏的、支持持久化存储数据的多个维度进行排序的,它能稳定的处理PB级别的数据,并且可以部署到超过千台机器集群上,具有较好的高可易用性、高可扩展性、高稳定性能等。
尽管Google公司的产品涉及多方面,而且各有不同的功能需求,但是却仍然能在Google公司的多个产品上得到广泛的使用,是业内的典范之一。
国内在大规模数据存储和管理领域应用的时间有限,同时对Hadoop的研究使用还处在较低阶段。
但是随着大数据的兴起,目前在国内较多大企业逐步开始大量使用Hadoop集群框架来实现对大规模数据的存储、计算和管理等系统操作。
在应用商业方面,XX公司每星期超过五百TB的大规模数据,有着庞大的网页数据需要计算和挖掘,同时有相关大量数据的计算和分析,而这些全部都是用Hadoop集来处理完成;阿里巴巴公司也开发了基于Hadoop的阿里云计算平台,它被内部广泛用来存储和技术公司的电子商务业务上由用户交易产生的大规模数据。
在学术方面,国内也有较多的科研机构和学校着手研究Hadoop大规模数据存储和应用等方面的系统,清华大学、中科院等单位对Hadoop也是进行系列的深入研究,这些工作主要是集中在对Hadoop架构、任务调度、数据存储、系统安全、资源管理
等领域。
1.3论文结构
本文共分为5章,各章主要内容介绍如下:
第一章绪论,介绍云计算-Hadoop出现的背景和意义、现状分析以及论文结构。
第二章关键技术分析:
Hadoop、HDFS、Mapreduce
第三章实验环境的构建:
VMwareWorkstation12Pro、Ubuntu15.10、Hadoop2.72、Jdk1.8_77
第四章Hadoop中HDFS的应用:
第五章总结与展望:
2相关键技术分析
2.1Hadoop介绍
Hadoop是由Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。
Hadoop的主要优点有:
扩容能力强、成本低廉、效率高、高可靠性,免费开源及良好的可移植性。
Hadoop集群是典型的Master/SLaver结构,NameNode与JobTracker为MaSter,DataNodes与TaskTrackers为Slaver。
NameNode与DataNode负责完成HDFS的工作,JobTarcker与TaskTracers负责完成MapReduce的工作。
ApacheHadoop项目包括多个子项目,但主要是由Hadoop分布式文件系统HDFS和计算模型MapReduce两个主要的子项目组成。
2.2Hadoop分布式文件系统HDFS
HDFS处于Hadoop软件框架的最底层,主要存储集群中所有存储结点上的文件,具有高传输、高容错性等的特点,并支持以流的形式访问文件系统中的数据,能够实现海量数据的管理。
Hadoop集群主要有管理者(NameNode)和工作者(DataNode)两类节点组成,并且分别以NameNode和DataNode模式运行。
NameNode主要负责管理文件系统命名空间和控制外部客户机的访问,DataNode响应来自HDFS客户机读写请求和NameNode的创建、删除和复制块的命令。
在Hadoop的集群中,NameNode是唯一的,但却有着大量的DataNode节点,当客户机向NameNode节点发送请求时,都会将DataNode节点中的信息返回给客户机。
而实际上的I/O事务并不经过NameNode,NameNode只是将文件的操作映射给DataNode。
HDFS中的文件被分成很多的块,每个文件块每个文件块都会被复制多份,分别放到不同的DataNode节点中。
最常用的策略是采用3个复制块:
2个数据块复制存储在同一机架的不同节点,1个复制块存储在另一机架的某个节点。
DataNode节点定时给NameNode节点发送心跳信息,NameNode根据这些信息确DataNode节点中的文件块是否正常。
如果出现异常NameNode就会重新复制进行修复,保证了数据的安全性。
2.2.1HDFS相关概念
HDFS:
HDFS(HadoopDistributedFileSystem)是一种专门为MapReduce这类框架下的大规模分布式数据处理而设计的文件系统。
可以把一个大数据集(100TB)在HDFS中存储为单个文件,大多数其他的文件系统无力实现这一点。
数据块(block)
HDFS(HadoopDistributedFileSystem)默认的最基本的存储单位是64M的数据块。
和普通文件相同的是,HDFS文件系统中的数据是被分成64M一块的数据块存储的。
不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。
元数据节点(NameNode),从元数据节点(SecondaryNameNode)和数据节点(DataNode)
元数据节点(NameNode)用来管理文件系统的命名空间
其将所有文件和文件夹的元数据保存在一个文件系统树当中。
这些信息也会在硬盘上保存成一下文件:
命名空间镜像(namespaceimage)以及修改日志(editlog)。
其还保存了一个文件包括哪些数据块,分布在哪些数据节点上。
然而这些信息并不存储在硬盘上,而是在系统启动的时候从数据节点收集而成的。
从元数据节点(secondaryNameNode)
从元数据节点并不是元数据节点出现问题的时候的备用节点,它和元数据节点负责不同的事情。
其主要功能就是周期性将元数据节点命名空间的镜像文件和修改日志文件合并,以防日志文件过大。
合并过后的命名空间镜像文件也在从元数据节点保存了一份,以防元数据节点失败的时候,可以恢复。
数据节点(DataNode)是文件系统中真正存储数据的地方。
客户端(client)或者元数据信息(NameNode)可以向数据节点请求写入或者读出数据块。
其周期性的向元数据节点回报其存储的数据块信息。
2.3本章小结
本章主要介绍Hadoop的相关概念、作用、优点及其关键技术,以及它的一个关键的技术分布式文件系统—HDFS的简单介绍。
3实验环境构建
包括:
运行环境、VMware的安装、基于Ubuntu15.10的Hadoop集群安装与配置
3.1运行环境
运行环境:
处理器:
Intel(R)Core(TM)i7-4710MQCPU@2.50GHz3.50GHz1155PGA32nmL132KBL232KBL36144KB
已安装内存(RAM):
8.00GBLPDDR3LSDRAM1600MHz
TOSHIBASSD0128G4096KBHGST1.0TB7200rpmSATA3
Windows版本:
Windows10专业版
MMXSSESSE2SSE3SSSE3EM64TAVXSSE4.1SSE4.2BMIvT-xAESFMA3AVX2
nVIDIAGeForceGTX850M2GBGDDR3
3.2VMwareWorkstation12Pro的安装
3.2.1准备条件
安装包:
vmwareworkstationrj12.0.0.64202.1442972430.exe
密钥生成器:
VM12密钥生成器
3.2.2安装截图
运行密钥生成器生成密钥:
完成安装;
3.3基于Ubuntu15.10的Hadoop集群安装与配置
Hadoop部署前提仅是完成修改机器名、添加域名映射、关闭防火墙和安装JDK这四个操作,其他的都不需要。
对于ssh实际上是完全不相关的操作或设置。
SSH实际的作用只是给sbin/start-yarn.sh等几个start-x.sh与stop-x.sh脚本使用,Hadoop本身是Java写成的,而Java代码本身并不依赖与ssh,也完全不应该依赖于ssh,只是运维时为了方便启动或关闭整个集群,才需打通ssh,所以为了以后维护的方便,ssh是有必要装的。
在虚拟机里面安装Ubuntu15.10的过程很简单这里就不一一介绍了!
下面将直接从安装好的Ubuntu15.10里边开始安装JDK:
1、Jdk安装:
Hadoop是用Java编写的程序,Hadoop的编译及MapReduce的运行都需要JDK,因此在安装Hadoop之前,必须安装JDK1.6或更高版本。
2、SSH免密登录安装设置:
Hadoop需要通过ssh(安全外壳协议)远程无密码登录,来启动Slave列表中各台机器的守护进程,因此ssh也是必须安装的。
3、Hadoop完全分布式集群的安装配置和启动验证。
3.3.1安装JDK
刚刚安装好的Ubuntu系统默认是不开启root用户登录的,在这里开启root登录,只需要修改50-ubuntu.conf即可,命令如下
添加内容如下:
终端
配置完成后开启root账号命令如下:
sudopasswdroot
根据提示输入root账号密码。
重启ubuntu,登录窗口会有“登录”选项,这时候我们就可以通过root登录了。
修改第一台主机名为master,它作为控制节点
然后保存退出!
重启!
选择root登录。
使用apt-getinstallvim命令安装vim;
将下载好的jdk-8u77-linux-x64.tar.gz解压开放到自己定的一个文件夹下面笔者这里将它放在了/opt/java/目录下,下一步配置JDK的环境变量,使用vim/etc/environment,添加/opt/java/jdk1.8.0_77/bin:
在/etc/profile文件末尾添加java用户环境变量如下
输入source/etc/environment使环境变量生效,重启计算机!
3.3.2安装SSH免密登录
使用apt-getinstallssh
命令安装ssh
如果有以下两个进程,说明ssh安装成功!
安装成功后,需要更改sshd_config文件
命令:
vim/etc/ssh/sshd_config
修改为如下图内容:
免密登录必须是在不同的Ubuntu系统内安装。
从这里开始把安装好的Ubuntu15.10系统复制两份分别作为slaver1和slaver2节点。
生成密钥并配置SSH免密码登录本机:
执行以下命令,生成密钥对,并把公钥文件写入授权文件中
生成密钥对及授权文件,公钥在/root/.ssh/下
然后将授权文件复制到slaver1主机中,输入命令:
scpauthorized_keysslaver1:
~/.ssh
然后在slave1机器中,使用同样命令生成密钥对,将公钥写入授权文件中。
让后将slaver1主机中的授权文件复制到slaver2中,使用同样命令生成密钥对,将公钥写入授权文件中。
这样就完成了同一个授权文件拥有三个公钥。
最后将此时的授权文件分别复制到master主机、slaver1主机中,这样就完成了,ssh免密登录验证工作。
为了防止防火墙禁止一些端口号,三台机器应使用
关闭防火墙命令:
ufwdisable
重启三台机器,防火墙关闭命令才能生效,重启后后查看是否可以从master主机免密码登录slave1/slaver2
3.3.3进行Hadoop集群完全分布式的安装配置
从官网上下载中的最新的Hadoop安装包:
http:
//hadoop.apache.org/releases.html
解压到/root目录下需要配置以下文件中某些文件,我们只需配置一份完整的Hadoop,直接将配置好的复制到另外两台机器即可!
配置文件1:
hadoop-env.sh
修改如下:
注意:
JAVA_HOME的值是上面安装JDK的路径,要根据安装的路径而定。
配置文件2:
yarn-env.sh
修改JAVA_HOME的值和Hadoop-env.sh的一样
配置文件3:
slaves,这个文件中保存的是所有的数据节点
配置文件4:
core-site.xml
添加内容如下:
配置文件5:
hdfs-site.xml
配置文件6:
mapred-site.xml
将mapred-site.xml.template复制为mapred-site.xml
将mapred-site.xml修改如下:
配置文件7:
yarn-site.xml
至此Hadoop配置文件已全部配置完成。
接着把配置好的Hadoop通过ssh复制到slaver1和slaver2中
例如:
scp–r/root/Hadoop-2.7.2slaver1:
/root
scp–r/root/Hadoop-2.7.2slaver2:
/root
为方便用户和系统管理使用hadoop、hdfs相关命令,需要在/etc/environment配置系统环境变量,使用命令:
vim/etc/environment
配置内容为hadoop目录下的bin、sbin路径,具体如下
添加完后执行生效命令:
source/etc/environment
下面要做的就是启动验证,建议在验证前,把以上三台机器重启,使其相关配置生效。
3.4测试是否安装成功
首先,在主节点master上格式化主节点命名空间:
在master控制节点上启动hdfs
使用Jps命令master有如下进程,说明ok
使用jps命令slaver1、slaver2有如下进程,说明ok
使用以上命令,当你看到如下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 更新 基于 Hadoop 分布式 文件系统 研究
![提示](https://static.bdocx.com/images/bang_tan.gif)