Hadoop 新 MapReduce 框架 Yarn 详解(3)

Hadoop Yarn 框架 Demo 示例

Demo 场景介绍:Weblogic 应用服务器日志分析

了解了 hadoop 新的 Yarn 框架的架构和思路后,我们用一个 Demo 示例来检验新 Yarn 框架下 Map-Reduce 程序的开发部署。

我们考虑如下应用场景:用户的生产系统由多台 Weblogic 应用服务器组成,每天需要每台对应用服务器的日志内容进行检查,统计其日志级别和日志模块的总数。

WebLogic 的日志范例如下图所示:


图 3.Weblogic 日志示例

图 3.Weblogic 日志示例

如上图所示,<Info> 为 weblogic 的日志级别,<Security>,<Management> 为 Weblogic 的日志模块,我们主要分析 loglevel 和 logmodule 这两个维度分别在 WebLogic 日志中出现的次数,每天需要统计出 loglevel 和 logmodule 分别出现的次数总数。

Demo 测试环境 Yarn 框架搭建

由于 Weblogic 应用服务器分布于不同的主机,且日志数据量巨大,我们采用 hadoop 框架将 WebLogic 各个应用服务器主机上建立分布式目录,每天将 WebLogic 日志装载进 hadoop 分布式文件系统,并且编写基于 Yarn 框架的 MapReduce 程序对日志进行处理,分别统计出 LogLevel 和 Logmodule 在日志中出现的次数并计算总量,然后输出到分布式文件系统中,输出目录命名精确到小时为后缀以便区分每次 Demo 程序运行的处理结果。

我们搭建一个 Demo 测试环境以验证 Yarn 框架下分布式程序处理该案例的功能,以两台虚拟机作为该 Demo 的运行平台,两机均为 Linux 操作系统,机器 hostname 为 OEL 和 Stephen,OEL 作为 NameNode 和 ResouceManager 节点主机,64 位,Stephen 作为 DataNode 和 NodeManager 节点主机,32 位(Hadoop 支持异构性), 具体如下:


表 3.Demo 测试环境表

主机名角色备注
OEL(192.168.137.8)   NameNode 节点主机
ResourceManager 主机
  linux 操作系统
32bit
 
Stephen(192.168.l37.2)   DataNode 节点主机
NodeManager 主机
  linux 操作系统
64bit
 

我们把 hadoop 安装在两台测试机的 /hadoop 文件系统目录下,安装后的 hadoop 根目录为:/hadoop/hadoop-0.23.0,规划分布式文件系统存放于 /hadoop/dfs 的本地目录,对应分布式系统中的目录为 /user/Oracle/dfs

我们根据 Yarn 框架要求,分别在 core-site.xml 中配置分布式文件系统的 URL,详细如下:


清单 1.core-site.xml 配置

<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.137.8:9100</value> </property> </configuration>  

在 hdfs-site.xml 中配置 nameNode,dataNode 的本地目录信息,详细如下:


清单 2.hdfs-site.xml 配置

<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/hadoop/dfs/name</value> <description> </description> </property> <property> <name>dfs.datanode.data.dir</name> <value>/hadoop/dfs/data</value> <description> </description> </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>  

在 mapred-site.xml 中配置其使用 Yarn 框架执行 map-reduce 处理程序,详细如下:


清单 3.mapred-site.xml 配置

<configuration> <property> <name>mapreduce.framework.name</name> <value>Yarn</value> </property> </configuration>  

最后在 Yarn-site.xml 中配置 ResourceManager,NodeManager 的通信端口,web 监控端口等,详细如下:


清单 4.Yarn-site.xml 配置

<?xml version="1.0"?> <configuration> <!-- Site specific YARN configuration properties --> <property> <name>Yarn.nodemanager.aux-services</name> <value>mapreduce.shuffle</value> </property> <property> <description>The address of the applications manager interface in the RM.</description> <name>Yarn.resourcemanager.address</name> <value>192.168.137.8:18040</value> </property> <property> <description>The address of the scheduler interface.</description> <name>Yarn.resourcemanager.scheduler.address</name> <value>192.168.137.8:18030</value> </property> <property> <description>The address of the RM web application.</description> <name>Yarn.resourcemanager.webapp.address</name> <value>192.168.137.8:18088</value> </property> <property> <description>The address of the resource tracker interface.</description> <name>Yarn.resourcemanager.resource-tracker.address</name> <value>192.168.137.8:8025</value> </property> </configuration>  

具体配置项的含义,在 hadoop 官方网站有详细的说明,读者可以参见 hadoop 0.23.0 官方配置模板。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/39fc14dcb6a6c4b154fdcfa5503fe898.html