《深入理解Hadoop(原书第2版)》——3.3一个MapReduce程序的组成

简介:

本节书摘来自华章计算机《深入理解Hadoop(原书第2版)》一书中的第3章,第3.3节,作者 [美]萨米尔·瓦德卡(Sameer Wadkar),马杜·西德林埃(Madhu Siddalingaiah),杰森·文纳(Jason Venner),译 于博,冯傲风,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3一个MapReduce程序的组成

本节介绍基于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类用到的其他自定义依赖类。
相关文章
|
4月前
|
分布式计算 Hadoop
Hadoop系列 mapreduce 原理分析
Hadoop系列 mapreduce 原理分析
38 1
|
4月前
|
存储 分布式计算 负载均衡
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
59 0
|
3月前
|
存储 分布式计算 监控
Hadoop的JobTracker和TaskTracker在MapReduce中的作用是什么?
Hadoop的JobTracker和TaskTracker在MapReduce中的作用是什么?
49 0
|
4月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
254 0
|
4月前
|
存储 分布式计算 资源调度
干翻Hadoop系列文章【03】:MapReduce概念详解
干翻Hadoop系列文章【03】:MapReduce概念详解
|
4月前
|
存储 分布式计算 搜索推荐
【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)
【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)
46 0
|
4月前
|
分布式计算 Hadoop 大数据
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
145 0
|
7天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
30 2
|
7天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
9天前
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
40 1

热门文章

最新文章

相关实验场景

更多