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 在本地独立集群上花费的时间太长的主要内容,如果未能解决你的问题,请参考以下文章
如何拆除 SparkSession 并在一个应用程序中创建一个新的?
2.Flink安装部署Local本地模式-了解Standalone独立集群模式Standalone-HA高可用集群模式(原理|操作|测试)