数据位置如何与IBM Bluemix上的OpenStack Swift一起使用?

时间:2015-09-14 20:38:57

标签: apache-spark ibm-cloud openstack-swift

我目前正在使用IBM Bluemix中的Apache Spark Service。由于IBM Cloud依赖OpenStack Swift作为此服务的数据存储,我想知道该架构是否存在任何数据位置(至少可能)。

如果我使用HDFS,SparkDriver会向HDFS namenode询问包含文件各个块的datanode,然后将工作安排到SparkWorkers。

所以我检查了Swift API有一个Range参数,它允许SparkWorker至少只读取本地块,但SparkDriver如何找出这些范围?

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这是计算和存储的分解。也就是说,火花计算节点根本不与快速群集存储节点共享。这为与存储分开的计算的可扩展性带来了好处,反之亦然。但是在这个模型中,根据定义,你不能拥有数据局部性。因此,粗略地说,这是如何工作的,每个火花执行器都可以从快速集群中拉出自己的对象块范围,这样每个执行器都不需要拉入所有对象数据,只能在它自己的部分上运行;这将是低效的。但是仍然从远程swift集群中拉出块,然后不是本地的。这里唯一的问题是将块拉入每个执行器需要多长时间,这样就不会减慢你的速度。对于Bluemix Apache Spark服务和Bluemix或Softlayer对象存储服务,它们之间存在低延迟和快速网络。

re:"由于IBM Cloud依赖OpenStack Swift作为此服务的数据存储"。随着测试版的推进,spark服务将提供其他数据源,因此不会100%依赖。