客户端启动方式
基于kyuubi-server启动
${kyport}默认10009
代码语言:javascript复制kyuubi-beeline -u "jdbc:hive2://kyuubiserver:kyport/;user=hadoop"
基于zk-server启动
${zkport}
默认2181,推荐使用方式
kyuubi-beeline -u "jdbc:hive2://zkserver:zkport/;user=hadoop?serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi"
${kyuubiserver}:${kyport}
见 kyuubi-defaults.conf 的 kyuubi.frontend.bind.port 配置。
${zkserver}:${zkport}
见 kyuubi-defaults.conf 的 kyuubi.ha.zookeeper.quorum 配置。
执行SQL
执行SQL文件
代码语言:javascript复制kyuubi-beeline -u "jdbc:hive2://zkhost:2181/;user=hadoop" -f 1.sql
交互式执行
代码语言:javascript复制jdbc:hive2://ip:port> create table kyuubi_test(code int,name string);
---------
| Result |
---------
---------
No rows selected (0.302 seconds)
jdbc:hive2://ip:port> show tables;
----------- ---------------- --------------
| database | tableName | isTemporary |
----------- ---------------- --------------
| default | kyuubi_test | false |
----------- ---------------- --------------
1 row selected (0.101 seconds)
引擎共享级别
服务端级别
在kyuubi-defaults.conf
中设置kyuubi.engine.share.level
(系统默认为USER,可以设置参数详见表1.1),此设置为集群默认共享级别。
客户端级别
用户可以提交自定义共享级别(覆盖服务端的默认设置),在JdbcUrl中设置kyuubi.engine.share.level
(可以设置参数详见表1.1),示例命令如下
kyuubi-beeline -u "jdbc:hive2://zkhost:2181/;user=hadoop?kyuubi.engine.share.level=CONNECTION"
配置参数参考
共享级别 | 语义 | 适用场景 | 隔离程度 | 共享程度 |
---|---|---|---|---|
CONNECTION | 每个Session启动一个引擎 | 大规模ETL | 高 | 低 |
USER | 每个用户一个引擎 | Ad-hoc查询 | 中 | 中 |
GROUP | 每个资源组一个引擎 | Ad-hoc查询 | 低 | 高 |
SERVER | 每个集群一个引擎 | 不建议生产 | 不建议生产 |
表1.1
引擎超时设置
启动一个引擎后,在引擎激活状态下,其他新提交的任务可以快速提交到该引擎并运行任务,当引擎超过闲置时间,系统将会回收引擎资源,再次提交则需要重新启动一个引擎。闲置时间参数kyuubi.session.engine.idle.timeout
默认PT30M (30 min)
服务端设置
在kyuubi-defaults.conf
中设置kyuubi.session.engine.idle.timeout
,此设置为集群默认超时时间。
客户端设置
用户可以提交自定义引擎超时时间(覆盖服务端的默认设置),在JdbcUrl中设置kyuubi.session.engine.idle.timeout
,示例命令如下
kyuubi-beeline -u "jdbc:hive2://zkhost:2181/;user=hadoop?kyuubi.session.engine.idle.timeout=PT10M"
配置参数参考
参数 | 默认值 | 语义 | 生效版本 |
---|---|---|---|
kyuubi.session.engine.check.interval | PT5M | 检查时间 | 1.0.0 |
kyuubi.session.engine.idle.timeout | PT30M | 超时时间 | 1.0.0 |
客户端子域设置
当引擎级别为USER、GROUP、SERVER时,用户可通过配置实现单个(USER、GROUP、SERVER)实例下多个独立引擎实例。例如kyuubi.engine.share.level=USER
,同一个用户通过业务隔离引擎,在JdbcUrl中设置kyuubi.engine.share.level.subdomain
,示例如下:
kyuubi-beeline -u "jdbc:hive2://zkhost:2181/;user=hadoop?kyuubi.engine.share.level.subdomain=sd1"
kyuubi-beeline -u "jdbc:hive2://zkhost:2181/;user=hadoop?kyuubi.engine.share.level.subdomain=sd2"
Spark资源参数
参数设置分为3层,spark引擎设置 $SPARK_HOME/conf/spark-defaults.conf
;kyuubi引擎设置$KYUUBI_HOME/conf/kyuubi-defaults.conf
,其中kyuubi设置可以覆盖spark设置。示例如下
服务端设置
配置spark服务级别的环境参数
代码语言:javascript复制spark.dynamicAllocation.enabled=false
spark.executor.memory=3g
spark.executor.cores=2
spark.executor.instances=10
配置用户级别的环境参数
代码语言:javascript复制# For a user named hadoop
___hadoop___.spark.dynamicAllocation.enabled=false
___hadoop___.spark.executor.memory=5g
___hadoop___.spark.executor.cores=2
___hadoop___.spark.executor.instances=10
客户端设置
代码语言:javascript复制kyuubi-beeline -u "jdbc:hive2://zkhost:2181/;user=hadoop?spark.dynamicAllocation.enabled=false;spark.executor.cores=2;spark.executor.memory=4g;spark.executor.instances=4"
SparkDRA配置
参数设置分为3层,spark引擎设置 $SPARK_HOME/conf/spark-defaults.conf
;kyuubi引擎设置$KYUUBI_HOME/conf/kyuubi-defaults.conf
,其中kyuubi设置可以覆盖spark设置。示例如下
服务端设置
spark服务级别建议配置,配置地址$SPARK_HOME/conf/spark-defaults.conf
spark.dynamicAllocation.enabled=true
##false if perfer shuffle tracking than ESS
spark.shuffle.service.enabled=true
spark.dynamicAllocation.initialExecutors=10
spark.dynamicAllocation.minExecutors=10
spark.dynamicAllocation.maxExecutors=500
spark.dynamicAllocation.executorAllocationRatio=0.5
spark.dynamicAllocation.executorIdleTimeout=60s
spark.dynamicAllocation.cachedExecutorIdleTimeout=30min
# true if perfer shuffle tracking than ESS
spark.dynamicAllocation.shuffleTracking.enabled=false
spark.dynamicAllocation.shuffleTracking.timeout=30min
spark.dynamicAllocation.schedulerBacklogTimeout=1s
spark.dynamicAllocation.sustainedSchedulerBacklogTimeout=1s
spark.cleaner.periodicGC.interval=5min
kyuubi用户级别配置,配置地址$KYUUBI_HOME/conf/kyuubi-defaults.conf
# For a user named hadoop
___hadoop___.spark.dynamicAllocation.maxExecutors=20
# For a user named hive
___hive___.spark.dynamicAllocation.maxExecutors=600
如上,hadoop可并行的executor不可超过20,hive可并行的excutor不可超过600
客户端设置
代码语言:javascript复制kyuubi-beeline -u "jdbc:hive2://zkhost:2181/;user=hadoop?spark.sql.shuffle.partitions=2;spark.executor.memory=5g"
客户端设置生效范围:
Runtime SQL Configuration:实时生效
Static SQL and Spark Core Configuration: 如果当前提交新启一个引擎有效,延用已存引擎则无效