用Linux和ApacheHadoop进行云计算说课讲解.docx
- 文档编号:1469072
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:12
- 大小:356.97KB
用Linux和ApacheHadoop进行云计算说课讲解.docx
《用Linux和ApacheHadoop进行云计算说课讲解.docx》由会员分享,可在线阅读,更多相关《用Linux和ApacheHadoop进行云计算说课讲解.docx(12页珍藏版)》请在冰豆网上搜索。
用Linux和ApacheHadoop进行云计算说课讲解
用Linux和ApacheHadoop进行云计算
云计算简介
近来云计算越来越热门了,云计算已经被看作IT业的新趋势。
云计算可以粗略地定义为使用自己环境之外的某一服务提供的可伸缩计算资源,并按使用量付费。
可以通过Internet访问“云”中的任何资源,而不需要担心计算能力、带宽、存储、安全性和可靠性等问题。
本文简要介绍AmazonEC2这样的云计算平台,可以租借这种平台上的虚拟Linux®服务器;然后介绍开放源码MapReduce框架ApacheHadoop,这个框架将构建在虚拟Linux服务器中以建立云计算框架。
但是,Hadoop不仅可以部署在任何厂商提供的VM上,还可以部署在物理机器上的一般LinuxOS中。
在讨论ApacheHadoop之前,我们先简要介绍一下云计算系统的结构。
图1显示云计算的各个层以及现有的一些服务。
关于云计算的各个层的详细信息,请参见参考资料。
基础设施即服务(Infrastructure-as-a-Service,IaaS)是指以服务的形式租借基础设施(计算资源和存储)。
IaaS让用户可以租借计算机(即虚拟主机)或数据中心,可以指定特定的服务质量约束,比如能够运行某些操作系统和软件。
AmazonEC2在这些层中作为IaaS,向用户提供虚拟的主机。
平台即服务(Platform-as-a-Service,PaaS)主要关注软件框架或服务,提供在基础设施中进行“云”计算所用的API。
ApacheHadoop作为PaaS,它构建在虚拟主机上,作为云计算平台。
图1.云计算的层和现有服务
回页首
AmazonEC2
AmazonEC2是一个Web服务,它允许用户请求具有各种资源(CPU、磁盘、内存等)的虚拟机器。
用户只需按使用的计算时间付费,其他事情全交给Amazon处理。
这些实例(AmazonMachineImage,AMI)基于Linux,可以运行您需要的任何应用程序或软件。
在从Amazon租借服务器之后,可以像对待物理服务器一样使用一般的SSH工具设置连接和维护服务器。
对EC2的详细介绍超出了本文的范围。
更多信息请参见参考资料。
部署Hadoop云计算框架的最好方法是把它部署在AMI上,这样可以利用云资源,不需要考虑计算能力、带宽、存储等问题。
但是,在本文的下一部分中,我们将在本地的Linux服务器VMWare映像中构建Hadoop,因为Hadoop不仅适用于云解决方案。
在此之前,我们先介绍一下ApacheHadoop。
回页首
ApacheHadoop
ApacheHadoop是一个软件框架(平台),它可以分布式地操纵大量数据。
它于2006年出现,由Google、Yahoo!
和IBM等公司支持。
可以认为它是一种PaaS模型。
它的设计核心是MapReduce实现和HDFS(HadoopDistributedFileSystem),它们源自MapReduce(由一份Google文件引入)和GoogleFileSystem。
MapReduce
MapReduce是Google引入的一个软件框架,它支持在计算机(即节点)集群上对大型数据集进行分布式计算。
它由两个过程组成,映射(Map)和缩减(Reduce)。
在映射过程中,主节点接收输入,把输入分割为更小的子任务,然后把这些子任务分布到工作者节点。
工作者节点处理这些小任务,把结果返回给主节点。
然后,在缩减过程中,主节点把所有子任务的结果组合成输出,这就是原任务的结果。
图2说明MapReduce流程的概念。
MapReduce的优点是它允许对映射和缩减操作进行分布式处理。
因为每个映射操作都是独立的,所有映射都可以并行执行,这会减少总计算时间。
HDFS
对HDFS及其使用方法的完整介绍超出了本文的范围。
更多信息请参见参考资料。
从最终用户的角度来看,HDFS就像传统的文件系统一样。
可以使用目录路径对文件执行CRUD操作。
但是,由于分布式存储的性质,有“NameNode”和“DataNode”的概念,它们承担各自的责任。
NameNode是DataNode的主节点。
它在HDFS中提供元数据服务。
元数据说明DataNode的文件映射。
它还接收操作命令并决定哪些DataNode应该执行操作和复制。
DataNode作为HDFS的存储块。
它们还响应从NameNode接收的块创建、删除和复制命令。
JobTracker和TaskTracker
在提交应用程序时,应该提供包含在HDFS中的输入和输出目录。
JobTracker作为启动MapReduce应用程序的单一控制点,它决定应该创建多少个TaskTracker和子任务,然后把每个子任务分配给TaskTracker。
每个TaskTracker向JobTracker报告状态和完成后的任务。
通常,一个主节点作为NameNode和JobTracker,从节点作为DataNode和TaskTracker。
Hadoop集群的概念视图和MapReduce的流程见图2。
图2.Hadoop集群的概念视图和MapReduce的流程
回页首
设置ApacheHadoop
现在在LinuxVM上设置Hadoop集群,然后就可以在Hadoop集群上运行MapReduce应用程序。
ApacheHadoop支持三种部署模式:
∙单独模式:
在默认情况下,Hadoop以非分布的单独模式运行。
这个模式适合应用程序调试。
∙伪分布模式:
Hadoop还可以以单节点的伪分布模式运行。
在这种情况下,每个Hadoop守护进程作为单独的Java™进程运行。
∙全分布模式:
Hadoop配置在不同的主机上,作为集群运行。
要想以单独或伪分布模式设置Hadoop,请参考Hadoop的网站。
在本文中,我们只讨论以全分布模式设置Hadoop。
准备环境
在本文中,我们需要三台GNU/Linux服务器;一个作为主节点,另外两个作为从节点。
表1.服务器信息
服务器IP
服务器主机名
角色
9.30.210.159
Vm-9-30-210-159
主节点(NameNode和JobTracker)
9.30.210.160
Vm-9-30-210-160
从节点1(DataNode和TaskTracker)
9.30.210.161
Vm-9-30-210-161
从节点2(DataNode和TaskTracker)
每台机器都需要安装JavaSE6和Hadoop二进制代码。
更多信息见参考资料。
本文使用Hadoopversion0.19.1。
还需要在每台机器上安装SSH并运行sshd。
SUSE和RedHat等流行的Linux发行版在默认情况下已经安装了它们。
设置通信
更新/etc/hosts文件,确保这三台机器可以使用IP和主机名相互通信。
因为Hadoop主节点使用SSH与从节点通信,所以应该在主节点和从节点之间建立经过身份验证的无密码的SSH连接。
在每台机器上执行以下命令,从而生成RSA公共和私有密钥。
ssh-keygen–trsa
这会在/root/.ssh目录中生成id_rsa.pub。
重命名主节点的id_rsa.pub(这里改名为59_rsa.pub)并把它复制到从节点。
然后执行以下命令,把主节点的公共密钥添加到从节点的已授权密钥中。
cat/root/.ssh/59_rsa.pub>>/root/.ssh/authorized_keys
现在尝试使用SSH连接从节点。
应该可以成功连接,不需要提供密码。
设置主节点
把Hadoop设置为全分布模式需要配置
在hadoop-site.xml中配置Hadoop部署。
这里的配置覆盖hadoop-default.xml中的配置。
表2.配置属性
属性
解释
fs.default.name
NameNodeURI
mapred.job.tracker
JobTrackerURI
dfs.replication
复制的数量
hadoop.tmp.dir
临时目录
hadoop-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
--Putsite-specificpropertyoverridesinthisfile.-->
//9.30.210.159:
9000
9001
通过配置hadoop-env.sh文件指定JAVA_HOME。
注释掉这一行并指定自己的JAVA_HOME目录。
exportJAVA_HOME=
在master文件中添加主节点的IP地址。
9.30.210.159
在slave文件中添加从节点的IP地址。
9.30.210.160
9.30.210.161
设置从节点
把hadoop-site.xml、hadoop-env.sh、masters和slaves复制到每个从节点;可以使用SCP或其他复制工具。
对HDFS进行格式化
运行以下命令对HDFS分布式文件系统进行格式化。
检查Hadoop集群
现在,可以使用bin/start-all.sh启动Hadoop集群。
命令输出指出主节点和从节点上的一些日志。
检查这些日志,确认一切正常。
如果弄乱了什么东西,可以格式化HDFS并清空hadoop-site.xml中指定的临时目录,然后重新启动。
访问以下URL,确认主节点和从节点是正常的。
NameNode:
http:
//9.30.210.159:
50070
JobTracker:
http:
//9.30.210.159:
50030
现在,已经在云中设置了Hadoop集群,该运行MapReduce应用程序了。
回页首
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux ApacheHadoop 进行 计算 讲解