mesos上的独立spark集群访问不同hadoop集群中的hdfs数据

mznpcxlj  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(508)

我们有一个hadoop集群,datanodes有275个节点(55tb总内存,12000个vcore)。这个集群与几个项目共享,我们有一个Yarn队列分配给我们,资源有限。
为了提高性能,我们正在考虑为我们的项目构建一个单独的spark集群(在同一网络中的mesos上),并在hadoop集群上访问hdfs数据。
如spark文件所述:https://spark.apache.org/docs/latest/spark-standalone.html#running-与hadoop并驾齐驱
我的问题是:
这难道不违背hadoop的哲学:“将计算转移到数据”吗?
为了获得最佳性能,新的spark群集需要多少节点?
--编辑--
我想知道数据加载是怎么发生的。例如,如果我对一个表执行sparksql查询,它是否通过从hadoop集群加载数据在mesos spark集群中创建rdd,然后对生成的rdd进行处理?这种跨集群数据io不影响性能吗?由于通常在YarnSpark设置中,RDD和数据位于相同的节点中。

ebdffaop

ebdffaop1#

这难道不违背hadoop的哲学:“将计算转移到数据”吗?
一般来说是的。尤其是当这些节点位于不同的数据中心时。越近越好。现在,我看到他们在同一个网络中:
论同一网络中的Mesos
测量机器之间的延迟。只有这样你才能判断它是好是坏。
为了获得最佳性能,新的spark群集需要多少节点?
最适合谁?这只取决于你的用例。
例如,如果我对一个表执行sparksql查询,它是否通过从hadoop集群加载数据在mesos spark集群中创建rdd,然后对生成的rdd进行处理?
是的,尽管它不是一个固定的进程“读取所有内容然后再处理它”——它不断地读取、处理然后写下“部分结果”,因为正如您可能猜到的,它不能在内存中加载1 tb的数据。
这种跨集群数据io不影响性能吗?由于通常在YarnSpark设置中,RDD和数据位于相同的节点中。
一定地!然而,正如我已经提到的,如果您想要更精确的估计,您至少应该测量这个网络中节点之间的延迟——也许有些节点比其他节点更接近hdfs机器。
如果没有测量(无论是延迟、性能测试等)和对网络拓扑的仔细分析,这纯粹是猜测。

相关问题