标签: distributed-computing

MapReduce 中的容错

我正在阅读有关 Hadoop 以及它的容错性的文章。我阅读了 HDFS 并阅读了如何处理主节点和从节点的故障。但是,我找不到任何提到 mapreduce 如何执行容错的文档。特别是,当包含 Job Tracker 的主节点宕机或任何从节点宕机时会发生什么?

如果有人可以向我指出一些详细解释这一点的链接和参考资料。

fault-tolerance mapreduce distributed-computing

3
推荐指数
2
解决办法
1万
查看次数

如何在分布式应用程序中管理会话

我有一个Java Web应用程序,它部署在两个VM上.并为这些VM设置NLB(网络负载平衡).我的应用使用会话.我很困惑,如何在两个VM中管理用户会话.即例如 - 如果我发出请求转到VM1并创建用户会话.现在我第二次发出请求,然后进入VM2并想要访问会话数据.如何找到在VM1中创建的会话.

请帮助我清除这种混乱.

java session distributed-computing virtual-machine

3
推荐指数
1
解决办法
2259
查看次数

RMI 服务器与 RMI 注册表

Oracle关于 Java RMI的 FAQ 页面上,它说:

虽然 Java 远程方法调用 (Java RMI) 服务器理论上可以位于任何主机上,但它通常与运行注册中心的主机位于同一主机上,并且位于不同的端口上。即使服务器弄错了它的主机名或 IP 地址(或者有一个根本不能被客户端解析的主机名),它仍然会使用这个错误的主机名导出它的所有对象,但是你每次尝试都会看到一个异常接收这些对象之一。

我不明白 RMI 服务器和 RMI 注册表之间的区别。我以为它们是同一回事。如果 RMI Registry 不是某种服务器,它如何工作?

java rmi distributed-computing

3
推荐指数
1
解决办法
5379
查看次数

使用 Dask 从文件系统/S3 并行读取文件块?

我正在整理一个概念证明,其中我想使用 PyCuda 在分布式环境中处理大型字符数据文件(每个任务一个文件中约 8GB) - 具体来说是 AWS。我知道 HDFS 会对数据文件进行分段并将其分发给工作人员,但我试图让我的环境尽可能简单,并且如果我不需要,我宁愿不必安装 Hadoop。

我最近观看了 Continuum Analytics 的一些关于他们的 Dask 框架的网络研讨会,看起来它可以完全满足我的需求。鉴于上述段落和 Dask 框架,当前对文件系统的推荐是什么?我是坚持使用 HDFS 还是有更好/更简单的解决方案?

distributed-computing dask

3
推荐指数
1
解决办法
1627
查看次数

zookeeper 中的“观察者”节点可以以陈旧的结果响应吗?

这个问题是参考https://zookeeper.apache.org/doc/trunk/zookeeperObservers.html

观察员是一个集合的无投票权成员,他们只听到投票结果,而不是导致投票结果的协议协议。除了这个简单的区别之外,观察者的功能与追随者完全相同——客户端可以连接到它们并向它们发送读取和写入请求。观察者像追随者一样将这些请求转发给领导者,但他们只是等待听到投票结果。因此,我们可以在不损害投票性能的情况下,随心所欲地增加观察者的数量。

观察者还有其他优势。因为它们不投票,所以它们不是 ZooKeeper 集合的关键部分。因此,它们可能会失败,或与集群断开连接,而不会损害 ZooKeeper 服务的可用性。对用户的好处是观察者可以通过比追随者更不可靠的网络链接进行连接。事实上,观察者可用于与来自另一个数据中心的 ZooKeeper 服务器通信。Observer 的客户端将看到快速读取,因为所有读取都在本地提供,并且写入导致最小的网络流量,因为在没有投票协议的情况下所需的消息数量较少。

1)合奏团的无投票权成员- 有投票权的成员投票什么?

2)观察者的更新请求是如何工作的- 当 ZK 领导者收到更新请求时,它需要法定人数的节点来响应。观察者节点似乎不被视为法定节点。这是否意味着观察者节点在更新方面落后于领导者节点?如果这是真的,它如何确保观察者节点在读取过程中不响应陈旧数据?

3)观察者的客户端将看到快速读取,因为所有读取都是在本地提供的,并且写入导致最小的网络流量,因为在没有投票协议的情况下所需的消息数量较少- 来自所有其他节点的读取也将是本地只是因为它们与领导者同步,不是吗?我没有得到关于写入的部分。

这些问题应该有助于理解zookeeper和分布式系统。感谢这些问题的详细答案。提前致谢 !

distributed-computing apache-zookeeper

3
推荐指数
1
解决办法
1829
查看次数

Hazelcast:在集群上部署的正确方法

在一台 REST 服务器和 5 台工作机器集群上部署 Hazelcast 的正确方法是什么?我应该HazelcastClient在 REST 服务器上启动 Hazelcast 5 个服务器实例(每个 worker 一个)和 1 个吗?

我有

  • 一台 REST 服务器机器,处理所有用户请求;
  • 集群中的五台工作机器,每台机器都在本地文件系统中保存一些数据。这些数据肯定很大,无法将它们保存在 RAM 中,我只需要 Hazelcast 通过集群分发我的搜索查询。

我想要

根据用户请求,搜索 5 台工作机器中的每台机器的数据并将结果返回给用户。用户请求将被 REST-server 机器接受,然后 REST-server 将搜索发送MultiTask到集群中的每个 worker。就像是:

public MySearchResult handleUserSearchRequest(String query) {
    MultiTask<String> task = new MultiTask<String>(query, Hazelcast.getCluster().getMembers());
    ExecutorService executorService = Hazelcast.getExecutorService();
    executorService.execute(task);
    Collection<String> results = task.get();
    return results.stream().reduce(/*some logic*/);
}
Run Code Online (Sandbox Code Playgroud)

聚苯乙烯

如何从一个地方启动所有 6 个 Hazelcast 实例(Spring Boot 应用程序)?

java configuration distributed-computing hazelcast

3
推荐指数
1
解决办法
2192
查看次数

你如何在 Julia 的函数中加载模块@everywhere

在使用addprocs. 当addprocs在顶层调用时,一切都很好。但是,当我将代码包装在函数中时,我无法做同样的事情。

就我而言,我正在动态添加工作人员,因此@everywhere using XXX始终在顶层调用是不可行的,我需要在函数内部执行此操作。

简而言之,这有效:

addprocs(1)
@everywhere using XXX
Run Code Online (Sandbox Code Playgroud)

而这不会:

function myaddprocs()
    addprocs(1)
    @everywhere using XXX
end
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

module distributed-computing julia

3
推荐指数
1
解决办法
1006
查看次数

SOA 和微服务有什么区别

好的,据我所知,SOA 和微服务中的模块应该是独立的和可重用的。但是 SOA 和微服务的真正区别是什么?

soa distributed-computing web microservices

3
推荐指数
2
解决办法
2023
查看次数

为什么要使用 tf.train.Server 并行执行多个 tf.Session() ?

执行多个官方方式tf.Session()并联是利用tf.train.Server如上述分布式TensorFlow 。另一方面,根据Keras + Tensorflow 和 Python 中的多处理,以下内容适用于 Keras,并且可以在不使用 tf.train.Server 的情况下将其修改为 Tensorflow 。

def _training_worker(train_params):
    import keras
    model = obtain_model(train_params)
    model.fit(train_params)
    send_message_to_main_process(...)

def train_new_model(train_params):
    training_process = multiprocessing.Process(target=_training_worker, args = train_params)
    training_process.start()
    get_message_from_training_process(...)
    training_process.join()
Run Code Online (Sandbox Code Playgroud)

第一种方法比第二种方法快吗?我有一个用第二种方式编写的代码,由于我的算法 (AlphaZero) 的性质,单个 GPU 应该运行多个进程,每个进程都执行对小批量的预测。

python parallel-processing distributed-computing multiprocessing tensorflow

3
推荐指数
1
解决办法
1247
查看次数

Raft共识算法是拜占庭式容错(bft)算法吗?

筏共识算法是拜占庭容错算法吗?

达成共识/共识需要多少个节点(百分比)?

distributed-computing consensus raft

3
推荐指数
1
解决办法
1740
查看次数