configuration - PPTV/Pike GitHub Wiki

pike的配置在$PIKE_CONF_DIR下,主要配置参数在pike.yaml中, pike配置参数主要包含数据源及数据输出两大类,此外,也可以配置storm相关参数,用户自定义相关参数也可配置其中,pike在启动时会读取所有配置,作为生成的topology实例的配置。

数据源配置

数据源需要配置数据源表结构以及使用的Spout,以下前两个选项是必须配置的

配置项 说明
pike.metadata.provider.class 提供元数据的类,实现com.pplive.pike.metadata.MetaDataProvider接口
pike.spout.generator.class 产生PikeBatchSpout,实现com.pplive.pike.generator.ISpoutGenerator接口
pike.output.first_period_output 是否统计第一个窗口的数据

在com.pplive.pike.generator包中pike提供了LocalTextFileSpoutGenerator产生TextFileSpout,KafkaSpoutGenerator产生KafkaSpout。

TextFileSpout

TextFileSpout一般用于本地调试,只有一个提供数据文件的配置

配置项 说明
pike.spout.local.textfile TextFileSpout读取的本地文件路径

KafkaSpout

配置项 说明
pike.spout.kafka.zookeeper.servers 连接kafka的zk地址
pike.spout.kafka.zookeeper.session.timeout.ms 连接zk的超时时间
pike.spout.kafka.data.charset 数据源编码格式,默认UTF-8
pike.spout.kafka.data.field_separator 数据源分隔符,默认'\t'
pike.spout.kafka.print_queuedata 是否打印queue中原始数据,方便调试
pike.spout.kafka.print_emitdata 是否打印解析后即将传送给下游的数据,方便调试
pike.spout.kafka.data.timeout.milliseconds kafka消费者timeout时间
pike.spout.kafka.check_topologyself_killed 检查topology是否已被kill
pike.spout.kafka.check_killed.interval_seconds 检查topology的时间间隔

数据输出配置

数据输出主要配置sink类型及其相关参数

配置项 说明
pike.out.class.name 输出sink类,实现com.pplive.pike.exec.output.IPikeOutput接口
pike.output.target.name sink类附加参数,一般是表名或文件名,与sink类一起决定结果位置
pike.output.check_topologyself_killed 输出结果时是否检查topology已被kill
pike.output.check_min_period_seconds 检查topology是否已被kill的时间间隔
pike.output.last_period_output 是否输出最后一次的统计结果
pike.output.targets.default 默认输出目的地
pike.output.rolling.header 是否输出结果header

在com.pplive.pike.exec.output包中提供了TextFileOutput、HdfsOutput、JdbcOutput、SQLServerBulkOutput和HBaseOutput。

TextFileOutput

配置项 说明
pike.output.fs.path HDFS NameNode地址
pike.output.file.suffix 结果文件后缀
pike.output.file.single 结果是否按统计窗口分开
pike.output.hdfs.suffix 结果文件后缀

HdfsOutput

配置项 说明
pike.output.hdfs.host HDFS NameNode地址
pike.output.hdfs.path 保存结果的目录
pike.output.hdfs.localPath 保存结果的本地临时目录
pike.output.hdfs.suffix 结果文件后缀
pike.output.hdfs.field_separator 结果记录内字段分隔符
pike.output.hdfs.data_separator 结果记录间分隔符
pike.output.hdfs.compressed 是否才有zip格式压缩结果文件

JdbcOutput

配置项 说明
pike.output.jdbc.driverClassName JDBC Driver类名
pike.output.jdbc.dbUser 用户名
pike.output.jdbc.dbPassword 密码
pike.output.jdbc.dbUrl 连接URL
pike.output.jdbc.batchinsert.maxcount 每次批量插入的最大记录数

SQLServerBulkOutput

配置项 说明
pike.output.sqlserverbulk.driverClassName Driver类名
pike.output.sqlserverbulk.dbUser 用户名
pike.output.sqlserverbulk.dbPassword 密码
pike.output.sqlserverbulk.dbUrl 连接URL
pike.output.sqlserverbulk.winBulkPath 保存结果的共享目录
pike.output.sqlserverbulk.linuxDBFilePath 保存结果的目录

HBaseOutput

配置项 说明
pike.output.hbase.hbasekeys 作为hbase key的结果列,以逗号分隔
pike.output.hbase.timestampkey 作为timestamp的列