我从来没有使用过消息传递接口(MPI),但我听说过它的名字,最近才发布了Windows HPC Server.我快速浏览一下亚马逊,看看是否有任何书籍,但它们都是在7年或更久以前的日期.MPI仍然是新应用程序的有效技术选择,还是被其他分布式编程替代品(例如DataSynapse GridServer)取代?
因为它不是一个实现,而是一个标准,学习它的可能性(假设它没有死)将导致更好的分布式编程系统设计?还有什么我应该看的东西吗?
我已经完全按照Bruce Snyder 的这篇文章建立了一个经纪人网络:
经纪人1:
<networkConnector name="amq1-nc"
uri="static:(tcp://localhost:61617)"
userName="system"
password="manager"
/>
Run Code Online (Sandbox Code Playgroud)
经纪人2:
<networkConnector name="amq2-nc"
uri="static:(tcp://localhost:61616)"
userName="system"
password="manager"
/>
Run Code Online (Sandbox Code Playgroud)
我在经纪人的配置 XML 的经纪人标签中都有 AdvisorySupport="false" 并启动了两个经纪人。
然后我使用以下命令启动了消费者:
ant consumer -Durl=tcp://0.0.0.0:61616
Run Code Online (Sandbox Code Playgroud)
最后使用以下命令启动生产者:
ant producer -Durl=tcp://0.0.0.0:61617
Run Code Online (Sandbox Code Playgroud)
所有生成的消息然后在端口 61617 上运行的代理上进入挂起状态,而在端口 61616 上连接的消费者永远不会收到消息。
经纪人网络是否会在未启用advisorySupport 的情况下停止转发消息?我认为这是在最近的版本中修复的。(我使用的是 activemq 5.4.2 版本)。
代理的 ActiveMQ 静态网络是否停止转发消息advisorySupport 被禁用?
更新: 我在使用advisorySupport="false" 和staticallyIncludedDestinations 时遇到了问题。
我们主要使用 JMS 进行请求-响应,如下所述:http : //activemq.apache.org/how-should-i-implement-request-response-with-jms.html
我们在生产者端使用了一个临时队列,以便能够接收来自消费者的响应,并且由于 staticallyIncludedDestinations 不能在其中包含这些临时队列名称,因此,当禁用了 advisorSupport 时,所有生产者都无法从客户端接收响应。
我得出的结论是,对于我们的方案,advisorySupport 不能关闭,除非有一些我不知道的其他配置技巧。
我在初始启动mysql-cluster管理节点时遇到了问题,并且非常感谢我能解决这个问题.请参阅我的两个失败示例,然后是我的config.ini文件.第一个示例显示了启动守护程序的基本命令及其产生的错误.第二次尝试跳过我认为在第一次引起错误的过程,但只导致一个不同的错误(我找不到解决方案).
〜$ ndb_mgmd -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql - 5.5.25 ndb-7.2.7 2012-07-27 16:44:51 [MgmtSrvr] INFO - 默认配置目录'/ user/local/mysql/mysql-cluster'不存在.试图创建它...无法创建目录'/ usr/local/mysql/mysql-cluster',错误:2 2012-07-27 16:44:51 [MgmtSrvr]错误 - 无法创建目录'/ usr /本地/ MySQL的/ MySQL的群集".手动创建它或使用--configdir =指定不同的目录
〜$ ndb_mgmd --skip-config-cache -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql - 5.5.25 ndb-7.2.7 2012-07-27 16:44:51 [MgmtSrvr ] INFO - 由于禁用了配置缓存,因此跳过了对配置目录的检查.无法解析日志处理程序的参数:'FILE:filename =/var/lib/mysql-cluster/ndb_1_cluster.log,maxsize = 1000000,maxfiles = 6',错误:13'(null)'
/var/lib/mysql-cluster/config.ini:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate … 我正在提交一份 slurm 玩具阵列作业。我的命令行是
$ sbatch -p development -t 0:30:0 -n 1 -a 1-2 j1
Run Code Online (Sandbox Code Playgroud)
其中 j1 是脚本:
#!/bin/bash
echo job id is $SLURM_JOB_ID
echo array job id is $SLURM_ARRAY_JOB_ID
echo task id id $SLURM_ARRAY_TASK_ID
Run Code Online (Sandbox Code Playgroud)
当我提交这个时,我收到一个错误:
--> Verifying valid submit host (login1)...OK
--> Verifying valid jobname...OK
--> Enforcing max jobs per user...OK
--> Verifying availability of your home dir (/home1/03400/myname)...OK
--> Verifying availability of your work dir (/work/03400/myname)...OK
--> Verifying availability of your scratch dir (/scratch/03400/myname)...OK
--> Verifying valid ssh keys...OK …Run Code Online (Sandbox Code Playgroud) 我是领事的新手,目前正在试验它。我根据这篇文章设置了集群:https : //www.digitalocean.com/community/tutorials/an-introduction-to-using-consul-a-service-discovery-system-on-ubuntu-14-04 all代理处于“服务器”模式。然而,这个集群相当不稳定。当我在服务器上输入“exec consul members”命令时,我总是可以看到许多其他服务器处于“失败”状态(有时它们会恢复活动但很快又会失败)。我猜也许在编写配置文件时有一些技巧。
我使用 AWS EC2 实例来运行这些 consul 代理。
谢谢!约里克
给定一个包含 N 个节点(数千个)的图,我需要找到 K 个节点,以便使 K 的每对 (K1,K2) 之间的平均路径长度最大化。所以基本上,我想让它们尽可能远离彼此。
我将为此使用哪种算法/如何编程而不必尝试 K 的几个单一组合?
也作为扩展:如果我现在有 N 个节点,并且我需要在图中放置 2 组节点 K 和 L,以使每对 (L,K) 之间的平均路径长度最大化,我该怎么做?
我目前的尝试是只做几个随机放置,然后计算 K 和 L 对之间的平均路径长度,但这个计算开始需要很多时间,所以我不想花那么多时间只是评估随机选择的组合。我宁愿花时间获得真正最广泛的组合。
有没有什么算法可以解决这个问题?
我有一个大型数据集,我试图用Apache Spark运行(大约5TB).我注意到,当作业开始时,它会非常快速地检索数据,并且作业的第一阶段(map转换)非常快速地完成.
但是,在处理了大约500GB的数据之后,这种map转换开始变慢,一些任务需要几分钟甚至几小时才能完成.
我正在使用10台机器,122 GB和16CPU,我正在为每个工作节点分配所有资源.我想过增加机器的数量,但还有其他的东西我可能会丢失吗?
我尝试了一小部分数据集(30 GB),似乎工作正常.
performance distributed-computing cluster-computing bigdata apache-spark
嘿,由于某种原因,我的集群 ID 不匹配,我将它放在 1 个节点上,然后在多次清除数据目录、更改集群令牌和节点名称后消失,但在另一个节点上出现
这是我使用的脚本
IP0=10.150.0.1
IP1=10.150.0.2
IP2=10.150.0.3
IP3=10.150.0.4
NODENAME0=node0
NODENAME1=node1
NODENAME2=node2
NODENAME3=node3
# changing these on each box
THISIP=$IP2
THISNODENAME=$NODENAME2
etcd --name $THISNODENAME --initial-advertise-peer-urls http://$THISIP:2380 \
--data-dir /root/etcd-data \
--listen-peer-urls http://$THISIP:2380 \
--listen-client-urls http://$THISIP:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://$THISIP:2379 \
--initial-cluster-token etcd-cluster-2 \
--initial-cluster $NODENAME0=http://$IP0:2380,$NODENAME1=http://$IP1:2380,$NODENAME2=http://$IP2:2380,$NODENAME3=http://$IP3:2380 \
--initial-cluster-state new
Run Code Online (Sandbox Code Playgroud)
我得到
2016-11-11 22:13:12.090515 I | etcdmain: etcd Version: 2.3.7
2016-11-11 22:13:12.090643 N | etcdmain: the server is already initialized as member before, starting as etcd member...
2016-11-11 22:13:12.090713 I | etcdmain: listening …Run Code Online (Sandbox Code Playgroud) 情况
我曾经使用 data.table 而不是 plyr 或 sqldf 在 Rstudio 上工作,因为它非常快。现在,我正在一个 azure 集群上研究 sparkR,如果我现在可以在我的 spark 数据帧上使用 data.table 并且它比 sql 快,我想现在吗?
我将在单节点 NiFi 上工作的流移动到 3 节点 NiFi 集群,突然使用 DistributedMapCache 的等待处理器无法按预期工作,这意味着无法从缓存。为了确保缓存中存在该值,我将缓存配置为使用持久目录,因此我能够检查缓存的内容,经过一些测试后意识到:
另一个测试是强制执行主节点中的流,在这种情况下,一切都按预期进行。
另一个测试是同时从所有节点写入缓存,仅适用于主节点。
所以我的问题是:
apache-spark ×2
algorithm ×1
amazon-ec2 ×1
apache-nifi ×1
bigdata ×1
broker ×1
caching ×1
consul ×1
data.table ×1
distributed ×1
etcd ×1
graph ×1
java ×1
jms ×1
maximize ×1
mpi ×1
mysql ×1
performance ×1
r ×1
slurm ×1
sparkr ×1
startup ×1
was ×1