Spark执行器故障/并非所有执行器都同时执行

时间:2019-01-30 08:05:28

标签: python apache-spark pyspark apache-spark-sql

我是pyspark的新手,在执行作业时遇到了一些问题。

我正在将作业发送到具有正确配置的2个执行程序的独立spark实例,有时两个执行程序开始并行工作并正确使用分配的资源,并且Job成功完成。但是有时,只有一个执行程序开始工作,而另一个则在提交最初执行得很好的SAME作业时保持闲置状态。

什么可能是每两个执行者都不执行其功能的问题。

下面是我的代码。

from flask import Blueprint
import time
from pyspark import SparkContext
from pyspark import SQLContext
import pyspark

jl = Blueprint('HelloWorld', __name__, url_prefix='/')

@jl.route('/join')
def join_logic():
    conf = pyspark.SparkConf().setAll([('spark.executor.memory', '24g'), ('spark.executor.cores', '3'), ('spark.worker.memory', '56g'), ('spark.driver.memory','24g'), ('spark.worker.cores', '6'), ('spark.network.timeout', '10000001'), ('spark.executor.heartbeatInterval', '10000000')])

    sc = SparkContext("spark://X.X.X.X:7077","JOB_1", conf=conf)
    sqlContext = SQLContext(sc)

    df = sqlContext.read.format('jdbc').options(
    url='jdbc:mysql://x.x.x.x/schemaName?autoReconnect=true&useSSL=false',
    driver='com.mysql.jdbc.Driver',
    dbtable='table_name',
    user='root',
    password='xxxx').load()

    df1 = sqlContext.read.format('jdbc').options(
    url='jdbc:mysql://X.X.X.X/schema_Name?autoReconnect=true&useSSL=false',
    driver='com.mysql.jdbc.Driver',
    dbtable='Table_Name',
    user='root',
    password='xxxx').load()

    result = df.join(df1, df.column == df1.column, 'left')
    res = result.count()

    sc.stop()
    return str(res);

0 个答案:

没有答案