版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘要iAbstractii绪论1第一章 云计算的介绍11.1云计算的发展概况21.2课题研究意义及研究内容2课题的研究意义2课题的研究内容5第二章 云计算系统的研究62.1云计算的服务层次62.2云计算系统的结构和原理7云计算的体系结构7云计算系统的原理9第三章 开发环境的概述103.1典型云计算平台103.2 Hadoop架构的介绍103.2.1 Hadoop的概述103.2.2 MapReduce分布式处理技术的介绍133.2.3 MapReduce 架构143.2.4 HDFS简介163.2.5 HDFS体系结构18第四章Hadoop云平台搭建204.1 Hadoop平台搭建所用到的
2、安装包204.2平台的搭建204.2.3 Windows下系统环境变量的配置274.2.4 安装和配置SSHD服务294.2.5 启动ssh服务314.3 Eclipse Hadoop插件开发配置364.3.1 Eclipse插件的介绍364.3.2 具体步骤39第五章 云文件系统的实现405.1云文件系统实现前的技术准备405.2文件系统服务器端代码415.3云脑系统的登录实现425.3.1 登陆实现代码425.4云文件夹的制作44工具菜单栏44快捷操作栏465.4.3 文件栏485.5 云文件系统的功能能实现48、云文件系统中的前进和后退实现485.5.2 新建文件夹的实现48文件权限的设
3、置50第六章 总结51参考文献52谢辞54云计算文件系统的实现摘要 云计算是一种基于互联网提供服务的业务模式,它能够实现IT基础设施的资源化和服务化,用户可以按需进行定制和付费,从而彻底改变了传统IT基础设施的提供和支付方式,有效解决了无限增长的海量信息存储和计算问题。文章给出了云计算分布式文件系统的主要类型,分析了Google文件系统(GFS)和Hadoop分布式文件系统(HDFS)的演进情况。最后,详细描述了分布式文件系统的工作原理。本文主要完成云计算文件系统的实现,主要的实现方法是通过Hadoop平台及Eclipce开发环境来实现文件系统的各种功能及文件系统的创建和撤销。给用户一个类似W
4、indows中我的电脑一样的用户体验,可以根据用户意愿实现文件目录及文件进行管理。关键字:云计算;Hadoop;HDFS;文件系统 Cloud computing file system implementationAbstract Cloud computing is an internet-based service business model, IT can realize the utilization of IT infrastructure and service, the user can according to need to customize and paid, whi
5、ch completely changed the traditional IT infrastructure to provide and pay way, effectively solve the mass information storage and computational problems of unlimited growth. Article gives the main types of cloud computing distributed file system, analyzes the Google file system (GFS) and the evolut
6、ion of the Hadoop distributed file system (HDFS). Finally, describes in detail the working principle of the distributed file system.This paper mainly completed the implementation of cloud computing file system, the realization of the main way is through the Hadoop platform and Eclipce development en
7、vironment to implement the functions of file system and file system creation and revoked. Give users a similar to Windows in my computer as user experience, can according to user's intention to file directory and file management.Keywords: cloud computing; Hadoop;HDFS;the file system 绪 论云计算是基于互联网
8、将规模化资源池的计算、存储、开发平台和软件能力提供给用户,实现自动化、低成本、快速提供和灵活伸缩的IT服务。云计算是利用将没有用到的资源整合起来形成一个大型的集群,提高资源利用率。从云计算的角度看软硬件都是服务,云计算将催生出新的增长模式,如云软件托管中心、云软件销售等。云计算将使技术人员和使用者都面临着一个巨大的变革。云计算能够给用户提供可靠的、自定义的、最大化资源利用的服务,是一种崭新的分布式计算模式。同时,云计算和其他技术及理论的有机结合,也是解决理论研究和实际应用的重要途径。第1章 云计算的介绍1.1云计算的发展概况随着电子计算机技术的的发展,人们开始适应的单机工作模式将随着云计算的出
9、现面临着巨大的变革。人们将从习惯于购买软件和硬件变为软件和硬件都将隐没于云端,用户在这种技术下面所对的将全部是服务。所以它不仅仅是改变了计算机的使用方法,它也将改变人们的日常生活。1.2课题研究意义及研究内容课题的研究意义随着电子计算机技术的的发展,人们开始适应的单机工作模式将随着云计算的出现面临着巨大的变革。人们将随着习惯于购买软件和硬件变为软件和硬件都将隐没于云端,用户在这种技术下面所对的将全部是服务。所以它不仅仅是改变了计算机的使用法方,它也将改变人们的日常生活。 企业中4/5的数据是非结构化数据,这些数据每年按指数增长3/5。非结构化数据,顾名思义,是存储在文件系统的信息,而不是数据库
10、。据报道指出:平均只有1%-5%的数据是结构化的数据。如今,这种迅猛增长的从不使用的数据在企业里消耗着复杂而昂贵的一级存储的存储容量。如何能够更好的保留那些在全球范围内都具有潜在价值的不同类型的文件,而不会因为处理它们却干扰日常的工作?虽然可以采购更多的就地存储设备,但这些存储设备总会有局限性的。云存储技术已经获得越来越多的IT公司的青睐。实现在云端的文件的共享是云计算的一种应用,是将用户计算机上的文件分块上传到不同的存储节点,然后可以使其他地区的用户可以共享到你上传的文件。总的来说,本文主要讲述了以下几方面的意义:1)随着计算机技术的飞速发展,数据量也随之变得越来越庞大,怎么对大量数据进行有
11、效管理已经成为企业的关键问题。而如果利用云存储技术解决这个问题,会对企业的经济效益有很大的提高。2)对HDFS的研究方法可以推广到别的集群存储技术研究上,为下一步研究打好基础。3)HDFS可以很轻松的运行在普通的PC集群上,这就会降低了实施运行分布式系统的成本。4)Hadoop平台还没有被广泛地推广应用于各行各业,但是当基于HDFS的云存储应用研究获得一定的成效时,就会对Hadoop技术起到很好的推广作用。云计算是将软硬件隐藏在云端,给用户提供便利的服务,现在来看一下云计算的优缺点。(1)云计算的优点:1)降低电脑用户成本 因为云计算的开发平台对PC机几乎没有什么特殊要求,因此在进行云计算开发
12、时几乎不需要高买一些高端的计算机来满足设计的必要,这就大大的降低了用户电脑成本。2)改善计算机的性能 因为云集算就是一种用户提出请求而不需要在自己的PC机上运行就能得到结果的技术,因此用户不需要在自己的PC机上安装大量所需的软件及高的硬件配置从而也就是不用消耗大量用户PC机的资源所以用户计算机的性能奖的到大的改善。 3)降低IT基础设施投资 一些组织的IT部门也可以通过使用云计算而降低成本,用云计算的计算和存储能力代替组织能的资源开销,从而企业可以减少IT本门的投资,而对于一些需要处理计算量很大的企业我们也不需要购买大量的和高端的软硬件来处理大量的数据,这也可以通过云计算狠容易的完成。 4)减
13、少软硬件的维护问题 因为用户所需要的服务都是在云端完成,因此不再用担心软硬件的维护问题,所用到的软硬件几乎都是在云计算管理者那里,所以只要维护好自己用的PC机的软硬件就好了。5)减少软件开发 由于一些成本的降低,很多云计算的软件服务费用都会降低,所以这将减少软件的开发。6)及时的软件更新 由于大部分软件都隐藏在云端所以用户几乎不在用对软件的更新,这些将在云计算管理者那里由管理人员更新,用户将不用再花费高额的费用或时间进行软件的 更新。7)计算能力的增加 这是非常明显的,应为当用户和云端连接起来后几乎可以用整个云的计算能力。8)无限的存储能力 因为云计算就是非本地的计算机资源的集合,它是将大量的
14、计算机没有用到的资源集合起来 ,所以它有无限的存储能力。9) 增加数据的安全性。因为在云计算系统里一台计算机的崩溃不会影响到整个的系统,将不会影响我们存储在云端的数据,而如果没有云的存储我们自己的计算机的崩溃将可能使我们的数据丢失,因此使用云计算将很高的增加数据的安全性。10) 数据的获取将无地点限制 云计算及将大量的非本地的计算机集合成集群,因此只要我们有一台能连接到网络的计算机就可以在这个集群里索取任何地点的数据。(2)云计算的缺点:1)要求持续的网络连接 用户要通过连接网络来应用程序和一些文档,而不连接网络几乎不能做这方面的任何事情,因此要能充分的利用云计算就需要持续的连接网络。2)低网
15、络环境下不能很好工作 几乎与你计算的各种应用都需要大量的带宽来下载,因此在底网络连接下就不能很好的进行云计算。3)反应慢 因为数据在客户端和云端要不断的进行传输,因此应用程序的反应都要比在桌面的应用程序反应要慢。4)功能有限制 就现在的云计算功能和桌面的应用程序比较他的功能还是有限制的,较桌面的应用程序功能缩水了很多。5)云不能保证数据有丢失 虽然在云端存储的数据较个人计算机数据的安全性能要高,但是它也有不完善的地方,当我们的数据不知道因为什么原因丢失时,云计算相应的持有者并不负有任何责任。6)数据安全性 由于云上的资源是公共获取的,所以当我们把数据存储在云端时,存在数据被泄露出去的危险。课题
16、的研究内容本文主要研究基于云计算文件系统的实现,本文首先介绍了云计算的定义及其发展历史,从云计算的一路发展,揭示了云计算的优点及缺点。第二本文介绍了云计算系统的体系结构及工作原理,第三本文主要做关于文件系统的实现,从而介绍了实现文件系统的云平台,第四就是搭建这里所需要用到的平台及环境,最后通过平台及环境实现文件系统。第2章 云计算系统的研究2.1云计算的服务层次 与传统的PC系统相对应,云计算系统可以在硬件资源、平台到和应用程序等各个层次为用户提供各种级别的服务,即业界普遍认同的经典云计算服务体系-基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。这些服务的交互可以与
17、云计算实现模型的不同层次对应:IAAS服务主要依托于云计算基础构架层,向外提供基础资源服务,PAAS服务主要依托于云计算应用开发和执行环境,向外提供应用开发与运行托管服务,SAAS服务主要通过云计算应用软件层向外提供应用软件服务。其服务体系如图2.1 : 云计算基础架构 SaaS PaaS IaaS图 2.1 经典云计算服务体系 在云计算中,根据其服务集合提供的不同服务类型,把云计算的整个服务体系划分为4个层次分别为应用层、平台层、虚拟化层及基础设施层,其中每一层都对应了一个子服务集合,如下为云计算服务层次。图 2.2 云计算服务体系结构云计算的服务层次结构是根据服务集合来划分的,这与计算机网
18、络体系结构中的层次划分有所不同。在计算机网络体系结构中每个层次都会实现一定的功能,层与层之间都会有一定的联系。但是云计算体系结构中的层次是可以分割的,即某一层次可以独立的完成一个用户请求而不用其他的层次为它提供一些必要的支持和服务。2.2云计算系统的结构和原理云计算的体系结构 云计算平台是一个十分强大的云网络,连接了很多的并发网络计算和服务,可以利用虚拟化技术增强每一个服务器的能力,并且将各自的资源通过云计算平台整合起来,提供超级计算的能力和存储能力。通用的云计算体系结构如下。云用户端管理系统部署工具服务器集群服务目录资源监控 图 2.3 云计算体系结构这里的云用户端指向云端提出请求的交互界面
19、,提供可以让用户使用云的入口,云计算的“大门”为浏览器,因此用户可以通过web浏览器进行注册,登录、制定服务、配置和管理用户。打开应用的实例与本地桌面系统一样。管理系统和部署工具就是提供管理和服务,能够管理云用户及对用户授权、登陆、认证等进行管理,并且可以管理可用计算资源,接受用户的请求,根据请求转发到相应的应用程序,调动资源和应用,动态的部署、回收、配置资源。服务目录是云用户在取得相应的权限后可以选择或制定服务,也可以对已有的服务进行取消定制的操作,在云用户端生成相应列表或图标的形式用以展现相关的服务。监控是计算和监控云计算系统的资源的使用情况,当发生某事件是可以做出充分的反应,完成节点资源
20、监控、负载均衡配置和同步配置,确保资源能够顺利的分配给需要的用户。服务器集群式虚拟的或物理的服务器,由管理系统管理,负责高并发量用户请求处理、用户web应用服务、大运算量计算处理,云数据存储是采用相应数据的数据切割算法采用并行方式上传下载大容量数据。云计算系统的原理云计算是对分布式处理、并行处理和网格计算及分布式数据库的改进,它基于解决大型问题的并行计算和网格计算,将计算资源作为可计量的服务为用户提供公用计算,在互联网宽带技术和虚拟化技术的高速发展后产生出云计算。云计算的基本原理为利用远程的或非本地的服务器的分布式计算为互联网的用户提供服务。这可以使用户将资源切换到有需求的应用那里,根据需求访
21、问计算机和存储系统。云计算可以把普通服务器或pc机连接起来获得超级计算机及计算机的计算和存储等功能,而且成本很低。云计算实现了按需计算,提高了计算机软硬件的利用效率。 云计算是一种全新的基于互联网的超级计算机模式和理念,实现云计算需要很多种不同技术的结合,并且需要使用软件来实现将硬件资源虚拟化的调度及管理,形成一个大的虚拟化资源池,把存储与移动设备、个人计算机和其他设备设备上的处理器资源集中在一起协同工作。按照最大化理解云计算就是把计算机的资源都放到互联网上,互联网就是与计算时代的云,其中计算资源包括计算机的软件资源和硬件资源。第3章 开发环境的概述3.1典型云计算平台因为云计算的快速发展及其
22、功能进一步的体现,所以云计算的研究吸引不同领域的巨头,因此对云计算的理论及实现架构有所不同。如亚马逊利用虚拟化的技术提供云计算服务,退出S3提供可靠、可扩展的及快速的网络存储设备服务,而弹性可扩展的云计算服务器EC2则采用Xen虚拟化的技术,实现一个虚拟化的执行环境,可以让用户通过互联网来执行自己的程序。IBM将包括Xen和PowerVM的虚拟的Linux操作系统景象与Hadoop并行工作负载调度。现在的云计算通过对资源层、应用层的虚拟化和平台层以及对物理上的分布式集成,使庞大的计算机资源整合在一起。更为突出的是,云计算不仅是资源的简单汇聚,他为我们提供了一种管理机制,让整个集群作为一种资源池
23、对外提供服务,并对开发者透明的获取资源和使用的权限。3.2 Hadoop架构的介绍 在云计算技术中,编程平台的搭建是十分重要的一个环节,而在各种编程平台中hadoop技术是应用最为广泛的开源编程平台3.2.1 Hadoop的概述在Google发表MapReduce之后,04年开源社群用java语言搭建了一套Hadoop框架,用来实现MapReduce算法,用其能把应用程序分割成很多很小的工作单元,每个单元能在任何集群的节点上执行或重复执行。Hadoop是一个分布式存储与计算平台,其适合大数据,对于小数据而言,Hadoop处理效果反而不佳。Hadoop还提供了一种分布式文件系统GFS,是一个可扩
24、展的、结构化的、具备日志分布式文件系统,支持分布式大数据量的读写操作,其容错性很强。Hadoop框架具有高容错性和对数据读写的高吞吐率,可以自动的处理失败节点,下图为hadoop的架构云计算架构 Hadoop BigTable(分布式数据库)MapReduce API(Map,Reduce)GFS(Goole分布式文件系统)图 3.1 Hadoop架构在Hadoop架构中MapReduce API 提供reduce和map的处理、BigTable分布式数据库的数据存储和GFS分布式文件系统。使用Hadoop架构可以非常轻松的和方便的完成处理海量数据的分布式并行程序,并且可以运行到大规模集群上。
25、基于Hadoop架构平台可以给出云计算的执行过程如下图所示。MapReduce API MasterWorker1 worker2.workern选择执行Map程序的Worker机器分配数据块到执行map的机器执行将map结果存到本机磁盘选择执行Reduce程序的worker机器结合GFS和BigTable读取远程Map,混合、汇聚、排序,执行Reduce图 3.2 云计算的执行过程Hadoop作为应用最广泛的云计算编程环境所以它有着大量的优点: 1)可扩展性:不管是计算机的扩展性还是存储的扩展性都是hadoop设计的基础对hadoop的设计十分重要,hadoop的扩展性十分的简单,不用修改已
26、有的任何结构。 2)Hadoop很可靠:mapreduce的监控和分布式文件系统备份恢复机制使hadoop有了很高的可靠性。 3)对硬件要求低:hadoop架构能在任何计算机上执行,对计算机没有什么特殊的要求。Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务发送(Map)到多个节点上,之后再以单个数据集的形式加载(Reduce
27、)到数据仓库里。 Hadoop 的最常见用法之一是 Web 搜索。虽然它不是惟一的软件框架应用程序,但作为一个并行数据处理引擎,它的表现非常突出。Hadoop 最有趣的方面之一是 Map and Reduce 流程,它受到Google开发的启发。这个流程称为创建索引,它将 Web爬行器检索到的文本 Web 页面作为输入,并且将这些页面上的单词的频率报告作为结果。然后可以在整个 Web 搜索过程中使用这个结果从已定义的搜索参数中识别内容。3.2.2 MapReduce分布式处理技术的介绍 MapReduce是Goole开发的c+、java、python的编程工具,用于大规模的数据集的并行运算,同
28、时也是云计算的核心技术,一种分布式运算技术,也是简化的分布式编程模式,适合处理大量的数据的分布式运算,用于解决问题的程序开发模式,同时也是开发人员解决问题的方法。 MapReduce模式的运行方式是将问题拆分为Map映射和Rduce化简的方法,先通过映射程序将数据分割成不相关的区块,调度非大量计算机处理达到分布式运算的效果,然后通过化简程序将结果整合起来,最后输出开发者需要的结果。MapReduce软件实现是指定一个映射函数,把键值对(key/value)映射成新的键值对,并形成一系列的中间形式的key/value对,在把他们传给化简函数,把有相同中间形式的key及value合并在一起。这里的
29、map及reduce具有一定的关联性,如表3.1所示。 表 3.1 map、reduce 关联表函数输入输出 Map Reduce (K1,l1) (k2,list(v2) List(k2,v2) List(v2)其中v1、v2即可以使简单数据,也可是一组数据,对应不同的映射函数规则。在map过程中将数据并行,就是把数据用映射函数分开,而redduce是把分开后处理过的分开数据用化简函数的规则在整合在一起,其实就是map函数是将数据分开的过程,而reduce则是对应的整合数据。使用mapreduce,即使编程人员不会分布式并行编程的情况下,也同样可以将自己的程序运行在分布式系统上。Mapred
30、uce的应用也十分广泛包括简单的计算任务、集群计算环境和海量输入数据等。3.2.3 MapReduce 架构MapReduce主要用于处理产生大数据集的相关实现。用户指定一个映射函数来处理一个key/value对,从而形成一些列中间形式的key/value对。然后再指定一个化简函数合并所有的具有相同中间形式的key的value合并在一起。下面将通过举例来反应mapreduce的架构形式。Mapreduce的主从结构:主节点,只有一个: JobTracker 其主要的功能负责接收客户提交的计算任务、把计算任务分配给TaskTrackers执行、监控TaskTracker的执行情况、 从节点,有很
31、多个:TaskTrackers 它的主要功能是执行JobTracker分配的计算任务。下面为举例查看mapreduce架构报表系统,数据库和数据仓库会设计的比较麻烦,送一个指令给数据库。报表内存可能小于数据库数据,不能一次性加载,可以采用分布读取,但十分慢,报表系统负责计算的性能远远低于数据量本身。数据量本身远远超过了计算能力,只能用时间换空间。怎么改进?如果都跑相同的报表系统,跑多台,上面做累加,但是数据库这块分成三份,北京一个库,河北一个库,可以报表1系统跑北京数据,报表系统2跑天津数据,这样每个报表处理的数据量处理为原来的一部分。再找一台服务器进行汇总,汇总只是加上,逻辑是不一样的。如果
32、要处理海量数据,从目前硬件的局限,只能是运行很多的服务器来处理海量数据,运行少量的服务器处理中间结果。把逻辑拆分不同的系统中。 MapReduce :汇总和报表系统。报表叫map 最后的汇总叫reduce .让一个节点关系管理这些东西,Map 和reduce在管理上看没有什么差别,由他分配谁是什么角色。其mapreduce架构图形如下。报表系统一Map这一部分是mapreduce汇总系统reduce数据库是分布式的报表系统2管理节点报表系统3客户 图 3.3 报表mapreduce架构图3.2.4 HDFS简介HDFS是Hadoop实现的一个分布式文件系统, HDFS具有高容错性的特点,为了保
33、证数据的一致性,一般都采用一次写入,多次读取的方式。并且设计用来部署在低廉的(low-cost)硬件设备上,它有单一的文本空间,而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 其中HDFS他把数据分成很多很小的快,以64M的大小为一个快,块是磁盘上最小单位。每个数据块(block)在很多个从节点存有数据,客户端是通过主节点获取数据块的位置,然后访问从节点获取数据。(1)与普通文件系统的
34、比较 分布式文件系统较普通的文件系统而言,其相同的是分布式文件系统中的文件也是被分成以大小为64MB为一块的数据块存储的,而与普通的文件系统不同之处在于,当一个文件的大小不足64mb时,则这个文件将不占用整个数据块。 (2)主从结构 首先介绍主节点和从节点。主节点:只有一个Namenode, 其主要的功能责任是接受用户的操作请求、维护文件系统的目录结构,便于对文件进行分类管理及管理文件与Block之间关系,Block与Datanode之间关系。从节点:有很多个Datanode,它的主要功能职责是存储文件,当文件被分成很多数据块时,将其存放在磁盘上。下面我们通过一个主从节点的例子在了解一下主从结
35、构。 主从结构:须有地方存储服务器和磁盘的映射关系。QQ和具体数据的对应信息。又叫做元数据信息。检索数据更快的话,先访问元数据。所有的节点信息,包括容量信息(不断变化,需要通过节点和元数据不断可以通信,经常通信可以称为心跳机制,节点不停向元数据发送信息,元数据的职责已经改变,管理各个节点的资源情况)都在元数据节点上注册,元数据,索引机制,数据量越大,价值越能体现出来。 引出角色划分:继续增加节点的时候会比较麻烦。节点上面跑程序,不停的发送信息。节点上面跑服务,不会停止。调用元数据函数,传入形参,我节点的信息。元数据职责,处理每个节点的信息。客户可以和节点通信,也可以和元数据通信,也可以元数据和
36、节点通信。元数据就是Namenode,主节点。 下面通过一个QQ例子的图来了解一下元数据维护文件和快的关系,以及快与所在节点的关系。元数据(管理节点)心跳机制节点 磁盘a节点 磁盘bQQ服务器节点 磁盘c 图 3.5 主从结构图 (3)文件系统的名字空间 传统的文件组织体系结构是被HDFS所支持的,程序或用户可以创建目录,并在其中存储自己想要存储的文件。名字空间结构与大多数文件系统是十分相似的。用户可以对文件进行删除、创建或者让文件从一个目录移到另外一个目录以及对一个文件进行重命名等操作。就现在的DHFS而言还不能实现访问权限控制及用户配置,也不支持软硬连接。然而,就现在的DHFS这些性能都不
37、会被影响到。3.2.5 HDFS体系结构在HDFS中,是由给定的名字节点NameNode来管理一些文件系统的名字空间操作的,例如打开和关闭及重命名目录或文件。名字节点NameNode会将block映射到数据节点DataNode上,并处理来自HDFS客户端的读或写请求。DataNode数据节点还根据NameNode名字节点指令删除、创建及复制数据块。HDFS体系架构,如下图所示。客户端NamenodeMetadata opsRead datanodes客户端写blocks应用Block opsdatanodes存储服务器存储服务器图 3.6 DHFS 体系结构从DHFS体系结构图可以看出,一个集
38、群包含一个主节点,使系统机构得到了很大的简化。主节点作为系统元数据的存储及仲裁者,使得这种设计形成了一个简化模型用来管理每个名称空间的数据分布,使得用户数据不会流经名字节点。(1)主节点和从节点之间的关系 主节点和从节点是一些软件组件,主要目的是用一种解耦和方式跨越多个异构操作系统在普通的计算机上运行。HDFS是由Java编程语言编写的,因此,HDFS能在任何支持Java编程语言的机器上运行。在一个集群里拥有一台专用机器,用来运行一个主节点,可能还有一个从节点,其他集群中的机器都运行一个从节点。HDFS典型部署是在专门的机器上运行主节点,集群中的其他机从节点;也可以在运行主节点的机器上同时运行
39、从节点,也可以一台机器上运行多个从节点。一个集群只能一个主节点。主节点使用事物日志(editLog)用来记录HDFS元数据的变化,同时也使用使用映射文件(FsImage)存储文件系统的命名空间,其中包含文件的属性信息等。映射文件和事物日志都存储在主节点的本地文件系统中。主节点启动时,从一存储的了映射文件和事物日志的盘里读取映射文件和事物日志,使事物日志的事物都可以应用到内存中的映射文件上,然后将新的元数据移动到本地磁盘新的映射文件中,这样就可以截去旧的事物日志,这个过程通常被称为检查点(Checkpoint)。HDFS还设有Secondary NameNode节点,它辅助主节点处理事物日志和映
40、射文件。主节点启动的时候就合并映射文件和事物日志,而Secondary NameNode周期性的从主节点复制映射文件和事物日志到临时目录,合并成为新的映射文件后再重新上传到主节点,主节点及时更新映射文件和清理事物日志,使事物日志大小始终控制在可配置的限度内。(2)NameNode管理对文件系统名字空间的更改和维护NameNode维护系统的名字空间,它将记录每一次的名字空间内的任何改动或名字空间本身属性的改变。我们知道HDFS有很强的容错性,所以HDFS复制文件块以便容错,应用程序在一个文件创建时就制定该文件副本数,这个数量值可以在以后任何时候更改,这个数量值成为复制因子。主节点负责所有块复制决
41、定。第4章 Hadoop云平台搭建4.1 Hadoop平台搭建所用到的安装包 Hadoop安装包-Eclipse-eclipse-standard-kepler-SR2-win32-x86_32.zip4.2平台的搭建.的安装将jdk的安装包拷贝到root/Downloads/目录下并在此安装jdk其步骤如下; 图4.1 jdk安装包的存放路径图4.2 jdk的安装步骤图4.3 jdk的安装步骤图4.4 jdk的安装步骤图4.5 jdk的安装步骤 在这我们看到jdk已经配置成功。 4.2.2 Cygwin的安装 Cygwin的功能就是在Windows平台上模拟出unix环境。现在来对其进行安装
42、,首先,我是先下载了一个引导程序来对它进行安装我先登录网站下载setup-x86.exe文件(1)打开以下载的setup-x86.exe图4.6 setup-x86.exe界面(2)点击下一步进入下面的界面图4.7 setup-x86.exe的安装步骤 第一项“Install from Internet”表示从网络上找到安装文件后会自动安装。一般网络环境好的可以先择此项,但此安装不会保存安装文件,因此若下次需再次安装时也一定需要有网络;第二项“Download Without Installing”表示下载安装镜像,但不安装。这里下载有个好处就是,在以后没有网络的情况下也可以自由安装;第三项“
43、Install From Local Directory”表示安装已下载到本地目录下的安装文件。一般最好先选择“Download Without Installing”之后再通过“Install From Local Directory”来安装,这样就可以方便于日后无网络的时候安装。(1)点击“Install From Local Directory”进入下一步图4.8 setup-x86.exe的安装步骤这里为Cygwin选择安装的地址,我将它安装在“d:program filescygwin”目录下。(2)点击下一步按钮,继续安装图4.9 setup-x86.exe的安装步骤 这里选择的是
44、之前下载的setup是存放的地址。(3)继续点击下一步,出现如下界面图4.10 setup-x86.exe的安装步骤 这里要保证下载时选的4个包在这里已经全部被选中,base>sed、editors->vim、 libs-> 、 net->OpenSSH。同时检查一下包的状态。其中“keep”为安装,“Reinstall”为重新安装;“Uninstall”为不安装其检测如下图:图4.11 setup-x86.exe的安装步骤(4)点击下一步,直接到完成界面。图4.12 setup-x86.exe的安装步骤在这里点击完成就可以完成Cygwin的安装了。4.2.3 Wind
45、ows下系统环境变量的配置 (1)右键“我的电脑”-系统属性-高级/高级系统设置-环境变量;在这里进行环境变量的配置。图4.13 环境变量配置界面 (2)我们这里需要做的事添加环境变量JAVA_HOME;要在系统变量里新建,在“变量名”处,加入JAVA_HOME,在“变量值”处加入安装JDK时的安装目录地址,我这里为d :Javajdk;如下图所示。图4.14 JAVA_HOME环境变量配置(3)新建加入环境变量CLASSPATH; 要在系统变量里新建,在“变量名”处写入CLASSPATH在“变量值”处输入:“.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar”。
46、这里一点要注意前面的“.;”,这个不能少写或写错。图4.15 JAVA_HOME环境变量配置(4) 新建环境变量CYGWIN 在系统变量里新建,在“变量名”处输入CYGWIN在“变量值”处输入:ntsec。如下图所示。图4.16 cygwin环境变量配置(5) 配置path目录 在系统变量目录中选中“PATH”然后点“编辑”。 1)第一步首先是添加JDK的路径,并以分号结束;路径为:; 2)第二步添加JRE的路径;路径为:C:Javajre8; 3)第三步添加Cygwin的bin路径;路径为:D:Program Files (x86)cygwin64bin; 4)第四步添加Cygwin usr
47、的bin或sbin路径;路径为:D:Program Files (x86)cygwin64usrsbin;将这些都添加到PATH的最前面,最后就完成了path目录的配置了。如下图所示。图4.17 path目录配置4.2.4 安装和配置SSHD服务(1)安装SSHD服务 启动已下载安装好的Cygwin;图4.18 sshd服务安装在已启动的Cygwin中输入命令 $ ssh-host-config;当我们输入了$ ssh-host-config会出现供我们选择的问题 Should privilege separation be used?(yes/no)在这里选择no;之后还回出现一个问题,选择
48、yes;图4.19 sshd服务配置接着上面会出现:“Enter the value of CYGWIN for the daemon:”,在这里输入ntsec;接着下一个问题是: “Do you want to use a differen name?(yes/no)”,这里选择是no;接着是:“Create new privileged user account cyg_server?(yes/no)”,这里选择 yes;最后出现:“Please enter the password:”,但是在这里不用对它设置密码,回车之后,当我们看到:“Host configuration finish
49、ed.Have fun!”之后,表示sshd已经安装成功;图4.19 sshd服务配置4.2.5 启动ssh服务在我的电脑那里右键打开到管理到服务和应用程序再到服务。选择CYGWIN SSH,并启动。如下图:图4.20 sshd服务启动注意:在启动ssh服务的时候可能会弹出“本地计算机上的cygwin sshd服务启动后停止.”的错误。这种情况可能是由于权限问题所导致,这是要先解决掉这个错误才可启动cygwin ssh服务。(1)配置sshd服务的无密码登陆 1)首先生成密钥对。打开Cygwin输入:ssh-keygen;图4.21 sshd服务启动2)在将生成的密钥对中的公钥加入到公钥授权文
50、件中。先进入.ssh的目录,输入:cd .ssh/;然后将该目录下的文件id_rsa.pub的文件加入公钥授权文件中:cp id_rsa.pub authorized_keys;图4.22 sshd服务启动3)退出Cygwin sshd的登录;4)打开Cygwin;输入:ssh localhost,这时会遇到一个问题 Are you sure you want to continue connecting (yes/no)? 这里选择 yes。5)通过who指令来验证是否已经成功登陆服务。(2) 配置Hadoop安装包 1)将以下载的Hadoop安装包解压。我这里使用的Hadoop为hadoo
51、p-1.1。注意:自己解压hadoop安装包后所存放的目录,这里为:“”。 2)修改配置文件(hadoop解压文件内的conf目录,这里为D:hadoop-1.1.2conf);3)hadoop-env.sh找到D:hadoop-1.1.2conf下的文件 “hadoop-env.sh”,用记事本打开。找到“export JAVA_HOME=/usr/lib/j2sdk1.5-sun”将JAVA_HOME之后的修改成JDK的安装目录,并且在目录前加入/cygdrive/,即修改成“”。保存之后,退出即可。如下图所示。图4.23 Hadoop安装包配置 4)core-site.xml 找到D:h
52、adoop-0.20.2srccore 下的文件 “core-default.xml”,并将其拷贝到D:hadoop-0.20.2conf下。删除原有文件“core-site.xml”,并将拷贝过来的文件“core-default.xml”改名“core-site.xml”,然后用记事本打开。搜索到节点“”:将其中value值改成“hdfs:/localhost:9000”:保存退出即可。5)hdfs-site.xml 找到找到D:hadoop-0.20.2srchdfs 下的文件“hdfs-default.xml”,并将其拷贝到D:hadoop-0.20.2conf下。删除原有文件“hdfs
53、-site.xml”,并将拷贝过来的文件“hdfs-default.xml”改名“hdfs-site.xml”,然后用记事本打开。搜索到节点“dfs.replication”:将其中value值改成“1”:保存退出即可。6) mapred-site.xml 找到D:hadoop-0.20.2srcmapred 下的文件“mapred-default.xml”,并将其拷贝到D:hadoop-0.20.2conf下。删除原有文件“mapred-site.xml”,并将拷贝过来的文件“mapred-default.xml”改名“mapred-site.xml”,然后用记事本打开。搜索到节点“”:将其
54、中value值改成“localhost:9001”:保存退出即可。7)启动Hadoop;启动Cygwin Teminal。开启sshd服务并登陆。$ net start sshd$ ssh localhost并通过who指令来查看是否登陆成功。8)启动Hadoop;进入Hadoop的bin目录,我这里为:“D:hadoop-0.20.2bin”。$ cd D:$ cd hadoop-0.20.2bin$ ./hadoop namenode -format (格式化bin目录,第一次登陆须格式化)$ ./start-all.sh9)校验Hadoop是否开启成功$ ./hadoop dfsadmi
55、n -report图4.24 Hadoop启动 如上图所示,Hadoop启动成功。至此,Windows上基于Hadoop的云平台搭建完成。 4.3 Eclipse Hadoop插件开发配置4.3.1 Eclipse插件的介绍Hadoop eclipse是Hadoop开发环境的插件。在配置完Hadoop的相关信息之后,在对应Hadoop目录下面的contribeclipse-plugin下有一用于eclipse下Hadoop开发的jar包:。这里的目录为:D:hadoop-1.1.2contribeclipse-plugin。该包中包含eclipse上Hadoop开发的所有API。因此只要将此包导入eclipse并加以配置eclipse之后就可以在eclipse上创建MapReduce应用程序了。4.3.2 具体步骤(1) 安装eclipse(2) Eclipse插件开发配置将Hadoop开发包复制到eclipse安装目录下;将文件“;复制到eclipse的目录:G:Softwareeclipseeclipseplugins中。其实就是将放入Eclipse的plugins目录中。然后重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶叶购销合同(新茶)
- 山西省朔州市右玉县2024年七年级上学期数学期中考试试卷【附答案】
- 广东省肇庆市2024年七年级上学期数学期中质量检测试题【附答案】
- 福建省厦门市2023-2024学年高二下学期7月期末考试生物
- 湖北省部分高中联考协作体2023-2024学年高二下学期期中联考英语试卷
- 高三一轮复习课件 第16讲 河流地貌的发育
- 初中中考物理知识点梳理
- 北京陈经纶中学英语新初一摸底测试及答案
- 3.1农业的区位选择教学课件-鲁教版(2019)高中地理必修二
- 广东省揭阳市第三中学人教版高中化学选修四教案33盐类的水解(第一课时)
- 人工智能技术应用专业调研报告
- 2024发展对象培训班考试试题与答案
- GB/T 15967-20241∶500 1∶1 000 1∶2 000地形图数字航空摄影测量测图规范
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 《中华民族共同体概论》考试复习题库(含答案)
- NB-T 47013.15-2021 承压设备无损检测 第15部分:相控阵超声检测
- 信息安全风险评估记录表
- codesys所有函数的详细说明(可编辑修改word版)
- 大学综合英语第一册unit1(上海外语出版社)
- W5300控制器详细设计及使用说明文档
- 系统性红斑狼疮PPT优秀课件
评论
0/150
提交评论