读书频道 > 网站 > 网页设计 > 深入理解Hadoop(原书第2版)
3.3 一个MapReduce程序的组成
15-11-29    下载编辑
收藏    我要投稿   

本文所属图书 > 深入理解Hadoop(原书第2版)

本书详细地讲述了Hadoop生态圈中最为重要的几个组件。不仅介绍了Hadoop涉及的分布式理论基础知识,还着重讲解Hadoop系统的工程实践应用。为了深入浅出地讲述Hadoop各个组件的运行机理,作者使用了贴切的实战用例立即去当当网订购

本节介绍基于Java语言的MapReduce程序由哪些部分构成。下文逐一讲解了各个组成部分:

Java程序客户机(Client Java program):一个Java程序,由集群中的一个客户端节点(又被称为边缘节点)提交运行。这个客户端节点可以访问Hadoop集群,它经常(并不总是)由集群中的一个数据节点来充当。该节点仅是集群中的一台机器,并且有权限访问Hadoop。

自定义Mapper类(Custom Mapper class):除非在最简单的应用场景下,MapReduce程序中的这个Mapper类通常是一个用户自定义类。如果不是在伪集群模式下运行MapReduce程序作业,这个类的实例会在远程任务节点上执行。这些任务节点往往与用来提交作业程序的客户端节点不同。

自定义Reducer类(Custom Reducer class):除非在最简单的应用场景下,MapReduce程序中的这个Reducer类通常是一个用户自定义类。与Mapper类一样,如果不是在伪集群模式下运行MapReduce程序作业,这个类的实例会在远程任务节点上执行。这些任务节点往往与用来提交作业程序的客户端节点不同。

客户端函数库(Client-side libraries):客户端函数库不同于Hadoop系统的标准函数库,这个函数库是在客户端运行期间使用的。客户端需要使用的Hadoop系统的标准函数库已经安装,并且使用通过Hadoop的Client命令(这与客户端程序不同)配置到CLASSPATH中。我们在文件夹$HADOOP_HOME/bin/中可以找到它,其名称为hadoop。就像Java命令用来执行一个Java程序,hadoop命令用来执行客户端程序,该程序会启动一个Hadoop作业。这些函数库都被配置到了环境变量HADOOP_CLASSPATH中。这个变量与CLASSPATH变量一样,是一个冒号分隔的函数列表。

远程函数库(Remote libraries):这个函数库是用户自定义Mapper类和 Reducer类所需要的。这个远程函数库不包括Hadoop系统自带的函数库,因为Hadoop系统自带的函数库已经在每个数据节点都配置好了。举个例子,如果Mapper类用到了一个特殊的XML解析器,包含这个解析器的函数库就必须要被传输到执行这个Mapper类实例的远程数据节点。

Java程序档案文件(Java Application Archive (JAR) files):Java程序以JAR文件的形式打包,这个JAR文件中包括了客户端Java类,以及用户自定义Mapper 和 Reducer类。还包括了客户端Java类、Mapper类和Reducer类用到的其他自定义依赖类。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站