云计算的关键技术与应用实例Word格式.docx

上传人:b****3 文档编号:7495478 上传时间:2023-05-08 格式:DOCX 页数:165 大小:93.69KB
下载 相关 举报
云计算的关键技术与应用实例Word格式.docx_第1页
第1页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第2页
第2页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第3页
第3页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第4页
第4页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第5页
第5页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第6页
第6页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第7页
第7页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第8页
第8页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第9页
第9页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第10页
第10页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第11页
第11页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第12页
第12页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第13页
第13页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第14页
第14页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第15页
第15页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第16页
第16页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第17页
第17页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第18页
第18页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第19页
第19页 / 共165页
云计算的关键技术与应用实例Word格式.docx_第20页
第20页 / 共165页
亲,该文档总共165页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

云计算的关键技术与应用实例Word格式.docx

《云计算的关键技术与应用实例Word格式.docx》由会员分享,可在线阅读,更多相关《云计算的关键技术与应用实例Word格式.docx(165页珍藏版)》请在冰点文库上搜索。

云计算的关键技术与应用实例Word格式.docx

第二篇云计算的关键技术

第5章Map/Reduce是云计算的选择吗.....48

5.1Map/Reduce跨越50年的

历史.......................48

5.2实现Map/Reduce的C语言实例.49

5.3采用MPI实现并行化的

Map/Reduce功能................51

第6章Hadoop技术..58

6.1Hadoop与MPI在数据处理上的

对比.......................58

6.2Hadoop的主从式结构.59

6.2.1主从式文件系统HDFS.......59

6.2.2主从式计算系统

Map/Reduce..........60

6.2.3文件分块策略分析....................61

6.3Hadoop文件系统HDFS的

前辈GFS.........64

6.4构建云文件系统需要解决的

关键问题.........66

6.5云计算不相信节点服务器..................67

6.6揭密云计算架构下的典型

服务器——Google服务器.................68

6.6.1Google服务器概述...................68

6.6.2揭开Google服务器的

神秘面纱................69

6.6.3Google服务器的配置

情况.69

6.6.4Google服务器的性能

评测.73

第7章Hadoop环境的建立..........75

7.1Hadoop配置环境...............75

7.2配置ssh实现Hadoop结点间

用户的无密码访问..........76

7.3JDK的安装配置.................76

7.4Hadoop的安装配置........77

7.5Hadoop中的HelloWorld.....................81

7.6C语言程序在Hadoop

上运行................82

第8章动手做自己的云计算

V0.01系统.....86

8.1系统总体分析........................86

8.1.1系统架构...................86

8.1.2文件分布式存储流程.............88

8.1.3计算与存储的整合流程......88

8.2管理节点程序设计与分析..................89

8.2.1管理节点服务器程序

主函数........................90

8.2.2管理节点各线程函数的

设计..93

8.2.3主服务器中其他函数的

设计..95

8.3子节点程序分析.................98

8.3.1子节点主函数.....99

8.3.2子节点各线程函数设计..102

8.4客户端API设计.............107

8.4.1客户端文件的存储................108

8.4.2客户端启动子节点计算...113

8.4.3客户端应用的简单实例...114

8.5客户端应用开发实例115

第三篇云计算应用实例

第9章基于不可信服务器节点的云计算

基础架构.......118

9.1云计算基础架构的应用场景........118

9.2云计算基础架构..............120

9.3基于单向指针目录映射的分层

用户隔离......121

9.4云文件系统的物理存储管理........123

9.5云存储的安全级别划分......................124

9.6计算和存储的整合.......125

9.7计算和存储的迁移.......126

9.8任务的可并行性和分类分析........127

9.9简化的服务器级粗粒度计算和

存储资源分配方案...130

9.10数据的云计算系统之旅..................133

第10章云计算与智能....................135

10.1云计算的智能与人类

智能的比较........................135

10.2云计算提升终端智能.........................136

10.3云计算智能与MonteCarlo

方法................138

10.4云计算时代不确定性智能算法

示例——模拟谐振子算法...........138

10.4.1简谐振动的描述....................139

10.4.2模拟谐振子算法描述......141

10.4.3模拟谐振子算法流程......144

10.4.4模拟谐振子算法分析......146

10.4.5模拟谐振子算法应用于

旅行商问题.....149

10.4.6模拟谐振子算法在连续

和非线性优化问题中的

应用..........................161

10.4.7模拟谐振子算法的隐含

并行性...................162

10.5云计算中的人工智能.........................162

第11章云计算企业之间的竞争性

分析...................164

11.1云计算技术流派分析..........................164

11.1.1存储型—数据密集云

计算平台............164

11.1.2计算型—计算密集云

计算平台............165

11.1.3综合云计算平台....................165

11.2国际云计算公司分析..........................165

11.2.1云计算技术的提出者

Google....................166

11.2.2“端”的霸主微软.............166

11.2.3蓝色巨人IBM的蓝云....167

11.2.4云计算的市场先行者

Amazon公司.168

11.2.5Salesforce从SaaS走入

云中..........................168

11.2.6热爱白皮书的Sun...............169

11.2.7EMC云计算的核心是

虚拟化...................170

11.2.8渔翁得利的思科....................170

11.3国内云计算公司分析..........................171

11.3.1拥有基础设施的

世纪互联............171

11.3.2阿里巴巴下决心

入云..........................172

11.3.3中国移动的BigCloud......172

11.3.4国产旗帜友友云计算

平台..........................173

11.3.5曙光高性能与云计算......173

11.3.6展览也要云.....173

11.4开源云计算平台分析..........................174

11.5国际国内云计算平台提供商

对比研究..175

11.6产业综合分析..................179

11.6.1云计算与网络设备商的

关系..........................179

11.6.2云计算与移动通讯运

营商的关系.....180

11.6.3云计算与服务器提

供商的关系.....180

11.6.4云计算与应用程序开

发商的关系.....181

后记:

未来的计算机—不确定性和

隐含并行计算......................182

附录:

计算力的标准Linpack测试详细

指南.....................186

参考文献196

面对云计算,有的人越来越糊涂,经常听到有人用云里雾里来形容现在的云计算。

云计算系统

确实是一个庞大和综合的系统,即使是国际大公司也不敢贸然进军云计算领域,大量的企业不

是将自己的传统技术优势称为云计算,就是雷声大雨点小的观望。

一般开发者更是不适应在机

群的环境下工作,所以本章将用一个简单的例子来展现云计算的基本特点和技术开发方式,我

们并不保证这个系统是一个完善的系统,但它具备了云计算的一些基本特点如计算和存储的整

合、计算向存储的迁移、文件的分布式存储、计算的并行化等,我们对这些功能采用了最简单

的实现方法以使大多数读者能从中体会到云计算技术的核心理念,所以我们命名这个系统为云

计算V0.01,运行环境为Windows。

8.1

系统总体分析

我们进行系统总体结构设计时主要着眼于云计算基本特征的实现,不考虑系统中很多细节性的

要求和高级要求,并采用中等水平的读者能完成的难度设计。

设计需要实现的基本功能如下。

(1)向开发云应用的客户提供可以调用的API函数,利用API函数实现对云计算系统的访问。

(2)实现分布式的文件存储。

(3)实现计算向存储的迁移,使计算和存储在同一个节点完成,避免数据在网络中的传送。

(4)向用户隔离计算的并行性和存储的分布性,用户无需关心系统具体的操作过程。

(5)初步实现对数据求和及求最大值的处理,演示云计算的基本特点。

读者可以通过增加处理

函数实现更多的计算功能。

8.1.1

系统架构

云计算V0.01系统是一个完全模型化的实验用系统,开发和运行环境为Windows系统,通过对该

系统的学习使读者对云计算技术的基本要点有一定的了解,云计算V0.01将云计算设备分为3个

角色:

管理节点、子节点和客户端。

管理节点和子节点构成了云计算的服务器端,客户端通过

对API的调用实现对云计算系统的访问,并通过API整合为不同的应用程序。

为了简化系统的设

计难度,我们在做云计算V0.01时限定所做的计算任务包括对大数据量数组求和、求最大值等操

作,读者可通过实际的系统体会存储的分布化与计算的并行化的关系,并理解计算向存储迁移

的作用。

云计算V0.01没有实现存储的副本策略,因此暂时不能处理节点失效的问题,这也是为

了降低系统难度的需要。

以下的系统架构方法仅供参考和学习,并且不代表我们赞成这一架构,

不同的读者可以设计不同的系统架构。

系统的整个架构如图8.1所示,这种架构方式是一个以客户端为核心的架构方法,系统中的所有

操作指令均由客户端发出,管理节点不和任一子节点作数据和指令的通信,管理节点的作用主

要是维护root.dat和node.dat两个系统文件。

root.dat文件存储着现在系统中已注册的用户名及该用

户所对应的文件分块描述文件所在节点的IP地址,系统利用这一文件可实现用户的注册、认证

及用户登录后获得文件分块描述文件所在节点的IP地址。

node.dat文件则维护着整个云计算系统

所有子节点的IP地址、端口、最大空间、剩余空间等信息,客户端通过该文件能够获得整个机

群的信息,从而实现向各子节点的直接连接。

客户端从管理节点获得了相关的系统信息后将根

据这一信息直接向各个子节点发起连接,完成文件存储及计算的功能,这大大提高了数据传输

的速率,减轻了管理节点的负荷。

各用户文件的具体分块和存储方式被系统用该用户的用户名

(username)作为文件名的文件分块描述文件存储于其中的一个子节点,这一子节点的IP可在

root.dat文件中找到。

图8.1云计算V0.01的系统结构

在云计算V0.01系统中不同角色间存在两类数据的传送:

一类是命令数据CMD,管理节点和子

节点通过命令数据判断自己下一步所要完成的任务;

一类是信息数据,这类数据是系统要完成

相关任务所需要数据,如系统描述信息、文件信息等,这类数据的数据量相对较大。

由于采用

了计算向存储的迁移策略,系统中出现用户文件数据传输的情况很少,这大大提高了系统的运

行效率。

8.1.2

文件分布式存储流程

系统在进行文件存储时先通过客户端连接管理节点,读取root.dat文件数据,检验是否有该用户

存在,并获取用户数据块文件所在节点的IP地址。

通过读取node.dat文件从管理节点读取子节点

的IP地址的列表,根据以上信息完成对数据的分割,启动多线程函数同时连接各子节点将数据

分别保存在各个节点上,最后更新username表以备访问时重新找到文件的分布情况。

uesername

文件将被存储于某一节点上,管理节点会根据现有username文件的分布情况向用户分配一个节

点的IP地址存放username文件,文件名就是该用户的用户名,由于用户名在系统中是惟一的,

所以每个用户的username也是惟一的,不会造成混乱,如图8.2所示。

图8.2文件的分布式存储流程

8.1.3

计算与存储的整合流程

如图8.3所示,在云计算V0.01系统中,我们利用获得的用户名、文件名、数据块号以及数据分

块信息文件的IP地址信息,可以惟一地确定任一数据块的位置和文件名,客户端同时向各个子

节点发送启动计算的命令,各节点就地读取数据块本地文件,并对其进行计算,计算完成后发

送回客户端汇总得到最后的结果。

图8.3计算与存储的整合流程

这一计算过程不用移动任何数据,对于数据的处理就在存储数据块的节点完成,系统根据客户

端的指令,将计算迁移到节点上分布式的完成,大大提高了计算效率,避免了数据在网络中的

大量流动所造成的效率下降,对于海量数据来说,这一做法的效果是相当明显的。

对于不同的

数据,我们可以定义不同的数据处理方法,从而扩展系统的应用领域。

8.2

管理节点程序设计与分析

管理节点在云计算V0.01系统中只与客户端进行通信,存储系统中的节点信息和用户注册信息,

并不负责任务的调度工作。

在管理节点我们将保存root.dat和node.dat两个系统信息文件。

root.dat文件保存用户名及该用户文

件系统所在的子节点的IP地址,采用userInfo数据结构来描述。

客户端程序只有获得了子节点IP

地址才能和该子节点直接建立连接获取子节点上的用户存储情况文件,该文件的文件名就是用

户的用户名,通过这一个文件可以知道数据的具体存储情况,从而由客户端直接与数据块存储

节点建立连接。

node.dat文件保存了云计算系统的所有子节点的IP地址、总空间和可用空间等信

息,由nodeInfo数据结构来描述。

管理节点各函数调用关系如图8.4所示。

图8.4管理节点函数调用结构

8.2.1

管理节点服务器程序主函数

管理节点主程序为整个管理程序的主入口,通过4个线程函数来监听并完成客户端所提交的任

务。

程序8.1

/*文件名mainsever.cpp*/

//定义管理节点服务器程序的入口点

voidtest();

int_tmain(intargc,_TCHAR*argv[])

{

openfile();

//获得root.dat、node.dat的文件指针

test();

//该函数完成对主服务器的配置工作

WSADATAwsa;

intret=0;

intPORT=5100;

SOCKETs_socket;

SOCKETc_socket;

structsockaddr_ins_sockaddr;

structsockaddr_inc_sockaddr;

intc_sockaddr_len=sizeof(c_sockaddr);

ret=WSAStartup(MAKEWORD(2,2),&

wsa);

if(ret!

=0)

cout<

<

"

InitWinSockfailed:

"

<

ret<

endl;

return0;

}

if((s_socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==SOCKET_ERROR)

CreateSocketFailed:

WSAGetLastError()<

WSACleanup();

s_sockaddr.sin_family=AF_INET;

s_sockaddr.sin_port=htons(PORT);

s_sockaddr.sin_addr.s_addr=htonl(INADDR_ANY);

if(bind(s_socket,(SOCKADDR*)&

s_sockaddr,sizeof(s_sockaddr))==SOCKET_ERROR)

bindfailed:

closesocket(s_socket);

if(listen(s_socket,5)==SOCKET_ERROR)

ListenFailed:

CMDcmd;

//进入循环接收来自客户端的操作命令cmd

while

(1)

c_socket=accept(s_socket,(SOCKADDR*)&

c_sockaddr,&

c_sockaddr_len);

recv(c_socket,(char*)&

cmd,sizeof(CMD),0);

//从客户端获取操作命令

SOCKET*tsock=(SOCKET*)malloc(sizeof(SOCKET));

*tsock=c_socket;

switch(cmd)

caseUSERADD:

_beginthreadex(NULL,0,&

useraddthread,tsock,0,NULL);

//进入增加用户线程

break;

caseUSERGET:

usergetthread,tsock,0,NULL);

//进入获取用户信息

线程

caseUSERDEL:

userdelthread,tsock,0,NULL);

//删除用户,暂未定

caseGETNODE:

getnodeaddrthread,tsock,0,NULL);

//进入获取节点

信息线程

default:

cin.get();

//test()函数用于配置各子节点的IP、端口等信息,并将信息存储到管理节点的node.dat文件

voidtest()

输入地址信息"

charip[16];

intport=5101;

输入IP"

scanf("

%s"

ip);

if(strcmp(ip,"

0"

)==0)

if(nodeadd(ip,port,1024*10)==0)

该记录已经存在"

主服务器配置完成"

上面的管理服务器主程序在5100端口监听来自客户端的连接及操作命令,其命令由cmd定义,

根据从客户端接收到的命令进入不同的处理线程,在本系统已实现的功能有添加用户功能、获

取用户信息功能和获取节点信息功能。

管理节点服务器在启动时就调用test()函数完成对子节点

信息的添加及配置。

节点信息被存到node.dat文件,用户信息被存到root.dat。

在用户需要进行数

据访问时将读取这两个文件获得当前云计算系统所有已接入系统的子节点,并判断当前用户是

否存在,如存在则返回其文件分配信信息存储位置。

我们要注意的是在现在这个系统中管理节点并不和任何的子节点进行通信,也不直接协调子节

点的工作。

用户在获取相关信息后将直接与子节点联系进行操作和数据访问,这样可以大大减

轻主节点的负载。

在管理节点程序中我们定义了一些常用的数据结构主要有userInfo,该数据结构与root.dat文件有

关,包括用户名、用户数据配置文件所在节点的IP地址等信息,因为用户数据文件的信息没有

存放在管理节点而是放在某一个子节点上的,客户端要访问

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2