文档库 最新最全的文档下载
当前位置:文档库 › 云计算关键技术及基于Hadoop的云计算模型研究

云计算关键技术及基于Hadoop的云计算模型研究

云计算关键技术及基于Hadoop 的云计算模型研究

沙,杨深远

(重庆大学软件学院,重庆400030)

要:云计算是在网格计算基础上新兴的计算模型,是互联网公司争相追逐的新技术。云计算作为一种商业计算

模型,可以把任务分布在大量的计算机构成的资源池上。介绍了云计算的关键技术,这些技术包含虚拟机和计算模型等,还基于Hadoop 对云计算模型进行了研究。

关键词:云计算;云计算关键技术;云计算计算模型;Hadoop 中图分类号:TP393.02

文献标识码:A

文章编号:1672-7800(2010)09-0009-03

0引言

云计算是由企业界开始发展,然后才进入学术界引起重视

的,这与网格计算相反。经过对迄今为止的云计算相关学术论文进行统计分析后,显示学术界对于云计算的研究主要集中在云技术关键技术方面。云计算研究的关键技术包括虚拟机、安全管理、数据管理、云监测、能耗管理和计算模型等。云计算的计算模型是研究如何针对某类应用特点提出效率更高的编程方式,目前云计算模型众多,而Hadoop 是一个开源的分布式系统基本架构,正日益成为具有较强实用性的开发平台,淘宝就是国内率先使用Hadoop 的公司之一。

1

云计算关键技术

1.1

虚拟机

虚拟机是云计算的关键技术之一。目前在云计算中使用的

主要虚拟机之一就是VMware Infrastructure 。它是一个虚拟数据中心操作系统,可以将离散的硬件资源统一起来以创建共享平台。其优点有:①整合服务器以降低IT 成本;②暗哨计划内和计划外停机以改进业务连续性;③运行较少的服务器并且动态关闭不使用的服务器。

1.2安全管理

云计算是计算机资源的整合,通过云计算设施中的任何一

台计算机,任何隐私信息都能够被找到。云计算安全问题已经成为急需解决的重要问题。其中,Siani Persion 等提出了在云计算服务设计过程中保护用户隐私的一些设计原则:①发送尽量少的个人信息到云中,或者对系统进行分析后只对一小部分个人信息进行必要的收集和采集;②采用安全措施防止未授权的

访问、复制、使用或者修改个人信息来保护云中的个人信息;③最大限度地实现用户控制。在云计算环境中,让用户完全控制个人信息是比较困难的。要加强对个人信息的控制:一可以允许用户控制最重要的个人信息;二可以委托信任的第三方来管理;④允许用户对个人信息的使用进行选择,即加入、退出机制;⑤明确以及限制数据使用的目的。个人信息必须被身份明确的人使用和处理;⑥有反馈机制。即设计人及界面清楚地表明云服务中采取的安全措施,用其向用户提供安全提示。

1.3数据管理

云计算具有计算能力可变、数据储存在不信任的主机上、

数据是远程复制等3个特点。从这3个特点分析而出,只有两种数据管理应用程序可能适合部署到云计算中:一是和事务处理相关的数据管理系统;另一种是和分析相关的数据管理系统。前者未采用共享的体系结构,在进行远程数据复制时很难满足ACID 的需求,同时在不信任的主机上存储数据也有比较大的风险。ACID 要求对于基于分析的数据管理系统来说不是必须的,同时可以保证敏感数据在分析之外,从而保证其安全。因此,基于分析的数据管理系统应该很合适部署到云计算环境中去。

1.4云监测和能耗管理

云监测是随着云计算的推广、云设施不断增加、为了更好

地体现云计算的强大计算处理能力而设置的对虚拟机监控的能力;能耗管理是如何节省云设施中计算设施所需要的能源、有效整合资源、降低成本。

1.5云计算的计算模型

现行的分布式计算系统可以提供强大的计算能力,但非专

业用户并不能有效地利用,一个庞大的任务很可能由于初学者的偶然操作导致性能的大幅下降。为了解决这些问题,应该提

软件导刊

Software Guide

第9卷%第9期

2010年9月Vol.9No.9Sep.2010

作者简介:洪沙(1962-),男,重庆人,博士后,重庆大学软件学院副教授,研究方向为企业信息化、数字图像处理、电子政务;杨深远(1987-),男,河

南洛阳人,重庆大学在读硕士,研究方向为企业信息化。

2010年

软件导刊供给用户一个高度抽象的产品系统,这些就是云计算的计算模型。提到云计算模型,就不得不说一个开源框架,那就是

Hadoop 。

Hadoop 是一个分布式系统基本架构,由Apache 开发,使

用户在不了解分布式底层细节的情况下,开发分布式程序。简单点说,Hadoop 是一个可以更容易开发和运行处理大规模数据的软件平台。

Hadoop 实现了一个分布式文件系统(Hadoop Distributed File System ),简称HDFS 。HDFS 有着高容错性的特点,并且设

计用来部署在低廉的硬件上。而且它提供高传输率来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS 放宽了POSIX 标准的要求,这样可以流的形式访问文件系统中的数据。

Hadoop 采用Master /Slave 结构(如图1),会有一台Mas-ter ,主要负责NameNode 的工作以及JobTracker 的工作,Job-Tracker 的主要职责就是启动、跟踪和调度各个Slave 的任务执

行。还会有多台Slave ,每一台Slave 通常具有DataNode 的功能并负责TaskTracker 的工作。TaskTracker 根据应用要求来结合本地数据执行Map 任务以及Reduce 任务

图1

Hadoop 结构

2

Windows 下使用Hadoop 实例的研究

2.1

Windows 下使用Hadoop 的环境配置:

(1)安装Hadoop 前,首先需要安装Cygwin

Cygwin 是一个在Windows 平台上运行的Unix 模拟环境,

提供了shell 支持。安装中需要选中Net category 中的openssh ,如图2所示

图2下载Cygwin 安装包

(2)配置Windows 系统变量

新建系统变量CYGWIN ,变量值为ntsec tty 编辑系统变量里的Path 变量,加入C :\cygwin\bin

(3)安装Java ,即安装jdk ,配置JAVA 环境变量。

2.2单机模式

(1)启动Cygwin ,解压缩Hadoop 安装包,例如Hapoop 安装

包位于e :\下,则解压命令为$tar -zxvf /cygdrive /e /hadoop-

0.19.2.tar.gz 。

解压默认目录在C :\cygwin\home\user 文件夹下。

(2)编辑C :\cygwin\home\Administrator\hadoop-0.19.2\conf 里

的hadoop-env.sh ,将JAVA_HOME 变量设置成JDK 安装目录,如果路径中有空格,需要把Program Files 改成Progra~1。如图3

图3

编辑hadoop-env.sh 文件

(3)配置完后即可运行WordCount 实例。

在C :\cygwin\home\Administrator\hadoop -0.19.2下创建一个输入目录input ,新建2个本文文件:

txt1.txt :yangshenyuan hello world hello hadooop txt2.txt :yangshenyuan bye hadoop

然后运行实例,并将结果输出到output 目录下:

$bin /hadoop jar hadoop-0.19.2-examples.jar wordcount in-put output

执行结果如图4所示

图4WordCount 实例输出结果

2.3

伪分布模式

(1)编辑文件conf /hadoop-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text /xsl"href="configuration.xsl"?><!--Put site-specific property overrides in this file.--><configuration><property>

<name>fs.default.name</name></property><property>

<name>mapred.job.tracker</name><value>localhost :9001</value></property><property>

<name>dfs.replication</name><value>1</value></property>

</configuration>

(2)安装配置SSH

启动cygwin ,执行命令:$ssh-host-config 。

当询问"Should privilege separation be used "时,输入no ;当询问"Do you want to install sshd as a service ?"选yes ;当提示"Enter

the value of CYGWIN for the daemon :[ntsec ]"时,选择ntsec 。

提示sshd 服务已经在本地系统安装完毕。输入命令$net start

sshd ,启动SSH ,或者在Windows 服务项里启动CYGWIN sshd 。

然后执行$ssh-keygen 来生成密钥对,然后一直回车键确定。这样会把生产的密钥对保存在.ssh 目录下。使用命令将

RSA 公钥加入到公钥授权文件authorized_keys 中:

10··

第9期洪沙,杨深远:云计算关键技术及基于Hadoop的云计算模型研究

$cd.ssh

$cat id_rsa.pub>>authorized_keys

最后执行$ssh localhost,就可以实现无需密码的SSH连接。

(3)Hadoop运行

运行WorldCount实例。在本地文件系统上建立input目录,放入若干文件并复制到HDFS的目录下,在重命名为in,并运行:

$bin/hadoop dfs-put input in

$bin/hadoop jar hadoop-0.19.2-examples.jar wordcount in out

out为数据处理完成后输出目录,默认在Hadoop根目录下。任务执行完,用以下命令查看分布式文件系统上数据处理的结果:

$bin/hadoop dfs-cat out/*

(4)停止Hadoop进程,命令如下:

$bin/stop-all.sh

2.4完全分布式模式

完全分布式模式步骤有以下几步:

(1)修改所有机器的C:\WINDOWS\system32\drivers\etc\hos ts文件,加入各机器的IP地址及对应的主机名

127.0.0.1localhost

172.20.25.35grid1

172.20.25.77grid2

172.20.25.101grid3

(2)在所有机器上配置相同的帐号grid

(3)在所有的机器上进行SSH配置

执行$ssh-keygen生产密钥对并保存:

$cd~/.ssh

$cat id_rsa.pub>>authorized_keys

在grid1上执行以下代码:

$cd~/.ssh

$scp authorized_keys grid2:/home/grid/.ssh

$scp authorized_keys grid3:/home/grid/.ssh

再分别进入grid2和grid3的.ssh目录,更改autho-rized_keys文件的权限,命令如下:

$chmod644authorized_keys

(4)所有机器上配置Hadoop

grid1上:

$tar-zxvf/cygdrive/e/hadoop-0.19.2.tar.gz。

编辑conf/hadoop-site.xml

<property>

<name>fs.default.name</name>

<value>grid1:9000</value>

</property>

<property>

<name>mapred.job.tracker</name>

<value>grid1:9001</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

编辑conf/master,修改master的主机名,每个主机名一行,在这里就是grid1。编辑conf/slaves,加入所有slaves主机名,即grid2和grid3。把hadoop复制到其他主机。命令如下:$scp~/hadoop-0.19.2grid2:/home/grid/

$scp~/hadoop-0.19.2grid3:/home/grid/

(5)Hadoop运行

grid1上:

$bin/hadoop NameNote-format

启动Hadoop进程

$bin/start-all.sh

运行wordcount实例:

$bin/hadoop dfs-put input in

$bin/hadoop jar hadoop-0.19.2-examples.jar wordcount in out 访问http://grid1:50070可以查看NameNote以及整个分布式文件系统的状态,访问http://grid1:50060可以查看TaskTracker的运行状态。

运行完数据处理,查看结果和关闭Hadoop的操作和伪分布模式相同。

3结束语

虽然Hadoop支持Windows,但官网上同时声明Hadoop尚未在Windows下严格测试,建议只作为开发平台。

而且,格式化Hadoop文件系统是Hadoop启动的第一步,每次格式化前,要清空$HADOOP_HOME\tmp目录下的所有文件,因为Hadoop格式化时会重新建立NameNoteID,而tmp里还包含上次格式化留下的信息。格式化虽然清空了NameNote 的数据,但是保留了DateNote的数据,这样会导致启动失败。

另外,在{HADOOP_HOME}\logs目录下,NameNode、DataN ode、Secondary NameNode、JobTracker、Tasktracker各有一个日志文件,当出现故障时,分析这些文件也许会有帮助。

参考文献:

[1]S P EARSON.Taking Account of Privacy when Designing Cloud Computing Servcices[C].The2009ICSE Workshop on Softuare En-gineering Challenges of Cloud Computing,UK,2009.

[2]李国杰.信息服务网格—第三代Internet[J].计算机世界,2001(40).[3][美]怀特.Hadoop权威指南(中文版)[M].周傲英,曾大聃,译.北京:清华大学出版社,2010.

[4]PENG LIU,YAO SHI,FRANCIS C M.Lau,Cho Li Wang,San Li,Grid d emo p roposal:AntiSpam g ird[J].IEEE International Confer-ence on Cluster Computing,Hong Kong,2003(12).

[5]Hadoop技术论坛[EB/OL].http://www.bbs.hadoopor.com/2010-08-05.

(责任编辑:卓光)

11

··

相关文档