问题标签 [distributed-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hadoop - Hadoop分布式缓存 - 修改文件
我在分布式缓存中有一个文件。驱动程序类根据作业的输出更新此文件并启动新作业。新工作需要这些更新。
我目前这样做的方式是用新的(更新的)替换旧的分布式缓存文件。
有没有办法将差异(旧文件和新文件之间)广播到所有需要该文件的任务跟踪器?
或者是这样的情况,在一项工作(在我的情况下是第一个)完成后,所有特定于该工作的目录/文件都被删除,因此朝这个方向思考甚至没有意义?
hadoop - 分布式缓存 Hadoop - FileNotFound
我正在尝试将文件放在分布式缓存中。为了做到这一点,我使用 -files 选项调用我的驱动程序类,例如:
getCacheFiles()
和包含 MYFILE 的 URI/路径的返回getLocalCacheFiles()
数组。(例如:hdfs://localhost/tmp/hadoopuser/mapred/staging/knappy/.staging/job_201208262359_0005/files/histfile#histfile)
不幸的是,当尝试在 map 任务中检索 MYFILE 时,它会抛出一个FileNotFoundException
.
我在独立(本地)模式和伪分布式模式下都试过了。
你知道可能是什么原因吗?
更新:
以下三行:
打印出来:
因此,该文件似乎列在 job.xmlmapred.cache.files
属性中,并且似乎存在本地文件。尽管如此,还是会抛出 FileNotFoundException。
hadoop - Hadoop分布式缓存错误信息解读
我正在尝试在分布式缓存中放置 3 个文件。
我以编程方式放置其中一个,使用:
我还使用该-files
选项放置了 2 个其他文件。
在本地运行时,在独立模式下,一切正常。
当试图以伪分布式模式运行它时,我收到了这个错误,我不明白它的含义。我用谷歌搜索但没有成功。
有谁知道这意味着什么以及如何解决?
java - Reduce Hadoop 中的分布式缓存
我想在reducer1的内存中保存文件A,在reducer2的内存中保存文件B。这可能在hadoop中使用分布式缓存技术吗?或者,还有其他方法可以实现吗?
谢谢
java - 在 Gemfire 缓存中写入对象作为键
我试图将一个对象作为 Gemfire 区域内的键。
它失败并出现以下错误 -
com.gemstone.gemfire.cache.client.ServerOperationException:com.gemstone.gemfire.pdx.PdxSerializationException:无法创建类“TestClass”的实例
请建议在存储在 gemfire 缓存区域时需要用作键的对象中需要实现的内容。
PS我已将gemfire的自动序列化属性设置为true,并且我在我的TestClass中覆盖了equals和hashcode,它有一个默认的空构造函数。
hadoop - 文件未正确放入分布式缓存
我正在使用以下代码将文件添加到分布式缓存:
然后我将文件读入映射器:
问题是我只读了一行,而不是我放入缓存的文件。而是:cm9vdA==,或 base64 中的根。
有没有其他人遇到过这个问题,或者看到我如何错误地使用分布式缓存?我正在使用完全分布式的 Hadoop 0.20.2。
hadoop - Hadoop:从 DistributedCache 获取文件时出现 FileNotFoundExcepion
我有 2 个节点集群(v1.04),主节点和从节点。在 master 上,我们在using中Tool.run()
添加两个文件。HDFS 中确实存在文件。在 Mapper.setup() 中,我们希望使用从缓存中检索这些文件DistributedCache
addCacheFile()
问题是对于一个文件 aFileNotFoundException
被抛出,尽管该文件存在于从节点上:
ls –l 在从站上:
我的问题是:
- 不应该所有文件都存在于所有节点上吗?
- 应该怎么做才能解决这个问题?
谢谢。
hadoop - Hadoop DistributedCache 导致 IOException
我已经编写了一些代码来使用 Hadoop 执行自连接任务。为此,我使用 DistributedCache 类。当我在 Netbeans 中本地运行代码时,作业已正确完成,但是当我在 hdfs 中上传数据后尝试在单节点集群中运行它时,我得到以下异常:
我知道问题出在 JobLocalizer.java 并且DistributedCache.getLocalCacheFiles(conf)
返回 2 但我不知道发生这种情况的原因。谁能告诉我我没有得到什么?
PS:我忘了说我用的是Hadoop-1.0.4
PS2:问题是DistributedCache.getLocalCacheFiles(conf)
看到了真正的输入文件,还有一个与输入文件相同的临时文件,临时存储在 /tmp 文件夹中。当我在本地运行它时会发生这种情况(不会引发任何异常)。我猜当我从 hdfs 运行它时会发生类似的事情,但随后它会引发异常。有什么想法可以解决这个问题吗?
java - 从 DistributedCache 读取 Hadoop 作业的分片输出
(标题应该被分片以反映 Hadoop将其输出分片到多个文件中)
我将多个 Hadoop 作业链接在一起。早期工作之一产生的输出比其他工作小几个数量级,因此我想将其放入 DistributedCache。这是一个困难的部分。这是我为此编写的代码:
这在我的本地机器和我设置的虚拟集群上运行良好。然而,与这个问题不同的是,它在 AWS 上失败了,理由是 的返回值DistributedCache.getCacheFiles()
是一个空列表。
本质上,我需要以编程方式从一个 MR 作业中读取分片输出并将其放入 DistributedCache。我不能指定硬文件名,因为每次运行程序时减速器的数量都会改变。我没有完全掌握 S3 和 HDFS 如何协同工作,因此很难与 FileSystem 交互以读取分片输出。如何以适用于 AWS 的方式执行此操作?
作为参考,我使用的是 Hadoop 1.0.x:1.0.4(四个 Ubuntu 12.10 虚拟机)和 1.0.3 (AWS) 的组合。
mapreduce - 在 mapreduce 中从 DistributedCache 读取 HAR 文件
我编写了一个 oozie 工作流,它创建 HAR 存档,然后运行需要从该存档中读取数据的 MR-job。1. 创建存档 2. 当作业运行时,映射器确实在分布式缓存中看到存档。3. ???我怎样才能阅读这个档案?从这个档案中逐行读取数据的 API 是什么(我的 har 是一批多个换行符分隔的文本文件)。注意:当我使用存储在 DistirubtedCache 中的常用文件(不是 HAR 存档)时,它工作得很好。尝试从 HAR 读取数据时遇到问题。
这是一个代码片段: