Configuration

System Properties

Property NameDefaultMeaning
moonbox.port.maxReties 16 端口绑定失败重试次数
moonbox.worker.timeout 5m worker失联多久时间将worker标记为DEAD

Service Properties

Property NameDefaultMeaning
moonbox.deploy.rest.enable true 是否启动rest server
moonbox.deploy.rest.port 9090 rest server服务端口
moonbox.deploy.rest.request-timeout 60s rest server请求超时时间
moonbox.deploy.rest.idle-timeout 60s rest server空闲超时时间
moonbox.deploy.rest.client.idle-timeout 60s rest client空闲超时时间
moonbox.deploy.tcp.enable true 是否启动tcp server
moonbox.deploy.tcp.port 10010 tcp server服务端口

Rpc Properties

Property NameDefaultMeaning
moonbox.rpc.implementation akka moonbox rpc 通信方式,目前仅支持akka
moonbox.rpc.akka.loglevel ERROR akka 日志级别
moonbox.rpc.akka.actor.provider akka.cluster.ClusterActorRefProvider 参阅akka 官方文档
moonbox.rpc.akka.actor.debug.autoreceive off 参阅akka 官方文档
moonbox.rpc.akka.actor.remote.transport akka.remote.netty.NettyRemoteTransport 参阅akka 官方文档
moonbox.rpc.akka.actor.remote.log-remote-lifecycle-events off 参阅akka 官方文档
moonbox.rpc.akka.actor.cluster.auto-down-unreachable-after 60s 参阅akka 官方文档
moonbox.rpc.akka.cluster.failure-detector.acceptable-heartbeat-pause 10s 参阅akka 官方文档
moonbox.rpc.akka.cluster.retry-unsuccessful-join-after 3s 参阅akka 官方文档
moonbox.rpc.akka.extensions.0 akka.cluster.client.ClusterClientReceptionist 参阅akka 官方文档

Recovery Properties

Property NameDefaultMeaning
moonbox.deploy.recovery.implementation NONE 持久化方式,目前支持NONE、zookeeper
moonbox.deploy.recovery.zookeeper.url localhost:2181 zookeeper集群连接地址,多个使用逗号分隔
moonbox.deploy.recovery.zookeeper.dir /moonbox 持久化数据存储目录
moonbox.deploy.recovery.zookeeper.retry.times 3 连接zookeeper重试次数
moonbox.deploy.recovery.zookeeper.retry.wait 1s 连接zookeeper重试等待时间

Catalog Properties

Catalog目前仅支持关系型数据库,支持mysql、oracle、sqlserver、db2、postgres。配置项如下面所示。

Property NameDefaultMeaning
moonbox.deploy.catalog.implementation catalog元数据存储方式
moonbox.deploy.catalog.url 数据库连接地址, 需要加上?createDatabaseIfNotExist=true参数
moonbox.deploy.catalog.user 建立数据库连接使用的用户名
moonbox.deploy.catalog.password 建立数据库连接使用的密码
moonbox.deploy.catalog.driver 建立数据库连接使用的驱动类名
moonbox.deploy.catalog.await-timeout 20s 建立数据库连接超时时间

如需修改为其他数据库请根据实际情况进行修改,并将对应的jdbc驱动jar包拷贝到每台机器$MOONBOX_HOME/libs目录,以下给出mysql示例。

Property NameExampleMeaning
moonbox.deploy.catalog.implementation mysql catalog元数据存储方式为MySQL
moonbox.deploy.catalog.url jdbc:mysql://host:port/moonbox?createDatabaseIfNotExist=true" 数据库连接地址
moonbox.deploy.catalog.user user 建立数据库连接使用的用户名
moonbox.deploy.catalog.password password 建立数据库连接使用的密码
moonbox.deploy.catalog.driver com.mysql.jdbc.Driver 建立数据库连接使用的驱动类

Timer Properties

Moonbox内部集成了quartz提供定时任务服务,如需使用定时任务功能,请将moonbox.deploy.timer.enable设置为true。

Property NameDefaultMeaning
moonbox.deploy.timer.enable false 是否开启定时任务功能
moonbox.deploy.timer.org.quartz.scheduler.instanceName TimedEventScheduler quartz实例名字,参阅quartz官方文档
moonbox.deploy.timer.org.quartz.threadPool.threadCount 3 quartz线程池线程个数,参阅quartz官方文档
moonbox.deploy.timer.org.quartz.scheduler.skipUpdateCheck true 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.jobStore.misfireThreshold 3000 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.jobStore.class org.quartz.simpl.RAMJobStore quartz job存储方式,参阅quartz官方文档

默认配置quartz Job没有进行持久化,如需要配置quartz job进行持久化,请参考以下配置将quartz job持久化到mysql,更多用法请参考quartz官方文档。 需要注意的是,我们需要先手动在mysql中创建一些用于保存quartz元数据的库和表。例如我们先创建一个名为moonbox_quartz的数据库,然后使用mysql客户端运行位于$MOONBOX_HOME/bin目录下的quartz_tables_mysql.sql文件中的sql,在刚才创建的库中创建出所有表。

Property NameExampleMeaning
moonbox.deploy.timer.enable true 是否开启定时任务功能
moonbox.deploy.timer.org.quartz.scheduler.instanceName TimedEventScheduler quartz实例名字,参阅quartz官方文档
moonbox.deploy.timer.org.quartz.threadPool.threadCount 3 quartz线程池线程个数,参阅quartz官方文档
moonbox.deploy.timer.org.quartz.scheduler.skipUpdateCheck true 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.jobStore.misfireThreshold 3000 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.jobStore.class org.quartz.impl.jdbcjobstore.JobStoreTX quartz job存储方式,参阅quartz官方文档
moonbox.deploy.timer.org.quartz.jobStore.driverDelegateClass org.quartz.impl.jdbcjobstore.StdJDBCDelegate 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.jobStore.useProperties false 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.jobStore.tablePrefix QRTZ_ 表名前缀,需要与创建表的sql语句保持一致,参阅quartz官方文档
moonbox.deploy.timer.org.quartz.jobStore.dataSource quartzDataSource 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.dataSource.quartzDataSource.driver com.mysql.jdbc.Driver 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.dataSource.quartzDataSource.URL jdbc:mysql://host:port/moonbox_quartz 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.dataSource.quartzDataSource.user user 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.dataSource.quartzDataSource.password password 参阅quartz官方文档
moonbox.deploy.timer.org.quartz.dataSource.quartzDataSource.maxConnections 10 参阅quartz官方文档

Mixcal Common Properties

Property NameDefaultMeaning
moonbox.mixcal.implementation spark 混算引擎方式,目前仅支持spark
moonbox.mixcal.pushdown.enable true 是否开启下推功能
moonbox.mixcal.column.permission.enable false 是否开启列级别权限控制
moonbox.mixcal.spark.sql.cbo.enable true 是否开启spark sql cost base optimize,参阅spark 官方文档
moonbox.mixcal.spark.sql.constraintPropagation.enabled false 参阅spark 官方文档
moonbox.mixcal.local [{}] 值为数组, 元素类型为object。数组元素个数代表每个Worker节点启动多少个Spark Local的常驻作业。{}对象中可设置Spark相关参数
moonbox.mixcal.cluster 同上值为数组, 元素类型为object。数组元素个数代表每个Worker节点启动多少个Spark Yarn的常驻作业。{}对象中可设置Spark相关参数

更多关于spark的配置请参阅spark官方文档。