我有一个mac mini,我在其上做了一些iphone和其他实验开发.构建我尝试过的一些较大的项目(比如3d引擎等)是非常缓慢的.对distcc的分布式构建有一些支持,我有一个四核linux盒子只是闲置在它旁边.
问题是:是否可以在linux盒子上设置一个distcc环境来构建普通的mac objective c或c ++项目,甚至是iphone项目?有没有人尝试/成功这样做,还是只是不可能?
也许不是正确的发布地点.但是,无论如何我还是要去尝试!
我有几个我创建的测试python解析脚本.他们的工作足以让我测试我正在做的事情.
但是,我最近遇到了用于网页抓取的python框架Scrapy.我的应用程序在分布式进程中运行,跨多个服务器的测试平台.我正在努力理解scrapy,看看它是否比我正在做的事情带来好处.
所以,如果可能的话,我真的想和一些基于/或使用scrapy的人交谈.
我正在研究一种基于回合制的网络游戏,它将在服务器上执行所有世界更新(玩家命令,物理,脚本事件等).现在,我可以简单地在Web请求回调中更新世界.不幸的是,这种天真的方法根本不具备可扩展性.当我开始运行许多并发游戏时,我不想让我的网络服务器陷入困境.
那么将负载与Web服务器分离的最佳方法是什么,理想情况下甚至可以在单独的机器上运行?
我还想通过使用相同的模型层来最小化代码重复.这可能意味着我的服务需要访问Django模型代码,因此这肯定决定了我如何构建服务.
请在数据库管理,信息系统,数据挖掘等方面推荐您认为最重要或最喜欢的论文.
以下是我认为是重要里程碑的几对:
周围有什么 - Michael Stonebraker,Joseph M. Hellerstein
Brewer的猜想以及一致,可用,分区容忍的Web服务的可行性
分布式系统中崩溃恢复的形式模型 - Skeen,D.Stonebraker,M
我有一个周期性的任务,我需要在EC2上运行.此任务运行时间不会超过10分钟,我不想最终支付此任务将闲置的其他50分钟.根据我的理解,如果我启动一个实例并运行此任务,无论我是否使用任何资源,我都会收取使用费用.所以我希望每60分钟左右在以下几行做一些事情(只是一个高级草图):
def invokeTimer(i):
if timer(i) expired:
copyDataFromNode(i)
killNode(i)
while True:
for i in range(1,10):
startNode(i)
# Allow the node to boot up
startScript(i)
invokeTimer(i)
sleep(60000)
Run Code Online (Sandbox Code Playgroud)
假设我能够传达我的想法,是否有一种很好的方式以干净的方式实现这一点,或者可能是一个可能有帮助的教程?
我们在Restlet框架上构建了一个基于REST的应用程序,它支持CRUD操作.它使用本地文件来存储数据.
现在要求是在多个VM上部署此应用程序,并且一个VM中的任何更新操作都需要传播在其他VM上运行的其他应用程序实例.
我们解决这个问题的想法是在给定VM中发生更新操作时发送多个POST消息(对所有其他应用程序).这里假设每个应用程序都有一个所有其他应用程序的列表/ URL.
有没有更好的方法来解决这个问题?
我正在研究RabbitMQ分布式POC,我坚持集群节点的基础知识.
我正在尝试按照兔子的群集教程进行操作,这是我的参考.
在安装了erlang(R14B04)和rabbit(2.8.2-1)后,我将.erlang.cookie文件内容从一个节点复制到另外两个节点.
我不知道如何让erlang注意到这个改变我必须重新启动机器本身(相当蛮力,但我根本不知道erlang).
另外,我在iptables 4369和另外5个端口进行通信,并放置在
/usr/lib64/erlang/bin/sys.config以下配置下:
{kernel,[{inet_dist_listen_min, XX00},{inet_dist_listen_max,XX05}]}]
Run Code Online (Sandbox Code Playgroud)
然后另一次重启(我知道愚蠢)以验证erlang考虑到这些,但仍然在我运行时:
rabbitmqctl cluster rabbit@HostName1
Run Code Online (Sandbox Code Playgroud)
我明白了:
Clustering node rabbit@HostName2 with [rabbit@HostName1] ...
Error: {no_running_cluster_nodes,[rabbit@HostName1],
[rabbit@HostName1]}
Run Code Online (Sandbox Code Playgroud)
我有可能摆弄erlang.cookie或端口没有成功,但我不知道如何检查它们.我尝试输入erlcmd然后erl_epmd:names()或其他命令来获取更多信息,但我可能在erlang土地上离开了.
真的很感激任何帮助
更新:
我尝试手动ping两个erlang节点并pang返回.
我做了以下操作:
连接到两个节点,停止rabbitmq(不确定是否需要,但确定),启动erlang就像这样(erl -sname dilbert和erl -sname dilbert2)当erlang命令行启动时我node().在每个节点上运行dilbert@HostName1并dilbert2@HostName2分别获得.然后我尝试使用单引号运行net_adm:ping('dilbert').并且net_adm:ping('dilbert@HostName1').没有它们来自两个节点(当然更改了名称)并且完成了所有8个案例pang.
当我nodes().在其中一台机器上运行时,我得到了一个空数组.
我还尝试允许防火墙中的所有流量(脚本),然后尝试运行上面的命令(不要担心它们现在又回来了)并且仍然回来了pang.
Update2:
由于某些原因,我需要解决cookie不匹配问题(感谢@ kjw0188的建议[我erlang:get_cookie().在erlang命令行中运行]).
这没有帮助,我需要完全停止iptables(不知道为什么,但我很快就会-name dilbert@my-ip想到)并加载erlang节点,因为我的rackspace服务器没有dns-name.这最终使我得到了一个乒乓球并看到节点相互看到(nodes().在ping之后返回一个非空数组).
我现在面临的问题是如何在启动erlang时指示RabbitMQ使用-name而不是-sname.
我需要为我的应用程序提供分布式锁实现.我有许多独立的工作流程,我需要强制执行限制,他们一次只能在一个帐户上工作.
该应用程序使用mongo db层在c#中编写.我注意到mongo的集群平衡器使用分布式锁定机制来控制哪些mongos正在进行平衡,我想知道我是否可以在我的应用程序中重用相同的机制?
我宁愿没有实现我自己的分布式锁机制的开销,因为所有的工作进程都使用mongo进行接口处理,所以如果我可以重用它们的实现那将是很好的.
我的工作是为静态图像/视频文件设计分布式系统.数据大小约为数十TB.它主要用于HTTP访问(因此不对数据进行处理;或者只进行简单的处理,例如调整大小 - 但这并不重要,因为它可以直接在应用程序中完成).
为了更清楚一点,它是一个系统:
我正在考虑:
本机网络文件系统:但似乎不可行,因为数据无法放入一台机器.
Hadoop文件系统.之前我使用过Hadoop mapreduce,但我没有使用Hadoop作为HTTP请求的静态文件存储库的经验.所以我不知道它是否可能或是否是推荐的方式.
MogileFS.这似乎很有希望,但我觉得使用MySQL来管理本地文件(在一台机器上)会产生太多的开销.
有什么建议吗?
我有test.py如下Python代码,它使用分布式Tensorflow的"Between-graph Replication":
import argparse
import logging
import tensorflow as tf
log = logging.getLogger(__name__)
# Job Names
PARAMETER_SERVER = "ps"
WORKER_SERVER = "worker"
# Cluster Details
CLUSTER_SPEC = {
PARAMETER_SERVER: ["localhost:2222"],
WORKER_SERVER: ["localhost:1111", "localhost:1112"]}
def parse_command_arguments():
""" Set up and parse the command line arguments passed for experiment. """
parser = argparse.ArgumentParser(
description="Parameters and Arguments for the Test.")
parser.add_argument(
"--job_name",
type=str,
default="",
help="One of 'ps', 'worker'"
)
# Flags for defining the tf.train.Server
parser.add_argument(
"--task_index",
type=int,
default=0,
help="Index of …Run Code Online (Sandbox Code Playgroud) distributed ×10
python ×4
amazon-ec2 ×1
build ×1
connectivity ×1
data-mining ×1
database ×1
django ×1
erlang ×1
hadoop ×1
linux ×1
locking ×1
mapreduce ×1
mongodb ×1
objective-c ×1
python-3.x ×1
rabbitmq ×1
rest ×1
scalability ×1
scrapy ×1
service ×1
tensorflow ×1
web-crawler ×1
weed-fs ×1
xcode ×1