SparkSession 在本地独立集群上花费的时间太长

Posted

技术标签:

【中文标题】SparkSession 在本地独立集群上花费的时间太长【英文标题】:SparkSession taking too long on a local standalone cluster 【发布时间】:2017-09-08 14:32:35 【问题描述】:

我对大数据很陌生,目前我正在学习 Apache Spark。我已经创建了一个独立集群,在同一台机器上有一个主服务器和一个从服务器。 SPARK_WORKER_MEMORY 设置为“1g”,SPARK_LOCAL_IP 指向我的 IP 地址。所以,我写了一个python代码来简单地创建一个SparkSession:

from pyspark.sql import SparkSession
from time import time

def main( ):
    start_time = time( )
    sparkSession = ( SparkSession.builder
                                 .master( "spark://nilson:7077" )
                                 .appName( "pyclient" )
                                 .config( "spark.executor.memory", "512m" )
                                 .getOrCreate( ) )

    elapsed_time = time( ) - start_time

    print ("\n\nelapsed time: %.4gs" %elapsed_time)
    return

if __name__ == '__main__':
    main( )

如您所见,这需要将近 6 秒 here

所以,我的问题是:

真的需要这个时间还是我的环境变量中缺少某些东西?

我还尝试读取一个仅包含两行数据的简单 json 文件。整个过程花了将近 13 秒的时间打开它并打印它的内容。

谢谢。

【问题讨论】:

是的,这是意料之中的。有很多后台进程 spark 运行来执行你的代码,设置 root 日志级别为 debug 以打印所有进程日志。 【参考方案1】:

Spark 是用于大规模数据处理的引擎,它会在启动作业之前完成许多小型工作,而这些工作由于记录器配置而看不到。无论数据大小如何,它都会运行初始设置步骤。

您可以通过将记录器级别更改为 :ALL、DEBUG、ERROR、INFO、OFF、WARN 来开始浏览这些内部日志

例如sc.setLogLevel("ERROR") #default

【讨论】:

以上是关于SparkSession 在本地独立集群上花费的时间太长的主要内容,如果未能解决你的问题,请参考以下文章

Spark 在本地机器而不是独立集群中运行

Spark 独立集群轮胎访问本地 python.exe

用idea调试Spark独立集群

如何拆除 SparkSession 并在一个应用程序中创建一个新的?

2.Flink安装部署Local本地模式-了解Standalone独立集群模式Standalone-HA高可用集群模式(原理|操作|测试)

Spark 独立集群 - 从站未连接到主站