Linkis-Cli 方式使用

    您可以参照下面的例子简单地向Linkis提交任务

    第一步,检查conf/目录下是否存在默认配置文件,且包含以下配置:

    第二步,进入linkis安装目录,输入指令:

    1. sh ./bin/linkis-cli -engineType spark-2.4.3 -codeType sql -code "select count(*) from testdb.test;" -submitUser hadoop -proxyUser hadoop

    第三步,您会在控制台看到任务被提交到linkis,并开始执行的信息。

    linkis-cli目前仅支持同步提交,即向linkis提交任务后,不断询问任务状态、拉取任务日志,直至任务结束。任务结束时状态如果为成功,linkis-cli还会主动拉取结果集并输出。

    1. sh ./bin/linkis-cli [客户端参数][引擎参数] [启动运行参数]
    • 引擎相关参数

    • Map启动运行参数

      参数说明数据类型是否必填
      -confMap启动参数,可以将任何启动参数放入此 Map(例如 spark.executor.instances),输入格式:-confMap key1=value1 -confMap key2=value2String
      -runtimeMap运行参数,可以将任何运行参数放入此 Map(例如 jdbc.url=jdbc:hive2://xxx:10000), 输入格式:-runtimeMap key1=value1 -runtimeMap key2=value2String
      -varMap指定变量映射,变量用于关键字替换。如执行语句’select form ${table_x} limit ${limit_y}’ 通过varMap指定关键字变量替换, -varMap table_x=test -varMap limit_y=100String
      -labelMap标签映射String
      -jobContentMapjobContent 映射String

    客户端参数可以通过手动指定的方式传入,此方式会覆盖默认配置文件linkis-cli.properties中的冲突配置项 可以通过配置文件进行配置

    1. sh ./bin/linkis-cli --gatewayUrl http://127.0.0.1:9001 --authStg token --authKey [tokenKey] --authVal [tokenValue] -engineType spark-2.4.3 -codeType sql -code "select count(*) from testdb.test;" -submitUser hadoop -proxyUser hadoop

    5.2 添加引擎启动参数

    引擎的初始参数可以通过-confMap参数添加,注意参数的数据类型是Map,命令行的输入格式如下:

    1. -confMap key1=val1 -confMap key2=val2 ...
    1. sh ./bin/linkis-cli -engineType spark-2.4.3 -codeType sql -confMap wds.linkis.yarnqueue=q02 -confMap spark.executor.instances=3 -code "select count(*) from testdb.test;" -submitUser hadoop -proxyUser hadoop

    当然,这些参数也支持以配置文件的方式读取,见【5.5 使用用户的配置文件】

    引擎的初始参数可以通过-runtimeMap参数添加,注意参数的数据类型是Map,命令行的输入格式如下:

    例如:以下示例设置了jdbc引擎运行是需要的连接地址/用户名/密码 等参数

    1. sh ./bin/linkis-cli -submitUser hadoop -engineType jdbc-4 -codeType jdbc -code "show tables" -runtimeMap jdbc.url=jdbc:mysql://127.0.0.1:36000/hive_meta -runtimeMap jdbc.username=test -runtimeMap jdbc.password=test@123

    当然,这些参数也支持以配置文件的方式读取,见【5.5 使用用户的配置文件】

    5.3 添加标签

    标签可以通过-labelMap参数添加,与一样,-labelMap参数的类型也是Map:

    1. sh /bin/linkis-cli -engineType spark-2.4.3 -codeType sql -labelMap labelKey=labelVal -code "select count(*) from testdb.test;" -submitUser hadoop -proxyUser hadoop

    Linkis-cli的变量替换通过${}符号和-varMap共同实现

    1. sh ./bin/linkis-cli -engineType spark-2.4.3 -codeType sql -code "select count(*) from \${key};" -varMap key=testdb.test -submitUser hadoop -proxyUser hadoop

    执行过程中sql语句会被替换为:

    1. select count(*) from testdb.test

    注意'\$'中的转义符是为了防止参数被linux提前解析,如果是-codePath指定本地脚本方式,则不需要转义符

    5.5 使用用户的配置文件

    1. linkis-cli支持加载用户自定义配置文件,配置文件路径通过--userConf参数指定,配置文件需要是.properties文件格式,默认是使用 配置文件
    1. sh ./bin/linkis-cli -engineType spark-2.4.3 -codeType sql -code "select count(*) from testdb.test;" -submitUser hadoop -proxyUser hadoop --userConf [配置文件路径]
    1. 哪些参数可以配置?

    所有参数都可以配置化,例如:

    cli参数:

    1. wds.linkis.client.label.engineType=spark-2.4.3
    2. wds.linkis.client.label.codeType=sql

    Map类参数配置化时,key的格式为

      Map前缀包括:

      • executionMap前缀: wds.linkis.client.exec
      • sourceMap前缀: wds.linkis.client.source
      • confMap前缀: wds.linkis.client.param.conf
      • runtimeMap前缀: wds.linkis.client.param.runtime
      • labelMap前缀: wds.linkis.client.label

      注意:

      1. variableMap不支持配置化

      2. 当配置的key和指令参数中已输入的key存在冲突时,优先级如下:

        1. 指令参数 > 指令Map类型参数中的key > 用户配置 > 默认配置

      示例:

      配置引擎启动参数:

      1. wds.linkis.client.param.conf.spark.executor.instances=3
      2. wds.linkis.client.param.conf.wds.linkis.yarnqueue=q02

      配置labelMap参数:

      1. wds.linkis.client.label.myLabel=label123

      使用-outPath参数指定一个输出目录,linkis-cli会将结果集输出到文件,每个结果集会自动创建一个文件,输出形式如下:

      例如:

      1. task-906-result-1.txt
      2. task-906-result-3.txt