问题标签 [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分布式缓存:找不到文件异常
我正在尝试在 MapReduce 上实现 K-means。我已将初始质心文件上传到分布式缓存
在司机班
在我的映射器类
$HADOOP_HOME/logs/ 中的输出是
当我做
可能是什么问题?
eclipse - 在hadoop集群上运行时不会调用configure(),但可以在Eclipse上调用,DistributedCache FIleNotFoundException
我的程序使用 DistributedCache 来缓存文件
我把文件放进去
整个程序可以在 Eclipse 上运行并得到正确的结果。但是当我在Hadoop集群中运行它时,我发现这部分没有被调用!为什么会这样?我需要在配置中设置一些东西吗?
java - 在 Hadoop DistributedCache 上存储 TreeSet
我正在尝试存储 aTreeSet
以DistributedCache
供 Hadoop map-reduce 作业使用。到目前为止,我有以下用于将文件从 HDFS 添加到DistributedCache
:
如何有效地将 TreeSet(我已经在此类中构建)添加到要添加到 DistributedCache 的文件中?我是否应该使用 Java 的本机序列化以某种方式将其序列化到文件中?
请注意,TreeSet 在启动 map-reduce 作业的主类中构建一次。TreeSet 永远不会被修改,我只是希望每个映射器都拥有对该 TreeSet 的只读访问权限,而不必一遍又一遍地重建它。
hadoop - 未存储在分布式缓存中的文件
我正在使用分布式缓存。但是执行代码后缓存中没有文件。我已经提到了其他类似的问题,但答案并没有解决我的问题。
请在下面找到代码:
这给了空..
因此,在 mapper 中给出相同的东西也会给出 null 。请让我知道你的建议。
谢谢
hadoop - hadoop DistributedCache 返回 null
我正在使用 hadoop DistributedCache,但我遇到了一些麻烦。我的 hadoop 处于伪分布式模式。
从这里我们可以看到在伪分布式模式下我们使用 DistributedCache.getLocalCache(xx) 来检索缓存文件。
首先,我将文件放入 DistributedCache:
然后在映射器设置()中检索,但DistributedCache.getLocalCache
返回null。我可以通过查看我的缓存文件
System.out.println("Cache: "+context.getConfiguration().get("mapred.cache.files"));
它打印出来:
hdfs://localhost:8022/user/administrator/myfile
这是我的伪代码:
抱歉排版不佳。请任何人帮助....
顺便说一句,我可以使用 uris
URI[] uris = DistributedCache.getCacheFiles(context
.getConfiguration());
uri 返回:hdfs://localhost:8022/user/administrator/myfile
当我尝试从 uri 中读取时,出现文件未找到异常的错误。
hadoop - Hadoop - 分布式缓存中的大文件
我有一个 4 GB 的文件,我试图通过分布式缓存在所有映射器之间共享。但我观察到地图任务尝试开始的显着延迟。具体来说,在我提交作业(通过 job.waitForCompletion())和第一个地图开始的时间之间存在明显的延迟。
我想知道在 DistributedCache 中有大文件的副作用。分布式缓存上的文件被复制了多少次?集群中的节点数量对此有什么影响吗?
(我的集群有大约 13 个节点在非常强大的机器上运行,每台机器能够托管近 10 个映射槽。)
谢谢
java - Infinispan 操作模式
我最近开始研究 Infinispan 作为我们的缓存层。在阅读下面提到的 Infinispan 中的操作模式后。
- 嵌入式模式:当您在与应用程序相同的 JVM 中启动 Infinispan 时。
- 客户端-服务器模式:这是当您启动远程 Infinispan 实例并使用各种不同的协议连接到它时。
首先,我现在很困惑,从上述两种模式中哪个最适合我的应用程序。
我有一个非常简单的用例,我们有一个客户端代码,它将使用服务的主 VIP 调用我们的 REST 服务,然后它将负载平衡到Service Server
我们部署服务的个人,然后它将进行交互使用 Cassandra 数据库检索基于用户 ID 的数据。下图会让一切都清楚。
假设例如,如果客户端正在寻找一些数据,userId = 123
那么它将使用主 VIP 调用我们的 REST 服务,然后它将负载平衡到我们的四个服务服务器中的任何一个,假设它得到负载平衡到 Service1,然后 service1 将调用 Cassandra 数据库获取记录userId = 123
,然后返回给客户端。
现在我们计划使用 Infinispan 缓存数据,因为压缩正在扼杀我们的性能,以便我们的读取性能可以得到一些提升。所以我开始研究 Infinispan 并偶然发现了两种模式,如下所述。我不确定在我们的案例中使用 Infinispan 的最佳方式是什么。
其次,从 Infinispan 缓存中,我期望的是,如果我使用嵌入式模式,那么它应该看起来像这样。
如果是,那么 Infinispan 缓存将如何相互交互?有可能在某个时候,我们会为那些将在另一个服务实例 Infinispan 缓存上的用户 ID 寻找数据?正确的?那么在这种情况下会发生什么?infinispan 也会处理这些事情吗?如果是,那么我需要进行哪些配置设置才能确保这件事正常工作。
如果我遗漏了什么,请原谅我的无知。任何明确的信息都会使我对上述两个问题更加清楚。
caching - 关于spring memcached注解的singlecache、multicache和assigncache的区别
我试图理解 Simple Spring Memcached,但一直坚持下面提到的。
有什么区别:
- @ReadThroughSingleCache、@ReadThroughMultiCache 和 @ReadThroughAssignCache
- @UpdateSingleCache、@UpdateMultiCache 和 @UpdateAssignCache
- @InvalidateSingleCache、@InvalidateMultiCache 和 @InvalidateAssignCache
还有更新是如何工作的。如果我使用某个键对命名空间进行更新,它是否会执行同一命名空间中的所有 read*cache 方法并使用相同的键。如果是,那么它是否适用于多个服务器应用程序。
例如,在某个场景中,用户的积分(针对某事)被缓存 应用程序 1
在来自不同应用程序(可能是后台调度程序)的另一个场景中,调用以下方法:应用程序 2
我的问题是,如果命名空间(“userPoints”)最初有一个 userId(“1234”)的缓存条目为 50 个点,并且使用(“1234”,100)调用更新方法,那么缓存如何知道“1234”的条目必须更新为 100 分。
它应该使用返回值并用旧值更新它(然后需要更改返回类型),或者如果更新是“直写”,则应该使用 db 查找的直接逻辑调用读取方法,然后更新缓存...但是应用程序 2 如何通知应用程序 1 更新。
caching - 如何在简单的spring memcached中刷新所有缓存条目
这个问题参考了 Simple Spring memcached。
我有一个场景,其中使用 userId 作为键为用户缓存交易列表。现在,如果交易数据被更新,我需要刷新所有用户的缓存,因为这会影响所有用户的交易数据。如何使用 SSM 注释来实现这一点。invalidate*cache 和 update*cache 选项似乎使关键特定缓存条目无效/更新,而我需要清除整个缓存。
hadoop - Re-use files in Hadoop Distributed cache
I am wondering if someone can explain how the distributed cache works in Hadoop. I am running a job many times, and after each run I notice that the local distributed cache folder on each node is growing in size.
Is there a way for multiple jobs to re-use the same file in the distributed cache? Or is the distributed cache only valid for the lifetime of any individual job?
The reason I am confused is that the Hadoop documentation mentions that "DistributedCache tracks modification timestamps of the cache files", so this leads me to believe that if the time stamp hasn't changed, then it should not need to re-cache or re-copy the files to the nodes.
I am adding files successfully to the distributed cache using: