简介
WaterDrop是一款数据同步/ETL工具,其底层是通过用户编写的配置文件转化执行spark代码.所以必须要spark2.x以上的环境.(类似于sqoop必须Mr)
WaterDropV2同时支持Spark与flink
支持多种数据源与输出
数据输入形式有两种:一种是批,一种是流(分别对应sparksql中的一次性读取,与structruedstreaming的流式处理)
批处理有:ElasticSearch File Hdfs Hive Hbase JDBC Kudu MongDB Mysql 等(Hbase为商业版,普通版需要实现可以使用Hive映射HBase表的方式)
流式处理有:FileStream HdfsStream KafakStream SocketStream RedisStream S3Stream等
支持多种数据输出
Clickhouse ES File Hbase(商业版支持) Hdfs Http(商业版支持) Jdbc Kafka Kudu MongoDB Mysql Opentsdb S3 StdOut
下载与安装
1 下载
github上给出的1.5.1版本的百度网盘
链接:https://pan.baidu.com/s/19GUwZPC2YBG9Pt7iuF9TNw 密码:upeb
其他版本https://github.com/InterestingLab/waterdrop/releases
spark >= 2.3 下载 waterdrop-1.5.1.zip, spark < 2.3 下载waterdrop-1.5.1-with-spark.zip
下载zip包后,上传到服务器
2 解压:
spark版本>=2.3 : unzip waterdrop-1.5.1.zip
spark版本 < 2.3 : unzip waterdrop-1.5.1-with-spark.zip
3 添加sparkhome
vim 路径/waterdrop-1.5.1/config/waterdrop-env.sh
修改sparkhome配置:
SPARK_HOME=${SPARK_HOME=/xx/xx/spark}
4 测试执行
批运行:
在waterdrop目录下执行:
./bin/start-waterdrop.sh --master local[2] --deploy-mode client --config ./config/batch.conf.template
参数解释
--master指spark应用的运行模式:
local[*] 本地模式
spark://127.0.0.1:7077 standalone模式
yarn 提交到yarn集群运行
mesos://127.0.0.1:7077 运行在mosos上
--deploy-mode client或cluster (不懂就用client)
--config 指定一个配置文件的路径,此配置文件为用户自己编写的./config目录下有些damo可以执行
最终看到输出代表着执行成功
流运行:
./bin/start-waterdrop-structured-streaming.sh --master local[2] --deploy-mode client --config ./config/structuredstreaming.conf.template
常见错误:
Exception in thread "main" io.github.interestinglab.waterdrop.config.ConfigException$Missing: No configuration setting found for key 'spark'
代表没有读取到配置文件,需要调整--congfig指定的配置文件位置或名称
下方是如何编写配置文件