引擎的安装

Linkis的引擎物料包安装目录为,目录结构如下:

这里的物料包文件会在Linkis服务启动时候,会根据目录,解析出引擎和版本号,进行引擎物料的持久化存储(HDFS/本地文件系统中),并将持久化存储信息(引擎类型和版本资源索引) 记录到数据库表linkis_cg_engine_conn_plugin_bml_resources中。

示例数据如下:

提交任务执行时,会通过请求的参数engineType,从linkis_cg_engine_conn_plugin_bml_resources中查询到对应的资源索引, 通过索引下载对应的引擎物料,并部署启动对应的引擎进程,再进行任务的处理。

如 linkis-cli 提交hive查询示例

    注意

    因为引擎执行时传递的参数engineType:hive-2.3.3 是通过-来进行拆分出引擎和版本的,所以版本号里面不能出现-, 如果出现可以通过用其他符号代替,比如engineType:hive-cdh-2.3.3,会拆分错,可以直接使用这个:2.3.3 或则cdh_2.3.3 来命名引擎目录

    Linkis项目中包含的引擎模块linkis-engineconn-plugins/engineconn-plugins都是按这个目录进行打包配置的, 如果是自己实现的新增引擎,需要按照上述的目录结构进行打包,可以参考hive的assembly配置方式来配置打包流程和配置, 源码目录:linkis-engineconn-plugins/hive/src/main/assembly/distribution.xml

    2. 引擎的安装

    方式1

    方式2 手动编译获取

    全量编译(首次编译时需要)

    1. cd ${linkis_code_dir}
    2. mvn -N install
    3. mvn clean install

    编译引擎

    1. cd linkis-enginepconn-pugins/engineconn-plugins/pipeline/

    编译出来的引擎包,位于

    将 2.1 步编译出来的引擎包,上传到服务器的引擎目录下

    1. ${LINKIS_HOME}/lib/linkis-engineplugins

    主要是配置默认版本,当请求未带版本时 会使用默认版本

    修改$LINKIS_HOME/conf/linkis.properties 配置文件

    1. wds.linkis.hive.engine.version=2.3.3

    管理台的配置是按照引擎标签来进行管理的,如果新增的引擎,有配置参数需要配置的话,需要修改对应的表的元数据

    1. linkis_ps_configuration_config_key: 插入引擎的配置参数的key和默认values
    2. linkis_cg_manager_label:插入引擎label如:hive-2.3.3
    3. linkis_ps_configuration_category 插入引擎的目录关联关系
    4. linkis_ps_configuration_config_value 插入引擎需要展示的配置
    5. linkis_ps_configuration_key_engine_relation:配置项和引擎的关联关系

    2.6.1 方式1 接口刷新

    引擎支持实时刷新,引擎放置到对应目录后,通过http接口向linkis-cg-engineconnplugin 服务发送刷新请求即可。

    • 接口 http://${engineconn-plugin-server-IP}:${port}/api/rest_j/v1/rpc/receiveAndReply

    1. {
    2. "method": "/enginePlugin/engineConn/refreshAll"

    2.6.2 方式2 重启刷新

    通过重启linkis-cg-engineconnplugin 服务,也可以强制刷新引擎目录

    1. ### cd到sbin目录下,重启linkis-cg-engineconnplugin服务
    2. cd ${LINKIS_HOME}/sbin
    3. ## 执行linkis-daemon脚本
    4. sh linkis-daemon.sh restart cg-engineplugin

    2.6.3 检查引擎是否刷新成功

    如果在刷新过程中遇到问题,需要确认是否刷新成功,则可以查看数据库中的linkis_engine_conn_plugin_bml_resources这张表的last_update_time是否为触发刷新的时间。

    正常如下: bml

    查看引擎的物料记录是否存在(如果有更新,查看更新时间是否正确)。