前言
项目地址
https://github.com/DTStack/chunjun
https://gitee.com/dtstack_dev_0/chunjun
下载地址
https://github.com/DTStack/chunjun/releases
JSON格式示例
https://dtstack.github.io/chunjun/examples/json/binlog@binlog_hive
https://dtstack.github.io/chunjun-web/docs/chunjunDocs/connectors/hive/hive-sink
安装
解压
1 | rm -rf /data/tools/bigdata/chunjun |
配置环境变量
创建配置文件
1 | vi /etc/profile.d/chunjun.sh |
加入:
1 | export CHUNJUN_HOME=/data/tools/bigdata/chunjun |
配置立即生效
1 | source /etc/profile |
查看CHUNJUN_HOME
1 | cd $CHUNJUN_HOME |
提交任务
Local
本地提交
Local 模式不依赖Flink环境和Hadoop环境,在本地环境启动一个JVM进程执行纯钧任务。
1 | bash $CHUNJUN_HOME/bin/chunjun-local.sh -job $CHUNJUN_HOME/chunjun-examples/json/stream/stream.json |
1 | bash $CHUNJUN_HOME/bin/chunjun-local.sh -job /root/001.json |
Standalone
Standalone模式依赖Flink Standalone环境,不依赖Hadoop环境。
将依赖文件复制到Flink lib目录下,例如
1 | cp -r chunjun-dist $FLINK_HOME/lib |
注意: 这个复制操作需要在所有Flink cluster机器上执行,否则部分任务会出现类找不到的错误。
启动Flink Standalone环境
1 | sh $FLINK_HOME/bin/start-cluster.sh |
运行1
sh bin/chunjun-standalone.sh -job chunjun-examples/json/stream/stream.json
Yarn Session
Yarn Session 模式依赖Flink 和 Hadoop 环境,需要在提交机器中提前设置好HADOOPHOME
和FLINK_HOME
结束之前的YarnSession
1 | yarn application -list |
我们需要使用yarn-session -t参数上传chunjun-dist
1 | $FLINK_HOME/bin/yarn-session.sh -t $CHUNJUN_HOME -d -nm chunjun_session |
提交任务
通过yarn web ui 查看session 对应的application $SESSION_APPLICATION_ID
,进入到本地chunjun-dist目录,执行命令
yarn.application.id
也可以在 flink-conf.yaml 中设置;提交成功之后,可以通过 yarn web ui 上观察任务情况。
成功后会打印
1 | JobManager Web Interface: http://hadoop01:45685 |
我们可以看到
- 网页查看地址:http://hadoop01:45685 可以内网中用http://192.168.7.101:45685
yarn.application.id
为application_1672710362889_2595
- 杀掉命令:
yarn application -kill application_1672710362889_2595
也可以在Yarn中查看
Yarn监控页面查询:
http://192.168.7.102:8088/cluster
运行
1 | bash $CHUNJUN_HOME/bin/chunjun-yarn-session.sh -job $CHUNJUN_HOME/chunjun-examples/json/stream/stream.json -confProp {\"yarn.application.id\":\"application_1672710362889_2595\"} |
如果有正在运行的可以这样杀掉
1 | yarn application -kill application_1672710362889_2595 |
测试
1 | bash $CHUNJUN_HOME/bin/chunjun-yarn-session.sh -job /root/002.json -confProp {\"yarn.application.id\":\"application_1672710362889_2595\"} |
Yarn Per-Job
Yarn Per-Job 模式依赖Flink 和 Hadoop 环境,需要在提交机器中提前设置好HADOOPHOME
和FLINK_HOME
。
提交步骤
Yarn Per-Job 提交任务配置正确即可提交。
进入本地chunjun-dist目录,执行命令提交任务。
1 | bash $CHUNJUN_HOME/bin/chunjun-yarn-perjob.sh -job $CHUNJUN_HOME/chunjun-examples/json/stream/stream.json |
提交成功之后,可以通过 yarn web ui 上观察任务情况
编译源码
详细步骤
修改依赖
添加classifier属性
1 | <dependency> |
格式化代码
1 | mvn spotless:apply |
编译
1 | mvn clean package -DskipTests -P default |
编译后
如果你是在windows环境下打包,在linux上运行任务前需要执行
sed -i "s/\r//g" bin/*.sh
命令修复sh脚本中的 ‘\r’ 问题。
解压缩
1 | mkdir chunjun |
删除原压缩包
1 | rm -rf chunjun-dist-1.12-SNAPSHOT.tar.gz |
更换换行符
1 | cd chunjun && sed -i "s/\r//g" bin/*.sh |
重新压缩
1 | tar -czvf ../chunjun-dist-1.12-SNAPSHOT.tar.gz ./* |
验证
1 | cd ../ && rm -rf chunjun && mkdir chunjun |
tar命令常用的功能
使用模式任选其一
- -c:创建新的tar文件
- -x:解开tar文件
- -t:列出tar文件中包含的文件的信息
- -r:附加新的文件到tar文件中
压缩解压模式选择其一
- -z:使用gzip进行解压缩
- -j:使用bzip2进行解压缩
- -Z:使用compress进行解压缩
其他参数
- -v:显示解压缩执行过程
- -f:指定要处理的文件名
查找文件
1 | find /data -name hive-jdbc* |
分发
1 | ssh hadoop02 "rm -rf $CHUNJUN_HOME" |
Maven依赖
如果Maven中有依赖无法下载
Maven中添加
第1个Jar
1 | mvn install:install-file -Dfile="D:\Jars\chunjun-connector-hdfs.jar" -DgroupId="com.dtstack.chunjun" -DartifactId="chunjun-connector-hdfs" -Dversion="1.12-SNAPSHOT" -Dpackaging=jar |
第2个Jar
1 | mvn install:install-file -Dfile="D:\Jars\chunjun-core.jar" -DgroupId="com.dtstack.chunjun" -DartifactId="chunjun-core" -Dversion="1.12-SNAPSHOT" -Dpackaging=jar |
卸载安装的jar
1 | mvn dependency:purge-local-repository -DmanualInclude="com.dtstack.chunjun:chunjun-connector-hdfs" |
配置
mysql to hive
1 | { |
mysql2hdfs
上面的方式chunjun报错了,所以我们可以换一种方式来实现
hive最终是要保存在hdfs中,我们使用hive创建表后,直接保存在对应的hdfs中就能绕过hive。
mysql2hdfs.json
1 | { |
注意
- 其中分隔符使用Hive的默认分割符
\u0001
创建表
1 | CREATE TABLE default.t_zdb ( |
测试
查看ID
1 | yarn application -list |
停止
1 | yarn application -kill application_1674972891007_0017 |
启动
1 | $FLINK_HOME/bin/yarn-session.sh -t $CHUNJUN_HOME -d -nm chunjun_session |
运行
1 | bash $CHUNJUN_HOME/bin/chunjun-yarn-session.sh -job /root/mysql2hdfs.json -confProp {\"yarn.application.id\":\"application_1674972891007_0018\"} |
这样我们就把数据保存到了hive中。
删除数据
1 | hadoop fs -rmr /user/hive/warehouse/t_zdb/* |