安装RTF(kafka版本)¶
1、首先我们需要开启binlog功能,并配置binlog模式为ROW,在my.cnf中配置如下信息
[mysqld]
log-bin = mysql-bin # 开启binlog
binlog-format = ROW # 选择模式为ROW
server_id = 1 #
由于我们从binlog读取数据的方式是主从复制,所以需要一个非root用户模仿slave。需要新建用户并授权,如果已经有非root账号可以直接授权
CREATE USER rtfuser IDENTIFIED BY ‘rtfuser’;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘rtfuser’@‘%’;
FLUSH PRIVILEGES; # 刷新权限
2、点击下载RTF项目压缩包:Download
上传到服务器上并解压到指定目录:
tar -zxvf rtf-writer-1.0-SNAPSHOT.tar.gz rtf
3、在启动之前,我们需要进入解压之后的目录下的conf,在binlog.properties中配置以下信息:
host= #mysql所在的主机ip
port= #mysql的端口名称,一般默认为3306
dt_names= #监听的离线表名,按照db1:table1 db2:table2格式输入
username= #之前新建的用户
password= #用户的密码
topics= #不同的表需要通过不同的topic发送消息,同样按照topic1 topic2形式
server= #producer所在的机器,例如192.168.210.101:9092
在conf.properties中配置:
SPARK_HOME= #spark路径
MASTER= #提交spark任务方式,可以通过master或者yarn来提交
SPARK_CORE= #
接下来,需要配置接入表的信息(为了方便之后对rtf表进行管理,强烈建议以database_table的命名格式):
cp example.properties db1_table1.properties
START_COMPACTION_FACTOR=5242880 #可以执行压实操作的文件大小
MUST_COMPACTION_FACTOR=30485760 #必须执行压实操作的文件大小
CORE_POOL_SIZE=3 #线程池基本大小
MAX_POOL_SIZE=10 #线程池最大线程数
MAX_COMPACTION_NUM=5 #最大压实数,不应超过初始化文件个数
filename= #hdfs上用于存放rtf数据的路径
topic= #用于消费的topic名
brokerlist= #
group= #
checkPointDir= #快照路径
fields= #DB中表的全部字段名
offset_filename= #offset路径,位于存放rtf数据的相同路径
#,需要以_开头
primary_key= #主键字段
maxRatePerPartition=20000 #限制每个partition拉取速度
durations=30 #窗口时间 秒
subconcurrency=10
backPressureEnabled=false
backPressureInitialRate=0
appName=yourAppName
recently_n_days=3 #保留近n天数据
parallelism=20
executorIdleTimeout=1800s
至此,需要配置的基本信息就已经全部完成了。接下来,需要在hdfs上初始化你希望获得实时数据的离线表的对应文件夹。请转到快速开始,有我们为您提供的一个示范。