Hadoop MapReduce程序采用多种提交方式运行
发布时间
阅读量:
阅读量
一.问题来源
为何在Windows系统中使用编程集成工具,或是在Linux系统中使用编程集成工具来执行我们编写的MapReduce程序时,这些程序会在本地JVM中运行,而当我们通过Linux命令行输入“hadoop jar”提交jar文件时,却会将程序发送到集群中运行呢?
具体原因如下:当RunJar中包含与资源管理器(RM)进行通信的RPC客户端时,系统会将jar包提交至集群进行执行;而如果RunJar中包含的是与本地机器通信的客户端,则jar包会被提交到本地JVM环境中运行。这些行为均依据配置文件进行设定。
Configuration conf = new Configuration()这一配置决定了上述行为。若在conf中设置mapreduce.framework.name的值为yarn,则系统会初始化一个能够与Yarn进行通信的RPC客户端;反之,若未进行相关设置,则会初始化一个用于本地通信的客户端。
二.提交模式分类
本地提交模式解析
① 当在Windows或Linux系统中访问本地文件系统中的文件时,生成的处理结果同样存储于本地文件系统之中。
该运行模式采用的是本地启动方式,程序并未被传输至集群环境中执行。
② 若在Windows或Linux系统中访问的是HDFS上的文件,则生成的输出结果也将被保存至HDFS中。
尽管此模式下读取的数据来源于H
全部评论 (0)
还没有任何评论哟~
