我想在每个Map器中添加一个特定的记录子集与每个记录块合并,在hadoop中通常如何做到这一点?在python流媒体包mrjob中呢?
xggvc2p61#
distributedcache是MapReduce框架提供的一种工具,用于缓存应用程序所需的文件(文本、存档、jar等)。应用程序通过url(hdfs://或http://)指定要通过jobconf缓存的文件。distributedcache假定通过hdfs://url指定的文件已经存在于文件系统中url指定的路径上。在从节点上执行作业的任何任务之前,框架会将必要的文件复制到该节点上。它的效率源于这样一个事实,即每个作业只复制一次文件,并且能够缓存从机上未存档的存档。distributedcache可用于分发简单的只读数据/文本文件和/或更复杂的类型,如存档、jar等。存档(zip、tar和tgz/tar.gz文件)在从属节点取消存档。jar可以选择性地添加到任务的类路径中,这是一种基本的软件分发机制。文件具有执行权限。用户还可以选择将分布式缓存文件符号链接到任务的工作目录中。distributedcache跟踪缓存文件的修改时间戳。显然,在执行作业时,应用程序或外部不应修改缓存文件。对于python mrjob:-我想你得用mrjob.compat.支持新的分布式缓存选项(版本)然后使用-files和-archives而不是-cachefile和-cachearchive也许你会在这里得到更多
h79rfbju2#
不确定您到底想做什么,但也许您可以使用分布式缓存功能来实现这一点。分布式缓存的示例用例:
Input to mapper: customer reviews You want to process only those reviews which contain certain keywords, which are stored in a "words.txt" file. You can put words.txt into the Distributed Cache, which makes it available to the mapper & reducer.
我不确定python流媒体到底是如何实现的,但应该不难理解
2条答案
按热度按时间xggvc2p61#
distributedcache是MapReduce框架提供的一种工具,用于缓存应用程序所需的文件(文本、存档、jar等)。
应用程序通过url(hdfs://或http://)指定要通过jobconf缓存的文件。distributedcache假定通过hdfs://url指定的文件已经存在于文件系统中url指定的路径上。
在从节点上执行作业的任何任务之前,框架会将必要的文件复制到该节点上。它的效率源于这样一个事实,即每个作业只复制一次文件,并且能够缓存从机上未存档的存档。
distributedcache可用于分发简单的只读数据/文本文件和/或更复杂的类型,如存档、jar等。存档(zip、tar和tgz/tar.gz文件)在从属节点取消存档。jar可以选择性地添加到任务的类路径中,这是一种基本的软件分发机制。文件具有执行权限。用户还可以选择将分布式缓存文件符号链接到任务的工作目录中。
distributedcache跟踪缓存文件的修改时间戳。显然,在执行作业时,应用程序或外部不应修改缓存文件。
对于python mrjob:-
我想你得用
mrjob.compat.支持新的分布式缓存选项(版本)
然后使用-files和-archives而不是-cachefile和-cachearchive
也许你会在这里得到更多
h79rfbju2#
不确定您到底想做什么,但也许您可以使用分布式缓存功能来实现这一点。
分布式缓存的示例用例:
我不确定python流媒体到底是如何实现的,但应该不难理解