将 Apache Spark 与 HDFS 结合使用与其他分布式存储
Using Apache Spark with HDFS vs. other distributed storage
在 Spark 的常见问题解答中,它特别指出不必使用 HDFS:
Do I need Hadoop to run Spark?
No, but if you run on a cluster, you will need some form of shared file system (for example, NFS mounted at the same path on each node). If you have this type of filesystem, you can just deploy Spark in standalone mode.
那么,如果我不打算使用 Hadoop MapReduce,那么将 Apache Spark 与 HDFS 结合使用与其他分布式文件系统(例如 NFS)相比,advantages/disadvantages 有什么好处?如果我使用 NFS 而不是 HDFS 进行节点存储(用于检查点、随机溢出等),我是否会缺少一项重要功能?
经过几个月的 NFS 和 HDFS 体验后,我现在可以回答我自己的问题了:
NFS 允许 view/change 远程机器上的文件,就好像它们存储在本地机器上一样。
HDFS 也可以做到这一点,但它是分布式的(与 NFS 相对)并且具有容错性和可扩展性。
使用 NFS 的优点是设置简单,因此我可能会将其用于 QA 环境或小型集群。
HDFS 的优势当然是它的容错性,但恕我直言,更大的优势是当 HDFS 与 Spark 节点位于同一位置时能够利用局部性,从而为检查点、洗牌溢出等提供最佳性能
在 Spark 的常见问题解答中,它特别指出不必使用 HDFS:
Do I need Hadoop to run Spark?
No, but if you run on a cluster, you will need some form of shared file system (for example, NFS mounted at the same path on each node). If you have this type of filesystem, you can just deploy Spark in standalone mode.
那么,如果我不打算使用 Hadoop MapReduce,那么将 Apache Spark 与 HDFS 结合使用与其他分布式文件系统(例如 NFS)相比,advantages/disadvantages 有什么好处?如果我使用 NFS 而不是 HDFS 进行节点存储(用于检查点、随机溢出等),我是否会缺少一项重要功能?
经过几个月的 NFS 和 HDFS 体验后,我现在可以回答我自己的问题了:
NFS 允许 view/change 远程机器上的文件,就好像它们存储在本地机器上一样。 HDFS 也可以做到这一点,但它是分布式的(与 NFS 相对)并且具有容错性和可扩展性。
使用 NFS 的优点是设置简单,因此我可能会将其用于 QA 环境或小型集群。 HDFS 的优势当然是它的容错性,但恕我直言,更大的优势是当 HDFS 与 Spark 节点位于同一位置时能够利用局部性,从而为检查点、洗牌溢出等提供最佳性能