如何将编写的py文件提交到spark并在集群下执行job

没学过java的时候用Spark可能一开始就会直接用Python对接,因为如果是创建scala语言的话,会存在很多问题,包括生成scala类或者object,以及最终在idea里面编译成jar包,因为需求紧急,所以就直接用Python来写了,那么将写完的 python文件如果只是在某个集群中的一台机器上运行,那么会发现实际整个运转都是在本地执行的,并没有做到集群运算,所以这里需要使用的就是进入到spark安装目录的bin文件夹下,然后执行以下命令进行运行 。

 ./spark-submit --master spark://master:7077 /data/lin/code/RDD_rdad.py 

 

然后提交后可以在spark master界面看到任务

然后总结下在使用spark集群环境的时候遇到的坑

1. 因为本人是使用的python下的pyspark来进行的调度,那么就需要用到python环境,这里需要注意的就是第一所有集群上的python环境要一致, 

2. 包依赖的问题也是,要一致  

3.提交到集群运行的时候除了在spark-submit中指定外,还可以在.py文件中的sparksession中指明,指定规范如下:

def CreateSparkContext():
    # 构建SparkSession实例对象
    spark = SparkSession.builder \
        .appName("SparkSessionExample") \
        .master("spark://master:7077") \
        .config('spark.executor.memory','16g')\
        .config("spark.executor.cores",'4')\
        .config('spark.cores.max','5')\
        .config('spark.driver.memory','16g')\
        .getOrCreate()

    # 获取SparkContext实例对象
    sc = spark.sparkContext
    return sc

然后祥说一句网上真的是很多资源看着头大,实际啥用也没有,只能自己多记录避免以后再爬坑。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页