Spark 引擎

    如果您希望在您的服务器上使用spark引擎,您需要保证以下的环境变量已经设置正确并且引擎的启动用户是有这些环境变量的。

    强烈建议您在执行spark任务之前,检查下执行用户的这些环境变量。

    表1-1 环境配置清单

    注意: 编译spark引擎之前需要进行linkis项目全量编译 理论上Linkis1.X支持的spark2.x以上的所有版本。默认支持的版本为Spark2.4.3。如果您想使用其他的spark版本,如spark2.1.0,则您仅仅需要将插件spark的版本进行修改,然后进行编译即可。具体的,您可以找到linkis-engineplugin-spark模块,将maven依赖中”spark.version”标签的值改成2.1.0,然后单独编译此模块即可。

    2.2 spark engineConn部署和加载

    如果您已经编译完了您的spark引擎的插件,那么您需要将新的插件放置到指定的位置中才能加载,具体可以参考下面这篇文章

    Linkis1.X是通过标签配置来区分引擎版本的,所以需要我们在数据库中插入数据,插入的方式如下文所示。

    EngineConnPlugin引擎插件安装 > 2.2 管理台Configuration配置修改(可选)

    准备操作,队列设置

    图3-1 队列设置 您也可以通过在提交参数的StartUpMap里面添加队列的值:

    Linkis提供了Java和Scala 的SDK向Linkis服务端提交任务. 具体可以参考 JAVA SDK Manual. 对于Spark任务你只需要修改Demo中的EngineConnType和CodeType参数即可:

    3.2 通过Linkis-cli进行任务提交

    Linkis 1.0后提供了cli的方式提交任务,我们只需要指定对应的EngineConn和CodeType标签类型即可,Spark的使用如下:

    具体使用可以参考: Linkis CLI Manual.

    Scriptis的使用方式是最简单的,您可以直接进入Scriptis,新建sql、scala或者pyspark脚本进行执行。

    sql的方式是最简单的,您可以新建sql脚本然后编写进行执行,执行的时候,会有进度的显示。如果一开始用户是没有spark引擎的话,sql的执行会启动一个spark会话(这里可能会花一些时间), SparkSession初始化之后,就可以开始执行sql。

    Spark 引擎 - 图2

    spark-scala的任务,我们已经初始化好了sqlContext等变量,用户可以直接使用这个sqlContext进行sql的执行。

    图3-3 spark-scala的执行效果图

    类似的,pyspark的方式中,我们也已经初始化好了SparkSession,用户可以直接使用spark.sql的方式进行执行sql。

    Spark 引擎 - 图4 图3-4 pyspark的执行方式

    除了以上引擎配置,用户还可以进行自定义的设置,比如spark会话executor个数和executor的内存。这些参数是为了用户能够更加自由地设置自己的spark的参数,另外spark其他参数也可以进行修改,比如的pyspark的python版本等。

    图4-1 spark的用户自定义配置管理台