fire框架提供了很多参数,这些参数为程序带来了很大的灵活性。参数大体分为:fire框架参数、spark引擎参数、flink引擎参数、kafka参数、hbase参数等。详见以下列表:
参数 | 默认值 | 含义 | 生效版本 | 是否废弃 |
---|---|---|---|---|
fire.thread.pool.size | 5 | fire内置线程池大小 | 0.4.0 | 否 |
fire.thread.pool.schedule.size | 5 | fire内置定时任务线程池大小 | 0.4.0 | 否 |
fire.rest.enable | true | 用于配置是否启用fire框架内置的restful服务,可用于与平台系统做集成。 | 0.3.0 | 否 |
fire.conf.show.enable | true | 是否打印非敏感的配置信息 | 0.1.0 | 否 |
fire.rest.url.show.enable | false | 是否在日志中打印fire框架restful服务地址 | 0.3.0 | 否 |
fire.rest.url.hostname | false | 是否启用hostname作为rest服务的访问地址 | 2.0.0 | 否 |
fire.acc.enable | true | 是否启用fire框架内置的所有累加器 | 0.4.0 | 否 |
fire.acc.log.enable | true | 是否启用fire框架日志累加器 | 0.4.0 | 否 |
fire.acc.multi.counter.enable | true | 是否启用多值累加器 | 0.4.0 | 否 |
fire.acc.multi.timer.enable | true | 是否启用时间维度累加器 | 0.4.0 | 否 |
fire.log.enable | true | fire框架埋点日志开关,关闭以后将不再打印埋点日志 | 0.4.0 | 否 |
fire.log.sql.length | 100 | 用于限定fire框架中sql日志的字符串长度 | 0.4.1 | 否 |
fire.jdbc.storage.level | memory_and_disk_ser | fire框架针对jdbc操作后数据集的缓存策略,避免重复查询数据库 | 0.4.0 | 否 |
fire.jdbc.query.partitions | 10 | 通过JdbcConnector查询后将数据集放到多少个分区中,需根据实际的结果集做配置 | 0.3.0 | 否 |
fire.task.schedule.enable | true | 是否启用fire框架定时任务,基于quartz实现 | 0.4.0 | 否 |
fire.dynamic.conf.enable | true | 是否启用动态配置功能,fire框架允许在运行时更新用户配置信息,比如:rdd.repartition(this.conf.getInt(count)),此处可实现动态的改变分区大小,实现动态调优。 | 0.4.0 | 否 |
fire.restful.max.thread | 8 | fire框架rest接口服务最大线程数,如果平台调用fire接口比较频繁,建议调大。 | 0.4.0 | 否 |
fire.quartz.max.thread | 8 | quartz最大线程池大小,如果任务中的定时任务比较多,建议调大。 | 0.4.0 | 否 |
fire.acc.log.min.size | 500 | 收集日志记录保留的最小条数。 | 0.4.0 | 否 |
fire.acc.log.max.size | 1000 | 收集日志记录保留的最大条数。 | 0.4.0 | 否 |
fire.acc.timer.max.size | 1000 | timer累加器保留最大的记录数 | 0.4.0 | 否 |
fire.acc.timer.max.hour | 12 | timer累加器清理几小时之前的记录 | 0.4.0 | 否 |
fire.acc.env.enable | true | env累加器开关 | 0.4.0 | 否 |
fire.acc.env.max.size | 500 | env累加器保留最多的记录数 | 0.4.0 | 否 |
fire.acc.env.min.size | 100 | env累加器保留最少的记录数 | 0.4.0 | 否 |
fire.scheduler.blacklist | 定时调度任务黑名单,配置的value为定时任务方法名,多个以逗号分隔,配置黑名单的方法将不会被quartz定时调度。 | 0.4.1 | 否 | |
fire.conf.print.blacklist | .map.,pass,secret | 配置打印黑名单,含有配置中指定的片段将不会被打印,也不会被展示到spark&flink的webui中。 | 0.4.2 | 否 |
fire.restful.port.retry_num | 3 | 启用fire restserver可能会因为端口冲突导致失败,通过该参数可允许fire重试几次。 | 1.0.0 | 否 |
fire.restful.port.retry_duration | 1000 | 端口重试间隔时间(ms) | 1.0.0 | 否 |
fire.log.level.conf.org.apache.spark | info | 用于设置某个包的日志级别,默认将spark包所有的类日志级别设置为info | 1.0.0 | 否 |
fire.deploy_conf.enable | true | 是否进行累加器的分布式初始化 | 0.4.0 | 否 |
fire.exception_bus.size | 1000 | 用于限制每个jvm实例内部queue用于存放异常对象数最大大小,避免队列过大造成内存溢出 | 2.0.0 | 否 |
fire.buried_point.datasource.enable | true | 是否开启数据源埋点,开启后fire将自动采集任务用到的数据源信息(kafka、jdbc、hbase、hive等)。 | 2.0.0 | 否 |
fire.buried_point.datasource.max.size | 200 | 用于存放埋点的队列最大大小,超过该大小将会被丢弃 | 2.0.0 | 否 |
fire.buried_point.datasource.initialDelay | 30 | 定时解析埋点SQL的初始延迟(s) | 2.0.0 | 否 |
fire.buried_point.datasource.period | 60 | 定时解析埋点SQL的执行频率(s) | 2.0.0 | 否 |
fire.buried_point.datasource.map.tidb | 4000 | 用于jdbc url的识别,当无法通过driver class识别数据源时,将从url中的端口号进行区分,不同数据配置使用统一的前缀:fire.buried_point.datasource.map. | 2.0.0 | 否 |
fire.conf.adaptive.prefix | true | 是否开启配置自适应前缀,自动为配置加上引擎前缀(spark.|flink.) | 2.0.0 | 否 |
fire.user.common.conf | common.properties | 用户统一配置文件,允许用户在该配置文件中存放公共的配置信息,优先级低于任务配置文件(多个以逗号分隔) | 2.0.0 | 否 |
fire.shutdown.auto.exit | false | 是否在调用shutdown方法时主动退出jvm进程,如果为true,则执行到this.stop方法,关闭上下文信息,回收线程池后将调用System.exit(0)强制退出进程。 | 2.0.0 | 否 |
fire.kafka.cluster.map.test | ip1:9092,ip2:9092 | kafka集群名称与集群地址映射,便于用户配置中通过别名即可消费指定的kafka。比如:kafka.brokers.name=test则表明消费ip1:9092,ip2:9092这个kafka集群。当然,也支持直接配置url:kafka.brokers.name=ip1:9092,ip2:9092。 | 0.1.0 | 否 |
fire.hive.default.database.name | tmp | 默认的hive数据库 | 0.1.0 | 否 |
fire.hive.table.default.partition.name | ds | 默认的hive分区字段名称 | 0.1.0 | 否 |
fire.hive.cluster.map.test | thrift://ip:9083 | 测试集群hive metastore地址(别名:test),任务中就可以通过fire.hive.cluster=test这种配置方式指定连接test对应的thrift server地址。 | ||
fire.hbase.batch.size | 10000 | 单个线程读写HBase的数据量 | 0.1.0 | 否 |
fire.hbase.storage.level | memory_and_disk_ser | fire框架针对hbase操作后数据集的缓存策略,避免因懒加载或其他原因导致的重复读取hbase问题,降低hbase压力。 | 0.3.2 | 否 |
fire.hbase.scan.partitions | -1 | 通过HBase scan后repartition的分区数,需根据scan后的数据量做配置,-1表示不生效。 | 0.3.2 | 否 |
fire.hbase.table.exists.cache.enable | true | 是否开启HBase表存在判断的缓存,开启后表存在判断将避免大量的connection消耗 | 2.0.0 | 否 |
fire.hbase.table.exists.cache.reload.enable | true | 是否开启HBase表存在列表缓存的定时更新任务,避免hbase表被drop导致报错。 | 2.0.0 | 否 |
fire.hbase.table.exists.cache.initialDelay | 60 | 定时刷新缓存HBase表任务的初始延迟(s) | 2.0.0 | 否 |
fire.hbase.table.exists.cache.period | 600 | 定时刷新缓存HBase表任务的执行频率(s) | 2.0.0 | 否 |
fire.hbase.cluster.map.test | zk1:2181,zk2:2181 | 测试集群hbase的zk地址(别名:test) | 2.0.0 | 否 |
fire.hbase.conf.hbase.zookeeper.property.clientPort | 2181 | hbase connection 配置,约定以:fire.hbase.conf.开头,比如:fire.hbase.conf.hbase.rpc.timeout对应hbase中的配置为hbase.rpc.timeout | 2.0.0 | 否 |
fire.config_center.enable | true | 是否在任务启动时从配置中心获取配置文件,以便实现动态覆盖jar包中的配置信息。 | 1.0.0 | 否 |
fire.config_center.local.enable | false | 本地运行环境下(Windows、Mac)是否调用配置中心接口获取配置信息。 | 1.0.0 | 否 |
fire.config_center.register.conf.secret | 配置中心接口调用秘钥 | 1.0.0 | 否 | |
fire.config_center.register.conf.prod.address | 配置中心接口地址 | 0.4.1 | 否 |
参数 | 默认值 | 含义 | 生效版本 | 是否废弃 |
---|---|---|---|---|
spark.appName | spark的应用名称,为空则取默认获取类名 | 0.1.0 | 否 | |
spark.local.cores | * | spark local模式下使用多少core运行,默认为local[*],自动根据当前pc的cpu核心数设置 | 0.4.1 | 否 |
spark.chkpoint.dir | spark checkpoint目录地址 | 0.1.0 | 否 | |
spark.log.level | WARN | spark的日志级别 | 0.1.0 | 否 |
spark.fire.scheduler.blacklist | jvmMonitor | 定时任务黑名单,指定到@Scheduled所修饰的方法名,多个以逗号分隔。当配置了黑名单后,该定时任务将不会被定时调用。 | 0.4.0 | 否 |
spark.kafka.group.id | 指定spark消费kafka的groupId | kafka的groupid,为空则取类名 | 0.1.0 | 否 |
spark.kafka.brokers.name | 用于配置任务消费的kafka broker地址,如果通过fire.kafka.cluster.map.xxx指定了broker别名,则此处也可以填写别名。 | 0.1.0 | 否 | |
spark.kafka.topics | 消费的topic列表,多个以逗号分隔 | 0.1.0 | 否 | |
spark.kafka.starting.offsets | latest | 用于配置启动时的消费位点,默认取最新 | 0.1.0 | 否 |
spark.kafka.failOnDataLoss | true | 数据丢失时执行失败 | 0.1.0 | 否 |
spark.kafka.enable.auto.commit | false | 是否启用自动commit kafka的offset | 0.4.0 | 否 |
spark.kafka.conf.xxx | 以spark.kafka.conf开头加上kafka参数,则可用于设置kafka相关的参数。比如:spark.kafka.conf.request.timeout.ms对应kafka的request.timeout.ms参数。 | 0.4.0 | 否 | |
spark.hive.cluster | 用于配置spark连接的hive thriftserver地址,支持url和别名两种配置方式。别名需要事先通过fire.hive.cluster.map.别名 = thrift://ip:9083指定。 | 0.1.0 | 否 | |
spark.rocket.cluster.map.别名 | ip:9876 | rocketmq别名列表 | 1.0.0 | 否 |
spark.rocket.conf.xxx | 以spark.rocket.conf开头的配置支持所有rocket client的配置 | 1.0.0 | 否 | |
spark.hdfs.ha.enable | true | 是否启用hdfs的ha配置,避免将hdfs-site.xml、core-site.xml放到resources中导致多hadoop集群hdfs不灵活的问题。同时也可以避免引namenode维护导致spark任务挂掉的问题。 | 1.0.0 | 否 |
spark.hdfs.ha.conf.test.fs.defaultFS | hdfs://nameservice1 | 对应fs.defaultFS,其中test与fire.hive.cluster.map.test中指定的别名test相对应,当通过fire.hive.cluster=test指定读写test这个hive时,namenode的ha将生效。 | 1.0.0 | 否 |
spark.hdfs.ha.conf.test.dfs.nameservices | nameservice1 | 对应dfs.nameservices | 1.0.0 | 否 |
spark.hdfs.ha.conf.test.dfs.ha.namenodes.nameservice1 | namenode5231,namenode5229 | 对应dfs.ha.namenodes.nameservice1 | 1.0.0 | 否 |
spark.hdfs.ha.conf.test.dfs.namenode.rpc-address.nameservice1.namenode5231 | ip:8020 | 对应dfs.namenode.rpc-address.nameservice1.namenode5231 | 1.0.0 | 否 |
spark.hdfs.ha.conf.test.dfs.namenode.rpc-address.nameservice1.namenode5229 | ip2:8020 | 对应dfs.namenode.rpc-address.nameservice1.namenode5229 | 1.0.0 | 否 |
spark.hdfs.ha.conf.test.dfs.client.failover.proxy.provider.nameservice1 | org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider | 对应dfs.client.failover.proxy.provider.nameservice1 | 1.0.0 | 否 |
spark.impala.connection.url | jdbc:hive2://ip:21050/;auth=noSasl | impala jdbc地址 | 0.1.0 | 否 |
spark.impala.jdbc.driver.class.name | org.apache.hive.jdbc.HiveDriver | impala jdbc驱动 | 0.1.0 | 否 |
spark.datasource.options. | 以此开头的配置将被加载到datasource api的options中 | 2.0.0 | 否 | |
spark.datasource.format | datasource api的format | 2.0.0 | 否 | |
spark.datasource.saveMode | Append | datasource api的saveMode | 2.0.0 | 否 |
spark.datasource.saveParam | 用于dataFrame.write.format.save()参数 | 2.0.0 | 否 | |
spark.datasource.isSaveTable | false | 用于决定调用save(path)还是saveAsTable | 2.0.0 | 否 |
spark.datasource.loadParam | 用于spark.read.format.load()参数 | 2.0.0 | 否 |
参数 | 默认值 | 含义 | 生效版本 | 是否废弃 |
---|---|---|---|---|
flink.appName | flink的应用名称,为空则取类名 | 1.0.0 | 否 | |
flink.kafka.group.id | kafka的groupid,为空则取类名 | 1.0.0 | 否 | |
flink.kafka.brokers.name | 用于配置任务消费的kafka broker地址,如果通过fire.kafka.cluster.map.xxx指定了broker别名,则此处也可以填写别名。 | 1.0.0 | 否 | |
flink.kafka.topics | 消费的kafka topic列表,多个以逗号分隔 | 1.0.0 | 否 | |
flink.kafka.starting.offsets | 用于配置启动时的消费位点,默认取最新 | 1.0.0 | 否 | |
flink.kafka.failOnDataLoss | true | 数据丢失时执行失败 | 1.0.0 | 否 |
flink.kafka.enable.auto.commit | false | 是否启用自动提交kafka offset | 1.0.0 | 否 |
flink.kafka.CommitOffsetsOnCheckpoints | true | 是否在checkpoint时记录offset值 | 1.0.0 | 否 |
flink.kafka.StartFromTimestamp | 0 | 设置从指定时间戳位置开始消费kafka | 1.0.0 | 否 |
flink.kafka.StartFromGroupOffsets | false | 从topic中指定的group上次消费的位置开始消费,必须配置group.id参数 | 1.0.0 | 否 |
flink.log.level | WARN | 默认的日志级别 | 1.0.0 | 否 |
flink.hive.cluster | 用于配置flink读写的hive集群别名 | 1.0.0 | 否 | |
flink.hive.version | 指定hive版本号 | 1.0.0 | 否 | |
flink.default.database.name | tmp | 默认的hive数据库 | 1.0.0 | 否 |
flink.default.table.partition.name | ds | 默认的hive分区字段名称 | 1.0.0 | 否 |
flink.hive.catalog.name | hive | hive的catalog名称 | 1.0.0 | 否 |
flink.fire.hive.site.path.map.别名 | test | /path/to/hive-site-path/ | 1.0.0 | 否 |
flink.hbase.cluster | test | 读写的hbase集群zk地址 | 1.0.0 | 否 |
flink.max.parallelism | 用于配置flink的max parallelism | 1.0.0 | 否 | |
flink.default.parallelism | 用于配置任务默认的parallelism | 1.0.0 | 否 | |
flink.stream.checkpoint.interval | -1 | checkpoint频率,-1表示关闭 | 1.0.0 | 否 |
flink.stream.checkpoint.mode | EXACTLY_ONCE | checkpoint的模式:EXACTLY_ONCE/AT_LEAST_ONCE | 1.0.0 | 否 |
flink.stream.checkpoint.timeout | 600000 | checkpoint超时时间,单位:毫秒 | 1.0.0 | 否 |
flink.stream.checkpoint.max.concurrent | 1 | 同时checkpoint操作的并发数 | 1.0.0 | 否 |
flink.stream.checkpoint.min.pause.between | 0 | 两次checkpoint的最小停顿时间 | 1.0.0 | 否 |
flink.stream.checkpoint.prefer.recovery | false | 如果有更近的checkpoint时,是否将作业回退到该检查点 | 1.0.0 | 否 |
flink.stream.checkpoint.tolerable.failure.number | 0 | 可容忍checkpoint失败的次数,默认不允许失败 | 1.0.0 | 否 |
flink.stream.checkpoint.externalized | RETAIN_ON_CANCELLATION | 当cancel job时保留checkpoint | 1.0.0 | 否 |
flink.sql.log.enable | false | 是否打印组装with语句后的flink sql,由于with表达式中可能含有敏感信息,默认为关闭 | 2.0.0 | 否 |
flink.sql.with.xxx | flink.sql.with.connector=jdbc flink.sql.with.url=jdbc:mysql://ip:3306/db | 以flink.sql.with.开头的配置,用于sql语句的with表达式。通过this.fire.sql(sql, keyNum)即可自动读取并映射成with表达式的sql。避免sql中的with表达式硬编码到代码中,提高灵活性。 | 2.0.0 | 否 |
flink.sql_with.replaceMode.enable | false | 是否启用配置文件中with强制替换sql中已有的with表达式,如果启用,则会强制替换掉代码中sql的with列表,达到最大的灵活性。 | 2.0.0 | 否 |