本期推荐的 SeaTunnel 是一个非常易用的支持海量数据实时同步的超高性能分布式数据集成平台,每天可以稳定高效同步数百亿数据,已在近百家公司生产上使用。
SeaTunnel介绍
SeaTunnel 尽所能为您解决海量数据同步中可能遇到的问题:
- 数据丢失与重复
- 任务堆积与延迟
- 吞吐量低
- 应用到生产环境周期长
- 缺少应用运行状态监控
SeaTunnel 使用场景
- 海量数据同步
- 海量数据集成
- 海量数据的 ETL
- 海量数据聚合
- 多源数据处理
SeaTunnel 的特性
- 简单易用,灵活配置,无需开发
- 实时流式处理
- 离线多源数据分析
- 高性能、海量数据处理能力
- 模块化和插件化,易于扩展
- 支持利用 SQL 做数据处理和聚合
- 支持 Spark Structured Streaming
- 支持 Spark 2.x
环境依赖
- java 运行环境,java >= 8
如果您要在集群环境中运行 seatunnel,那么需要以下 Spark 集群环境的任意一种:
- Spark on Yarn
- Spark Standalone
如果您的数据量较小或者只是做功能验证,也可以仅使用 local 模式启动,无需集群环境,seatunnel 支持单机运行。 注: seatunnel 2.0 支持 Spark 和 Flink 上运行
生产应用案例
微博
- 增值业务部数据平台 微博某业务有数百个实时流式计算任务使用内部定制版 SeaTunnel,以及其子项目Guardian 做 seatunnel On Yarn 的任务监控。
新浪
- 大数据运维分析平台 新浪运维数据分析平台使用 SeaTunnel 为新浪新闻,CDN 等服务做运维大数据的实时和离线分析,并写入 Clickhouse。
搜狗
- 搜狗奇点系统 搜狗奇点系统使用 SeaTunnel 作为 ETL 工具, 帮助建立实时数仓体系。
快速开始
1.seatunnel 依赖JDK1.8运行环境。
2.seatunnel 依赖Spark,安装seatunnel前,需要先准备好Spark。 请先下载Spark, Spark版本请选择 >= 2.x.x。下载解压后,不需要做任何配置即可提交Spark deploy-mode = local模式的任务。 如果你期望任务运行在Standalone集群或者Yarn、Mesos集群上,请参考Spark官网配置文档。
3.下载seatunnel安装包并解压, 这里以社区版为例:
wget https://github.com/InterestingLab/seatunnel/releases/download/v<version>/seatunnel-<version>.zip -O seatunnel-<version>.zip
unzip seatunnel-<version>.zip
ln -s seatunnel-<version> seatunnel
部署与运行
在本地以local方式运行seatunnel
./bin/start-seatunnel.sh --master local[4] --deploy-mode client --config ./config/application.conf
在Spark Standalone集群上运行seatunnel
# client 模式
./bin/start-seatunnel.sh --master spark://207.184.161.138:7077 --deploy-mode client --config ./config/application.conf
# cluster 模式
./bin/start-seatunnel.sh --master spark://207.184.161.138:7077 --deploy-mode cluster --config ./config/application.conf
在Yarn集群上运行seatunnel
# client 模式
./bin/start-seatunnel.sh --master yarn --deploy-mode client --config ./config/application.conf
# cluster 模式
./bin/start-seatunnel.sh --master yarn --deploy-mode cluster --config ./config/application.conf
在Mesos上运行seatunnel
# cluster 模式
./bin/start-seatunnel.sh --master mesos://207.184.161.138:7077 --deploy-mode cluster --config ./config/application.conf
如果要指定seatunnel运行时占用的资源大小,或者其他Spark参数,可以在–config指定的配置文件里面指定:
spark {
spark.executor.instances = 2
spark.executor.cores = 1
spark.executor.memory = "1g"
...
}