Hadoop MapReduce的分布式缓存发布

如果有翻译不正确的地方欢迎大家留言指出错误,一起快速成长。
翻译地址:http://hadoop.apache.org/docs/r2.6.5/hadoop-mapreduce-client/hadoop-mapreduce-client-core/DistributedCacheDeploy.html

Hadoop MapReduce的分布式缓存发布

介绍

新版本的MapReduce框架能够利用分布式缓存来发布MapReduce的应用。靠设置配置文件,用户可以运行不同版本的MapReduce程序而不是只能在集群上初始化一个MapReduce。举个例子:集群的管理员可以可以放多个版本的MapReduce到HDFS上,通过配置配置文件maped-site.xml来指导那些版本的Jobs是用的默认版本。在某些情况下这允许用户执行滚动升级MapReduce框架。

先决条件和限制

通过分布式缓存发布的MapReduce框架不能实时的处理提交的客户端代码和查询jobs。它也不能处理运行在每一个NodeManager上的shufflehander 代码。因此通过下面的一些限制应用于MapReduce版本中,这样就能在滚动版本升级中成功的通过分布式缓存发布:

  • MapReduce版本必须与client端代码是一致的。如果不一致,client job必须更新每一个用新版本MapReduce提交或者被质疑的节点。
  • MapReduce版本必须和client job端提交任务的配置文件一致。如果与配置文件不一致(例如:添加一个新的配置或者修改了一个存在的配置),因此配置文件必须先被更新。
  • MapReduce的版本必须和运行集群节点的shufflehandler版本一致。如果不匹配那么新的shufflehadler代码必须发布到集群的所有节点上。NodeManager将会重启从而获得一个新的shfflehandler代码。

通过分布式缓存发布一个新的MapReduce

发布一个新的MapReduce由下面三步构成:

  1. 上传一个能够被作业客户端执行的文档到本地。文档应该默认存在于一个文件系统的一个可读路径上。看到文件文件的路径下面是关于更多细节的讨论。
  2. 通过配置 mapreduce.application.framework.path来指定文档被放的位置。当为一个作业指定缓存文件时候,那个URL被指定的话能够作为一个别名。例如:hdfs:/mapred/framework/hadoop-mapreduce-2.6.5.tar.gz#mrframework代表这个路径应该为mrframework而不是hadoop-mapreduce-2.6.5.tar.gz。
  3. 通过配置 mapreduce.application.classpath去设置路径和上面的一致。Note:如果mapreduce.application.framework.path被配置,而mapreduce.application.classpath没有遵循路径或别名的话会发生错误。
    未完待续。。。。。

猜你喜欢

转载自blog.csdn.net/qq_34796981/article/details/79241503