Apache Spark中的数据本地化是什么



我是apache spark 的新手

我很难理解ApacheSpark中的数据本地化。我试着读了这篇文章https://data-flair.training/blogs/apache-spark-performance-tuning/上面写着";PROCESS_LOCAL";以及";NODE_LOCAL";。是否有我需要配置的设置?有人能举个例子向我解释一下吗?

谢谢,Padd

简单地说,数据局部性意味着在数据所在的节点上进行计算。

只需详细说明:

Spark是集群计算系统。它不是像HDFS或NOSQL那样的存储系统。Spark用于处理存储在这样的分布式系统中的数据。

典型的安装方式是将spark安装在与HDFS/NOSQL相同的节点上。

如果有火花应用程序正在处理存储的HDFS数据。Spark尝试将计算任务放在HDFS块旁边。

使用HDFS时,Spark驱动程序会联系NameNode,了解包含文件或目录的各个块及其位置(表示为InputSplits(的DataNodes(理想情况下为本地(,然后将工作安排给SparkWorkers。

注意:Spark的计算节点/工作程序应该在存储节点上运行。

这就是Spark中数据本地化的实现方式。

优点是通过网络传输的数据较少,因此性能提高。

请尝试以下文章阅读-谷歌中有n个可用的文档可供搜索http://www.russellspitzer.com/2017/09/01/Spark-Locality/https://databricks.gitbooks.io/databricks-spark-knowledge-base/content/performance_optimization/data_locality.html

最新更新