Repl 引擎使用文档

本文主要介绍在 Linkis 中,Repl 引擎插件的安装、使用和配置。

强烈建议您在执行 Repl 任务之前,检查下执行用户的这些环境变量。具体方式是

  1. sudo su - ${username}
  2. echo ${JAVA_HOME}

单独编译引擎插件(需要有 maven 环境)

  1. # 编译
  2. cd ${linkis_code_dir}/linkis-engineconn-plugins/repl/
  3. mvn clean install
  4. # 编译出来的引擎插件包,位于如下目录中
  5. ${linkis_code_dir}/linkis-engineconn-plugins/repl/target/out/

EngineConnPlugin 引擎插件安装

将 2.1 中的引擎插件包上传到服务器的引擎目录下

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

上传后目录结构如下所示

  1. linkis-engineconn-plugins/
  2. ├── repl
  3. ├── dist
  4. └── 1
  5. ├── conf
  6. └── lib
  7. └── plugin
  8. └── 1

通过重启 linkis-cg-linkismanager 服务刷新引擎

  1. cd ${LINKIS_HOME}/sbin
  2. sh linkis-daemon.sh restart cg-linkismanager

可以查看数据库中的 linkis_engine_conn_plugin_bml_resources 这张表的 last_update_time 是否为触发刷新的时间。

  1. #登陆到linkis的数据库
  2. select * from linkis_cg_engine_conn_plugin_bml_resources;

单个方法

  1. sh bin/linkis-cli -engineType repl-1 -code \
  2. "import org.apache.commons.lang3.StringUtils;
  3. public void sayHello() {
  4. System.out.println(\"hello\");
  5. System.out.println(StringUtils.isEmpty(\"hello\"));
  6. }" \
  7. -codeType repl -runtimeMap linkis.repl.type=java

多个方法

  1. sh bin/linkis-cli -engineType repl-1 -code \
  2. "import org.apache.commons.lang3.StringUtils;
  3. public void sayHello() {
  4. System.out.println(\"hello\");
  5. System.out.println(StringUtils.isEmpty(\"hello\"));
  6. }
  7. public void sayHi() {
  8. System.out.println(\"hi\");
  9. System.out.println(StringUtils.isEmpty(\"hi\"));
  10. }" \
  11. -codeType repl -runtimeMap linkis.repl.type=java -runtimeMap linkis.repl.method.name=sayHi
  1. sh bin/linkis-cli -engineType repl-1 -code \
  2. "import org.apache.commons.io.FileUtils
  3. import java.io.File
  4. val x = 2 + 3;
  5. println(x);
  6. FileUtils.forceMkdir(new File(\"/tmp/linkis_repl_scala_test\"));" \
  7. -codeType repl -runtimeMap linkis.repl.type=scala

更多 Linkis-Cli 命令参数参考: Linkis-Cli 使用

Repl引擎,支持的连接参数有:

配置名称备注及默认值信息是否必须
linkis.repl.typerepl类型,支持java和scala,默认值:java非必须
linkis.repl.method.name执行的方法名称,默认值为空非必须