赞
踩
目录
Datax、自定义Flink、自定义SeaTunnel是否满足需求对比
SeaTunnel架构剖析_Adobee Chen的博客-CSDN博客
批处理需要使用SeaTunnel的Spark引擎自定义StarRock Sink插件。插件需要继承SparkBatchSink的抽象类,在output方法中去定义具体的输出逻辑,封装StarRocks提供的Stream Load导入方式。在这个基础上,我们又增加了预操作、生成Label和Json导入等一些功能。下图描述了插件处理数据的大致流程。
定义好插件之后,通过全类名的方式在配置文件中引用。
- com.youzu.seatunnel.sink.StarRocksSink{
- fe_host:"127.0.0.1"
- http_port:"8030"
- database="database"
- table="table"
- user="user"
- password="password"
- headers.format="csv"
- }
下图是SeaTunnel官方提供的配置和提交应用的方式,需要在磁盘配置文件中定义env、source、transForm、sink的插件配置,然后通过SeaTunnel提供的命令行启动工具提交应用,设置交互模式和配置文件的路径。
- bin/start-seatunnel-spark.sh \
- --master local \
- --deploy-mode client \
- --config config/test.conf
- env {
- spark.sql.catalogImplementation = "hive"
- spark.app.name = "seatunnel_hive2sr"
- }
-
- source {
- hive {
- pre_sql="select id,name,age from tmp.student"
- result_table_name="source"
- }
- }
-
- transform {
-
- }
-
- sink {
- com.youzu.seatunnel.sink.StarRockSink{
- fenodes="127.0.0.1:8030"
- user ="user"
- password ="password"
- columns = "id,name,age"
- database = "tmp"
- table = "student"
-
- }
- }
在实际使用过程中,我们发现官方提供的配置和提交应用的方式与我们的调度系统结合时存在一些不方便的地方。一是不方便动态传参,二是用户在使用过程中既需要维护插件配置文件,又需要维护一个启动脚本,不方便用户使用。
待续。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。