From 8b2532e9850c4a5e45e7bc95d7591d58b235b5e9 Mon Sep 17 00:00:00 2001 From: lklhdu Date: Wed, 16 Nov 2022 10:27:18 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0aws=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=9A=84=E4=BE=9D=E8=B5=96=202.=E6=B7=BB=E5=8A=A0dockerfile?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 12 ++++++++++ README.md | 17 +++++++++----- assembly.xml | 2 +- pom.xml | 22 ++++++++++++++++--- .../benchmark/ingestion/MainRunner.java | 3 ++- 5 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..083e57c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM openjdk:8u332-jdk +RUN apt update \ + && apt-get install -y netcat \ + && apt-get install -y vim \ + && apt-get install -y net-tools \ + && apt-get install -y telnet + +# RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone + +COPY arctic_benchmark_ingestion.tar.gz /usr/lib/benchmark-ingestion/arctic_benchmark_ingestion.tar.gz +RUN cd /usr/lib/benchmark-ingestion && tar -zxvf arctic_benchmark_ingestion.tar.gz && rm -rf arctic_benchmark_ingestion.tar.gz +WORKDIR /usr/lib/benchmark-ingestion diff --git a/README.md b/README.md index 476e0c7..2a0a7f7 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # 总览 -欢迎使用lakehouse-benchmark-ingestion。 -lakehouse-benchmark-ingestion 是网易开源的数据湖性能基准测试 lakehouse-benchmark 项目下的数据同步工具,该工具基于 Flink-CDC 实现,能够将数据库中的数据实时同步到数据湖。 +欢迎使用lakehouse-benchmark-ingestion。 lakehouse-benchmark-ingestion 是网易开源的数据湖性能基准测试 lakehouse-benchmark 项目下的数据同步工具,该工具基于 Flink-CDC 实现,能够将数据库中的数据实时同步到数据湖。 ## 快速开始 1. 下载项目代码 `git clone https://github.com/NetEase/lakehouse-benchmark-ingestion.git` 2. 修改 resource/ingestion-conf.yaml ,填写配置项信息 3. 通过命令`mvn clean install -DskipTests`编译项目 -4. 进入 target 目录,通过`java -cp eduard-1.0-SNAPSHOT.jar com.netease.arctic.benchmark.ingestion.MainRunner -confDir [confDir] -sinkType [arctic/iceberg/hudi] -sinkDatabase [dbName]`命令启动数据同步工具 +4. 进入 target 目录,通过`tar -zxvf lakehouse_benchmark_ingestion.tar.gz`命令解压得到 lakehouse-benchmark-ingestion-1.0-SNAPSHOT.jar 和 conf 目录 +5. 通过`java -cp lakehouse-benchmark-ingestion-1.0-SNAPSHOT.jar com.netease.arctic.benchmark.ingestion.MainRunner -confDir [confDir] -sinkType [arctic/iceberg/hudi] -sinkDatabase [dbName]`命令启动数据同步工具 5. 通过`localhost:8081`打开 Flink Web UI ,观察数据同步的情况 ## 支持的参数 @@ -14,8 +14,8 @@ lakehouse-benchmark-ingestion 是网易开源的数据湖性能基准测试 lake | 参数项 | 是否必须 | 默认值 | 描述 | |--------------|------|--------|------------------------------------------| -| confDir | 是 | (none) | 配置文件 ingestion-conf.yaml 所在目录的绝对路径 | -| sinkType | 是 | (none) | 目标端数据湖 format 的类型,支持 Arctic/Iceberg/Hudi | +| confDir | 是 | (none) | 配置文件 ingestion-conf.yaml 所在目录的绝对路径 | +| sinkType | 是 | (none) | 目标端数据湖 Format 的类型,支持 Arctic/Iceberg/Hudi | | sinkDatabase | 是 | (none) | 目标端数据库的名称 | | restPort | 否 | 8081 | Flink Web UI的端口 | @@ -24,7 +24,7 @@ lakehouse-benchmark-ingestion 是网易开源的数据湖性能基准测试 lake | 参数项 | 是否必须 | 默认值 | 描述 | |--------------------------|------|---------|---------------------------------------------------------------| -| source.type | 是 | (none) | 源端数据库的类型,目前仅支持 MySQL | +| source.type | 是 | (none) | 源端数据库的类型,目前仅支持 MySQL | | source.username | 是 | (none) | 源端数据库用户名 | | source.password | 是 | (none) | 源端数据库密码 | | source.hostname | 是 | (none) | 源端数据库地址 | @@ -68,3 +68,8 @@ lakehouse-benchmark-ingestion 是网易开源的数据湖性能基准测试 lake 1. Arctic 2. Iceberg 3. Hudi + +## 相关说明 +* 本项目使用的arctic-flink-runtime-1.14依赖需要基于Arctic工程进行源码编译,请下载[Arctic工程](https://github.com/NetEase/arctic)的代码,然后切换到0.3.x分支, +* 本项目使用的hudi-flink1.14-bundle_2.12依赖需要基于Hudi工程进行源码编译,具体操作请参考[Hudi工程](https://github.com/apache/hudi)Build with different Flink versions部分的文档说明 +* diff --git a/assembly.xml b/assembly.xml index 17b79de..05f0e01 100644 --- a/assembly.xml +++ b/assembly.xml @@ -8,7 +8,7 @@ ${project.build.directory} - eduard-1.0-SNAPSHOT.jar + lakehouse-benchmark-ingestion-1.0-SNAPSHOT.jar diff --git a/pom.xml b/pom.xml index 8057ef4..3353bc8 100644 --- a/pom.xml +++ b/pom.xml @@ -5,9 +5,9 @@ 4.0.0 com.netease - eduard + lakehouse-benchmark-ingestion 1.0-SNAPSHOT - eduard + lakehouse-benchmark-ingestion jar @@ -16,7 +16,7 @@ 3.1.2 3.2.1 3.3.0 - arctic_benchmark_ingestion + lakehouse_benchmark_ingestion 1.14.5 2.12 @@ -116,6 +116,22 @@ hadoop-mapreduce-client-jobclient ${hadoop.version} + + + org.apache.hadoop + hadoop-aws + ${hadoop.version} + + + com.amazonaws + aws-java-sdk-s3 + 1.11.199 + + + org.apache.hadoop + hadoop-cloud-storage + ${hadoop.version} + org.apache.hudi diff --git a/src/main/java/com/netease/arctic/benchmark/ingestion/MainRunner.java b/src/main/java/com/netease/arctic/benchmark/ingestion/MainRunner.java index c0eab16..8c0ac83 100644 --- a/src/main/java/com/netease/arctic/benchmark/ingestion/MainRunner.java +++ b/src/main/java/com/netease/arctic/benchmark/ingestion/MainRunner.java @@ -136,7 +136,8 @@ private static void createSinkCatalog(String sinkType, Map props ((StreamTableEnvironmentImpl) tableEnv).executeInternal(operation); } - private static Configuration loadConfiguration(final String configDir, Map props) { + private static Configuration loadConfiguration(final String configDir, + Map props) { if (configDir == null) { throw new IllegalArgumentException(