一、Waterdrop工具
Waterdrop是一个基于Apache Spark的简单易用的ETL工具,可帮助开发人员快速实现数据清洗、转换和加载任务。它支持多种数据源,并提供了易于使用的Web UI来监控作业状态和性能指标。
Waterdrop的主要特点包括:
1、针对数据处理提供即插即用的解决方案,降低开发成本;
2、多数据源支持,作业适用范围广泛;
3、模块化和易扩展的设计,可方便地定制和增强系统功能;
4、易于使用的Web UI,提供了详细的作业监控和性能指标信息;
5、免费使用,无需任何授权和费用。
二、Waterdrop安装教程
Waterdrop的安装非常简单,只需按照以下步骤操作:
1、通过以下命令下载Waterdrop二进制文件:
wget https://github.com/InterestingLab/waterdrop/releases/download/v1.3.3/waterdrop-1.3.3.tar.gz
2、解压缩并进入Waterdrop目录:
tar xzvf waterdrop-1.3.3.tar.gz cd waterdrop-1.3.3
3、修改配置文件conf/application.conf,填写正确的数据源和目标信息:
spark { app { name = "waterdrop" master = "yarn" } streaming { batch_duration = 1s } driver.memory = 2g executor.memory = 2g } source { kinesis { access-key-id = "" secret-access-key = "" region-name = "" stream-name = "" endpoint-url = "" initial-position-in-stream = "LATEST" } } sink { hdfs { path = "" file-type = "TEXT" partition-fields = "dt,hour" partition-format = "yyyyMMdd,HH" timezone = "Asia/Shanghai" write-buffer-size = 64m max-file-size = 1G } }
4、启动Waterdrop作业:
./bin/waterdrop.sh --config conf/application.conf
三、Waterdrop翻译
Waterdrop提供了与多种数据源的集成,包括Kafka、Kinesis、HDFS和JDBC等,因此在ETL过程中可能涉及到一些数据格式和字段名的翻译问题。
例如,如果要将从Kafka读取的数据转换为HDFS格式并存储,需要进行一些字段映射和数据类型转换操作:
source { kafka { bootstrap.servers = "" topics = ["test"] group.id = "" auto.offset.reset = "latest" # kafka数据的序列化与反序列化类 key-deserializer = "org.apache.kafka.common.serialization.StringDeserializer" value-deserializer = "org.apache.kafka.common.serialization.StringDeserializer" } } filter { #通过filter配置进行字段映射和数据类型转换 field-mapping { before = ["name", "age", "gender"] after = ["new_name", "new_age", "new_gender"] } #转换数据类型 type-converter { fields = ["new_age"] to-type = "int" } } sink { hdfs { path = "" file-type = "TEXT" #按照日期和小时分区 partition-fields = ["dt", "hour"] partition-format = "yyyyMMdd,HH" timezone = "Asia/Shanghai" write-buffer-size = "64m" } }
四、Waterdrop如何查看JDK路径
在运行Waterdrop之前,需要先安装和配置Java环境,并设置正确的JDK路径。如果不确定JDK路径,可以通过以下命令查看:
/usr/libexec/java_home -V
输出的结果类似于:
Matching Java Virtual Machines (3): 11.0.2, x86_64: "Java SE 11.0.2" /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home 1.8.0_211, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home 1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
可以看到当前机器上安装了多个JDK版本,其中以/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home为JDK路径。
五、Waterdrop Hive Neo4j
Waterdrop还可以与多个数据存储进行集成,例如Hive和Neo4j等。以下是一个Hive数据源和Neo4j目标的例子:
source { hive { database = "test" table = "test_table" thrift-uri = "thrift://hive_server_host:9083" } } transform { # 处理逻辑 } sink { neo4j { uri = "bolt://neo4j_host:7687" username = "neo4j" password = "password" node-type = "person" relationship-type = "knows" node-properties = ["name", "age"] relationship-properties = ["distance"] commit-batch-size = 10000 } }
六、三体视频Waterdrop
水滴计划(Waterdrop Plan)是华为公司推出的一个人才培养计划,目的是为自己和行业培养高素质的人才。三体视频Waterdrop是水滴计划的正式官方账号,提供了大量的培训和学习资源。
七、美国Waterdrop净水壶
Waterdrop是一家专注于净水技术的公司,旗下包括多款净水产品。美国Waterdrop净水壶是其中一款比较畅销的产品,采用多种净水技术,可以有效地去除水中的杂质、氯、异味和细菌等。
八、沪教版牛津英语Waterdrop
沪教版牛津英语是中国著名的英语教材,旨在培养学生适应复杂多变的现代社会,拥有全球视野和重要的语言和思维能力。Waterdrop是沪教版牛津英语中的一个主题(Theme),主要涉及自然科学、环境保护和人类生活等方面。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/151547.html