Linux和ApacheHadoop实现云计算,有关Hadoop集群概念介绍

开发 架构 Hadoop
现在云计算是一个热点话题,IBM?、Google、VMWare和Amazon等公司已经开始提供云计算产品和战略,本文向大家介绍一下使用Linux和ApacheHadoop进行云计算的相关知识。

本节和大家一起学习一下有关使用Linux和ApacheHadoop进行云计算的相关内容,主要包括Hadoop集群的概念视图和MapReduce的流程,欢迎大家一起来学习有关云计算方面的知识。

Hadoop集群的概念视图和MapReduce的流程

设置ApacheHadoop

现在在LinuxVM上设置Hadoop集群,然后就可以在Hadoop集群上运行MapReduce应用程序。

ApacheHadoop支持三种部署模式:

单独模式:在默认情况下,Hadoop以非分布的单独模式运行。这个模式适合应用程序调试。
伪分布模式:Hadoop还可以以单节点的伪分布模式运行。在这种情况下,每个Hadoop守护进程作为单独的Java?进程运行。
全分布模式:Hadoop配置在不同的主机上,作为集群运行。
要想以单独或伪分布模式设置Hadoop,请参考Hadoop的网站。在本文中,我们只讨论以全分布模式设置Hadoop。

准备环境

在本文中,我们需要三台GNU/Linux服务器;一个作为主节点,另外两个作为从节点。

表1.服务器信息
服务器IP服务器主机名角色
9.30.210.159Vm-9-30-210-159主节点(NameNode和JobTracker)
9.30.210.160Vm-9-30-210-160从节点1(DataNode和TaskTracker)
9.30.210.161Vm-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_home>/conf/目录中的配置文件。
在hadoop-site.xml中配置Hadoop部署。这里的配置覆盖hadoop-default.xml中的配置。

表2.配置属性
属性解释
fs.default.nameNameNodeURI
mapred.job.trackerJobTrackerURI
dfs.replication复制的数量
hadoop.tmp.dir临时目录

通过配置hadoop-env.sh文件指定JAVA_HOME。注释掉这一行并指定自己的JAVA_HOME目录。
exportJAVA_HOME=<JAVA_HOME_DIR>
在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_home>/bin/hadoopnamenode-format

 检查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应用程序了。

建MapReduce应用程序

MapReduce应用程序必须具备“映射”和“缩减”的性质,也就是说任务或作业可以分割为小片段以进行并行处理。然后,可以缩减每个子任务的结果,得到原任务的结果。这种任务之一是网站关键字搜索。搜索和抓取任务可以分割为子任务并分配给从节点,然后在主节点上聚合所有结果并得到最终结果。

试用示例应用程序

Hadoop附带一些用于测试的示例应用程序。其中之一是单词计数器,它统计某一单词在几个文件中出现的次数。通过运行这个应用程序检查Hadoop集群。
首先,把输入文件放在分布式文件系统中(conf/目录下面)。我们将统计单词在这些文件中出现的次数。
$bin/hadoopfs–putconfinput
然后,运行这个示例应用程序,以下命令统计以“dfs”开头的单词出现的次数。
$bin/hadoopjarhadoop-*-examples.jargrepinputoutput'dfs[a-z.]+'

 命令的输出说明映射和缩减过程:

前两个命令会在HDFS中生成两个目录,“input”和“output”。可以使用以下命令列出它们。
$bin/hadoopfs–ls
查看分布式文件系统中已经输出的文件。它以键-值对的形式列出以“dfs*”开头的单词出现的次数。
$bin/hadoopfs-catouput/*
现在,访问JobTracker站点查看完成的作业日志。

创建LogAnalyzerMapReduce应用程序:

现在创建一个Portal(IBMWebSphere?Portalv6.0)LogAnalyzer应用程序,它与Hadoop中的WordCount应用程序有许多共同点。这个分析程序搜索所有Portal的SystemOut*.log文件,显示在特定的时间段内应用程序在Portal上启动了多少次。在Portal环境中,所有日志分割为5MB的片段,很适合由几个节点并行地分析。本节关于使用Linux和ApacheHadoop进行云计算中Hadoop集群方面的内容介绍完毕。

【编辑推荐】

  1. Hadoop集群配置中如何写入和读取数据?
  2. 学习笔记 Hadoop集群如何搭建
  3. Hadoop文件系统如何快速安装?
  4. Hadoop集群搭建过程中相关环境配置详解
  5. Hadoop完全分布模式安装实现详解

 

责任编辑:佚名 来源: Linux110.com
相关推荐

2010-06-07 09:53:36

ApacheHadoo

2010-06-07 10:16:56

Hadoop

2009-08-19 15:50:52

松散耦合

2010-04-02 10:43:02

云计算

2012-06-18 16:50:34

云计算服务

2018-06-13 22:50:07

云计算容器云容器

2010-04-19 10:08:46

Oracle视图

2010-06-07 08:55:50

Hadoop云计算

2011-08-25 09:11:13

2010-03-19 13:53:36

云计算

2012-09-12 17:04:53

OpenStack云计算存储

2012-09-13 11:06:03

IBMdW

2012-09-11 17:10:40

OpenStack

2020-07-16 20:55:19

ElasticSear集群分布式

2010-03-29 16:48:24

2015-04-16 14:24:56

Hadoop云计算HDFS

2010-06-04 18:06:22

Hadoop集群搭建

2015-08-25 09:35:17

LinuxRAID

2010-11-01 12:56:02

云计算高性能计算

2010-03-11 16:13:42

云计算平台
点赞
收藏

51CTO技术栈公众号