《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的BitSail是字节跳动开源的基于分布式架构的高性能数据集成引擎。 BitSail是字节跳动开源的基于分布式架构的高性能数据集成引擎。支持多个异构数据源之间的数据同步,提供批量、流式、增量场景下的全局数据集成解决方案。目前,它服务于字节跳动的几乎所有业务线,如抖音、今日头条等,每天同步数百万亿数据。为什么我们使用BitSail BitSail已被广泛使用并支持数百万亿的大流量。同时在火山引擎云原生环境、本地私有云环境等多种场景下得到验证。全局数据集成,涵盖批处理、流式和增量场景分布式云原生架构,支持横向扩展在准确性、稳定性和性能方面成熟度高丰富的基础功能,如类型转换、脏数据处理、流量控制、数据湖集成、自动并行计算等。任务运行状态监控,如流量、QPS、脏数据、延迟等。BitSail使用场景异构数据源中的海量数据同步流和批集成数据处理能力数据湖与仓库一体化数据处理能力高性能、高可靠的数据同步分布式、云原生架构数据集成引擎BitSail的特点低启动成本和高灵活性流批一体化和数据湖仓一体化架构,一个框架覆盖几乎所有数据同步场景高性能、海量数据处理能力DDL自动同步类型系统,不同数据源类型之间的转换引擎独立读写接口,开发成本低实时显示任务进度,正在开发中实时监控任务状态支持的连接 DataSource SubModules Reader Writer Hive Hadoop Hbase Hudi Kafka RocketMQ Redis Doris MongoDB JDBC MySQL Oracle PostgreSQL SqlServer Fake Print 环境设置 先决条件 Bitsail支持在本地IDE上运行集成测试。为此,您需要:JDK1。8maven3。6Docker 正确安装上述所需组件后,我们就可以在您的本地IDE上运行集成测试。 从源代码构建运行构建脚本以嵌入flink进行打包。bashbuild。sh如果你有自己的集群提供的flink包,你也可以不打包。mvncleanpackageplbitsaildistamDmaven。test。skiptrue 构建项目后,输出jar文件位于文件夹中bitsaildisttarget。 项目生产文件结构如下:bitsailarchive{version}SNAPSHOTbinbitsailStartupscriptconfbitsail。confbitsailsystemconfigembeddedflinkembeddedflinkexamplesexamplesconfigurationfilesexampledatasexamplesdataFakexxExample。jsonFakesourcetoxxexamplesconfigfilesxxPrintExample。jsonxxtoprintsinkexamplesconfigfileslibsjarlibsbitsailcore。jarenteringjarpackageconnectorsconnectorpluginjarsmappingconnectorpluginconfigfilescomponentscomponentsjars,suchasmetric、dirtycollectorclientsbitsailclientjar部署指南目前BitSail仅支持本地和Yarn上部署。其他平台的部署(例如原生kubernetes)将在不久后支持。 配置Hadoop 为了支持Yarn部署,需要在环境变量中配置HADOOPCLASSPATH。目前有两种方式设置:直接手动设置HADOOPCLASSPATH。设置环境变量HADOOPHOME。此环境变量指向环境中使用的hadoop目录。根据此环境变量,bitsail脚本可生成HADOOPCLASSPATH。if〔nHADOOPHOME〕;thenexportHADOOPCLASSPATH(HADOOPHOMEbinhadoopclasspath)fi 提交到Yarn BitSail目前仅支持flink的yarnperjob模式提交。 你可以使用binbitsail脚本将flink作业提交到yarn上。具体的执行指令如下:bash。binbitsailrunengineflinkconf〔jobconfpath〕executionmoderunqueue〔queuename〕deploymentmodeyarnperjob〔priority〔 上面中括号内的参数说明如下:必需参数:queuename:要提交的yarn队列jobconfpath:作业的配置文件可选参数:yarnpriority:作业在队列上的优先级namevalue:flink运行属性,以Dnamevalue方式添加在flinkrun命令后name:要添加的属性名value:要添加的属性值例如classloader。resolveorderchildfirst 提交一个示例作业 可以使用如下指令提交一个Fake2Print测试作业到default队列。bash。binbitsailrunengineflinkconfbitsailarchive0。1。0SNAPSHOTexamplesFakeProintExample。jsonexecutionmoderunp11deplo 本地提交 假设BitSail的安装路径为:{BITSAILHOME}。打包BitSail后,我们可以在如下路径中找到可运行jar包以及示例作业配置文件:cd{BITSAILHOME}bitsaildisttargetbitsaildist0。1。0SNAPSHOTbinbitsailarchive0。1。0SNAPSHOT END 开源协议:Apache2。0license 开源地址:https:github。combytedancebitsail