控制台

控制台是维护底层资源的管理平台,分为队列管理、资源管理、多集群管理三个模块

多集群管理

多集群管理用于配置任务实例运行所依赖的底层组件,比如资源调度组件 YARN、存储组件 HDFS、计算组件 Flink 等

将租户绑定到某个集群,该租户提交的任务就会使用该集群下对应的组件

tip

在实际的数据开发中,我们可以将资源进行合理的分配:不同的集群使用不同的资源,然后让不同环境下的租户绑定到不同的集群,比如测试环境租户绑定到测试集群、预发环境租户绑定预发集群,从而实现对资源的隔离使用

info

多集群管理按照公共组件—>资源调度组件—>存储组件—>计算组件的顺序进行配置

公共组件

公共组件用于配置 SFTP 组件,相关资源、配置文件上传下载都会使用对应的sftp组件来操作

SFTP 配置

资源调度组件

资源调度组件主要用于配置 YARN 组件,因为某些计算组件需要依赖资源调度组件,比如 Flink 计算组件需要依赖 YARN,所以需要提前配置好资源调度组件

YARN 配置

info

不同厂商的hadoop集群提交任务会依赖不同的参数,可以在适配hadoop集群的时候通过自定义参数来动态调整

这里默认以Apache Hadoop2 为例

存储组件

存储组件主要用于配置 HDFS 组件,因为某些计算组件需要依赖存储组件,比如 Flink 计算组件需要依赖 HDFS 存储组件,所以需要提前配置好存储组件

HDFS 配置

tip

为了保持 Hadoop 引擎下,YARN 和 HDFS 组件的版本一致性,当切换 YARN 的组件版本,进行保存后,存储组件 HDFS 的版本也将同步变更

计算组件

计算组件主要用于配置 Flink、Spark 等计算引擎

Flink 配置

部署模式分为 perjob、session 两种模式

公共参数
参数项默认值说明是否必填
clusterModeperjob模式为perjob;session模式为session任务执行模式:perjob, session
flinkJarPath/data/insight_plugin/flink110_libflink lib path
remoteFlinkJarPath/data/insight_plugin/flink110_libflink lib远程路径
flinkPluginRoot/data/insight_pluginflinkStreamSql和flinkx plugins父级本地目录
remotePluginRootDir/data/insight_pluginflinkStreamSql和flinkx plugins父级远程目录
pluginLoadModeshipfile插件加载类型
monitorAcceptedAppfalse是否监控yarn accepted状态任务
yarnAccepterTaskNumber3允许yarn accepter任务数量,达到这个值后不允许任务提交
prometheusHostprometheus地址,平台端使用
prometheusPort9090prometheus,平台端使用
classloader.dtstack-cachetrue是否缓存classloader
session
参数项默认值说明是否必填
checkSubmitJobGraphInterval60session check间隔(60 * 10s)
flinkSessionSlotCount10flink session允许的最大slot数
sessionRetryNum5session重试次数,达到后会放缓重试的频率
sessionStartAutotrue是否允许engine启动flink session
flinkSess ionNameflink_sessionflink session任务名
jobmanager.heap.mb2048jobmanager内存大小
taskmanager.heap.mb1024taskmanager内存大小
参数项默认值说明是否必填
env.java.opts-XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:MaxMetaspaceSize=300m -Dfile.encoding=UTF-8jvm参数
classloader.resolve-orderperjob默认为child-first,session默认为parent-first类加载模式
high-availabilityZOOKEEPERflink ha类型
high-availability.zookeeper.quorumzookeeper地址,当ha选择是zookeeper时必填
high-availability.zookeeper.path.root/flink110ha节点路径
high-availability.storageDirhdfs://ns1/dtInsight/flink110/haha元数据存储路径
jobmanager.archive.fs.dirhdfs://ns1/dtInsight/flink110/completed-jobs 任务结束后任务信息存储路径 是
metrics.reporter.promgateway.classorg.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter用来推送指标类
metrics.reporter.promgateway.hostpromgateway地址
metrics.reporter.promgateway.port9091promgateway端口
metrics.reporter.promgateway.deleteOnShutdowntrue任务结束后是否删除指标 是
metrics.reporter.promgateway.jobName110job 指标任务名
metrics.reporter.promgateway.randomJobNameSuffixtrue是否在任务名上添加随机值
state.backendRocksDB状态后端
state.backend.incrementaltrue是否开启增量
state.checkpoints.dirhdfs://ns1/dtInsight/flink110/checkpointscheckpoint路径地址
state.checkpoints.num-retained11checkpoint保存个数
state.savepoints.dirhdfs://ns1/dtInsight/flink110/savepointssavepoint路径
yarn.application-attempts3重试次数
yarn.application-attempt-failures-validity-interval3600000重试窗口时间大小
akka.ask.timeout60 s
akka.tcp.timeout60 s

更多 Flink 参数项详见官方文档

Spark

Spark 配置

Spark 参数项
参数项默认值说明是否必填
spark.driver.extraJavaOptions-Dfile.encoding=UTF-8driver的jvm参数
spark.executor.extraJavaOptions-Dfile.encoding=UTF-8executor的jvm参数
spark.eventLog.compressfalse是否压缩日志
spark.eventLog.dirhdfs://ns1/tmp/logsspark日志存放路径
spark.eventLog.enabledtrue是否记录 Spark 日志
spark.executor.cores1每个执行程序上使用的内核数
spark.executor.heartbeatInterval10s每个执行程序对驱动程序的心跳之间的间隔
spark.executor.instances1启动执行程序进程的实例数
spark.executor.memory1g每个执行程序进程使用的内存量
spark.network.timeout600s所有网络交互的默认超时时长
spark.rpc.askTimeout600sRPC 请求操作在超时之前等待的持续时间
spark.submit.deployModeclusterspark任务提交模式
spark.yarn.appMasterEnv.PYSPARK_PYTHON/data/anaconda3/bin/python3python环境变量路径
spark.yarn.maxAppAttempts4提交申请的最大尝试次数

更多 Spark 参数项详见官方文档

自定义参数
参数项默认值说明是否必填
sparkPythonExtLibPathhdfs://ns1/dtInsight/spark240/pythons/pyspark.zip,hdfs://ns1/dtInsight/spark240/pythons/py4j-0.10.7-src.zippyspark.zip和py4j-0.10.7-src.zip路径
sparkSqlProxyPathhdfs://ns1/dtInsight/spark240/client/spark-sql-proxy.jarspark-sql-proxy.jar路径,用于执行spark sql
sparkYarnArchivehdfs://ns1/dtInsight/spark240/jarsspark jars路径
yarnAccepterTaskNumber3允许的accepter任务数量