为什么没有任何Javascript分布式计算框架/项目?这个想法对我来说非常棒,因为:
请分享您对此主题的看法.
编辑:另外,您认为哪种问题适合JSDC?
例如,GIMPS无法实现.
Google已经描述了一种用于Massive Graphs的分布式处理的新颖框架.
http://portal.acm.org/citation.cfm?id=1582716.1582723
我想知道是否有类似于Hadoop(Map-Reduce)的这个框架的任何开源实现?
我实际上正在使用python和多处理模块编写一个伪分布的,因此想知道其他人是否也尝试过实现它.由于关于这个框架的公共信息非常稀缺.(上面的链接和Google Research的博客文章)
当使用spark-1.6.2和pyspark时,我看到了这个:
您可以看到活动任务是否为负数(总任务与已完成任务的差异).
这个错误的来源是什么?
节点我有很多执行者.但是,似乎有一项任务似乎已经空闲(我没有看到任何进展),而另一项相同的任务正常完成.
这也是相关的:邮件我可以确认正在创建许多任务,因为我使用的是1k或2k执行程序.
我得到的错误有点不同:
16/08/15 20:03:38 ERROR LiveListenerBus: Dropping SparkListenerEvent because no remaining room in event queue. This likely means one of the SparkListeners is too slow and cannot keep up with the rate at which tasks are being started by the scheduler.
16/08/15 20:07:18 WARN TaskSetManager: Lost task 20652.0 in stage 4.0 (TID 116652, myfoo.com): FetchFailed(BlockManagerId(61, mybar.com, 7337), shuffleId=0, mapId=328, reduceId=20652, message=
org.apache.spark.shuffle.FetchFailedException: java.util.concurrent.TimeoutException: Timeout waiting for …Run Code Online (Sandbox Code Playgroud) 该裁判说:
每个Spark操作的所有分区的序列化结果的总大小限制(例如,收集).应至少为1M,或0为无限制.如果总大小超过此限制,则将中止作业.具有高限制可能会导致驱动程序中出现内存不足错误(取决于spark.driver.memory和JVM中对象的内存开销).设置适当的限制可以保护驱动程序免受内存不足错误的影响.
这个属性究竟做了什么?我的意思是起初(因为我不是因为内存错误而失败的工作)我认为我应该增加它.
第二个想法,似乎这个属性定义了一个worker可以发送给驱动程序的结果的最大大小,所以将它保留为默认值(1G)将是保护驱动程序的最佳方法.
但是在这种情况下会发生,工作人员将不得不发送更多的消息,因此开销将只是工作会更慢?
如果我理解正确,假设一个工人想要向驱动程序发送4G数据,那么拥有spark.driver.maxResultSize=1G,将导致工作人员发送4条消息(而不是1条无限制spark.driver.maxResultSize).如果是这样,那么增加该属性以保护我的驱动程序不被Yarn暗杀应该是错误的.
但是上面的问题仍然存在......我的意思是如果我将它设置为1M(最小值),它会是最具保护性的方法吗?
configuration communication driver distributed-computing apache-spark
我想知道是否有人可以用外行的话来解释分布式系统中事件的部分排序?另外,什么是总排序?
我真的很感激.我在网上看到了所有我能找到的是定义部分和总排序的数学方程式,但不是在分布式系统的上下文中.
非常感谢
我知道有类似的问题,例如:
但我问这个问题是因为我正在寻找一个更具特色的区别,请用几个用例来支持.
所以,我是一个python用户想要制作以下两者之一的程序:
在一台机器上完成,并在多台机器上处理它们.我熟悉python中的(单机)多处理软件包,我现在正在编写mapreduce样式代码.我知道我的功能很容易并行化.
在询问我常见的智能CS建议提供者时,我的问题是:
"我想接受一项任务,将其分成一堆在一堆机器上同时执行的子任务,然后将这些结果聚合并根据其他一些功能处理,这可能是一个减少,或者可能是指令例如,串行添加到数据库."
根据我的用例的分解,我认为我同样可以使用Hadoop或一组Celery工作者+ RabbitMQ经纪人.然而,当我问圣人的建议提供者时,他们回应我,好像我完全疯狂地将Hadoop和Celery视为可比较的解决方案.我已经阅读了很多关于Hadoop的内容,以及关于Celery的内容---我认为我对两者的作用都有很好的把握 - 我似乎不明白的是:
我知道Hadoop是大数据标准,但Celery也看起来很受支持; 我感谢它不是java(流式API python必须用于hadoop看起来对我不舒服),所以我倾向于使用Celery选项.
我知道您可以使用Python Spark程序将各个文件作为依赖项发送.但是完全成熟的图书馆(例如numpy)呢?
Spark是否有办法使用提供的包管理器(例如pip)来安装库依赖项?或者这是否必须在执行Spark程序之前手动完成?
如果答案是手动的,那么在大量分布式节点上同步库(安装路径,版本等)的"最佳实践"方法是什么?
dependencies hadoop distributed-computing shared-libraries apache-spark
关于RDBMS在CAP定理中是CA的两点我不明白:
1)它说RDBMS 不是 分区容忍但是RDBMS如何比MongoDB或Cassandra等其他技术更少分区容忍?是否存在RDBMS设置,我们放弃CA以使其成为AP或CP?
2)CAP如何可用?是通过主从设置吗?在主机死机时,从机接管写入?
我是DB架构和CAP定理的新手所以请耐心等待.
rdbms distributed-computing distributed-system nosql cap-theorem
Spark-land中有几个相似但又不同的概念,围绕着如何将工作分配到不同的节点并同时执行.具体来说,有:
sparkDriverCount)numWorkerNodes)numExecutors)dataFrame)dataFrame(numDFRows)中的行数dataFrame(numPartitions)上的分区数numCpuCoresPerWorker)我相信所有Spark集群都有一个且只有一个 Spark Driver,然后是0+个工作节点.如果我错了,请先纠正我!假设我或多或少是正确的,让我们在这里锁定一些变量.假设我们有一个带有1个驱动程序和4个工作节点的Spark集群,每个工作节点上有4个CPU核心(因此总共有16个CPU核心).所以这里的"给定"是:
sparkDriverCount = 1
numWorkerNodes = 4
numCpuCores = numWorkerNodes * numCpuCoresPerWorker = 4 * 4 = 16
Run Code Online (Sandbox Code Playgroud)
鉴于作为设置,我想知道如何确定一些事情.特别:
numWorkerNodes和之间有什么关系numExecutors?是否有一些已知/普遍接受的工人与遗嘱执行人的比例?有没有办法确定numExecutors给定numWorkerNodes(或任何其他输入)?numDFRows为numPartitions?如何根据dataFrame?的大小计算"最佳"分区数?numPartitions = numWorkerNodes * numCpuCoresPerWorker那有什么道理吗?换句话说,它规定每个CPU核心应该有一个分区.partitioning distributed-computing bigdata apache-spark spark-dataframe
我见过多个有关以下问题的问题:
RuntimeError: NCCL error in: /opt/conda/conda-bld/pytorch_1614378083779/work/torch/lib/c10d/ProcessGroupNCCL.cpp:825, unhandled cuda error, NCCL version 2.7.8
ncclUnhandledCudaError: Call to CUDA function failed.
Run Code Online (Sandbox Code Playgroud)
但似乎没有人能帮我解决这个问题:
我尝试torch.cuda.set_device(device)在每个脚本的开头手动执行。这似乎对我不起作用。我尝试过不同的 GPU。我尝试过降级pytorch版本和cuda版本。1.6.0、1.7.1、1.8.0 和 cuda 10.2、11.0、11.1 的不同组合。我不确定还能做什么。人们做了什么来解决这个问题?
也许非常相关?
更完整的错误消息:
('jobid', 4852)
('slurm_jobid', -1)
('slurm_array_task_id', -1)
('condor_jobid', 4852)
('current_time', 'Mar25_16-27-35')
('tb_dir', PosixPath('/home/miranda9/data/logs/logs_Mar25_16-27-35_jobid_4852/tb'))
('gpu_name', 'GeForce GTX TITAN X')
('PID', '30688')
torch.cuda.device_count()=2
opts.world_size=2
ABOUT TO SPAWN WORKERS
done setting sharing strategy...next mp.spawn
INFO:root:Added key: store_based_barrier_key:1 to store for rank: 1
INFO:root:Added key: store_based_barrier_key:1 to store …Run Code Online (Sandbox Code Playgroud) apache-spark ×4
hadoop ×4
bigdata ×2
python ×2
ajax ×1
cap-theorem ×1
celery ×1
dependencies ×1
driver ×1
graph ×1
javascript ×1
nosql ×1
partitioning ×1
pytorch ×1
rabbitmq ×1
rdbms ×1