当前位置:   article > 正文

Flink 系例 之 搭建开发环境与数据_通过properties 构建flink数据源

通过properties 构建flink数据源

本内容为后续系例示例的演示基础,所有相关示例、数据源、依赖均在此文内的工程与数据之上进行演示。后续如有变动,会在本文中变更。如有错误之处,敬请指出。

 示例环境

  1. java.version: 1.8.x
  2. flink.version: 1.11.1

创建工程

idea中创建项目,项目名称:flink-examples

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>com.flink.examples</groupId>
  7. <artifactId>flink-examples</artifactId>
  8. <packaging>pom</packaging>
  9. <version>1.0-SNAPSHOT</version>
  10. <modules>
  11. <module>stream</module>
  12. <module>connectors</module>
  13. </modules>
  14. <properties>
  15. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  16. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  17. <java.version>1.8</java.version>
  18. <flink.version>1.11.1</flink.version>
  19. <compiler.version>8</compiler.version>
  20. </properties>
  21. <dependencies>
  22. <dependency>
  23. <groupId>org.apache.flink</groupId>
  24. <artifactId>flink-streaming-java_2.11</artifactId>
  25. <version>${flink.version}</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.apache.flink</groupId>
  29. <artifactId>flink-clients_2.11</artifactId>
  30. <version>${flink.version}</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>org.apache.flink</groupId>
  34. <artifactId>flink-table-api-java-bridge_2.11</artifactId>
  35. <version>${flink.version}</version>
  36. </dependency>
  37. <dependency>
  38. <groupId>org.apache.flink</groupId>
  39. <artifactId>flink-table-planner-blink_2.11</artifactId>
  40. <version>${flink.version}</version>
  41. </dependency>
  42. <dependency>
  43. <groupId>org.apache.flink</groupId>
  44. <artifactId>flink-table-planner_2.11</artifactId>
  45. <version>${flink.version}</version>
  46. <!--<scope>provided</scope>-->
  47. </dependency>
  48. <dependency>
  49. <groupId>org.apache.flink</groupId>
  50. <artifactId>flink-json</artifactId>
  51. <version>${flink.version}</version>
  52. <!--<scope>test</scope>-->
  53. </dependency>
  54. <dependency>
  55. <groupId>com.google.code.gson</groupId>
  56. <artifactId>gson</artifactId>
  57. <version>2.8.6</version>
  58. </dependency>
  59. <dependency>
  60. <groupId>org.apache.logging.log4j</groupId>
  61. <artifactId>log4j-core</artifactId>
  62. <version>2.11.1</version>
  63. </dependency>
  64. </dependencies>
  65. <build>
  66. <plugins>
  67. <plugin>
  68. <groupId>org.apache.maven.plugins</groupId>
  69. <artifactId>maven-compiler-plugin</artifactId>
  70. <configuration>
  71. <encoding>UTF-8</encoding>
  72. <source>${compiler.version}</source>
  73. <target>${compiler.version}</target>
  74. </configuration>
  75. </plugin>
  76. <plugin>
  77. <groupId>org.apache.maven.plugins</groupId>
  78. <artifactId>maven-shade-plugin</artifactId>
  79. <executions>
  80. <execution>
  81. <phase>package</phase>
  82. <goals>
  83. <goal>shade</goal>
  84. </goals>
  85. </execution>
  86. </executions>
  87. </plugin>
  88. </plugins>
  89. </build>
  90. </project>

项目分两个模块

  1. flink-examples
  2. |----connectors(中件间连接器示例模块)
  3. |----examples(模拟电商订单数据并推送到kafka中,以及flink核心数据流处理客户端)
  4. |----stream(数据流与算子、方法、窗口等示例模块)
  5. |----tableapi(table&sql与中件间的使用示例模块)
  6. |----web(获取flink算子计算后的存储结果,提供给前端展示模块)

connectors模块

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <groupId>com.flink.examples</groupId>
  7. <artifactId>flink-examples</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>connectors</artifactId>
  12. <dependencies>
  13. <!-- Flink jdbc依赖 -->
  14. <dependency>
  15. <groupId>org.apache.flink</groupId>
  16. <artifactId>flink-jdbc_2.11</artifactId>
  17. <version>1.10.1</version>
  18. </dependency>
  19. <!-- mysql驱动包 -->
  20. <dependency>
  21. <groupId>mysql</groupId>
  22. <artifactId>mysql-connector-java</artifactId>
  23. <version>5.1.47</version>
  24. </dependency>
  25. <!-- kafka依赖 -->
  26. <dependency>
  27. <groupId>org.apache.flink</groupId>
  28. <artifactId>flink-connector-kafka_2.11</artifactId>
  29. <version>${flink.version}</version>
  30. </dependency>
  31. <!-- redis依赖 -->
  32. <dependency>
  33. <groupId>org.apache.bahir</groupId>
  34. <artifactId>flink-connector-redis_2.11</artifactId>
  35. <version>1.0</version>
  36. </dependency>
  37. <!-- rabbitMq依赖 -->
  38. <dependency>
  39. <groupId>org.apache.flink</groupId>
  40. <artifactId>flink-connector-rabbitmq_2.11</artifactId>
  41. <version>${flink.version}</version>
  42. </dependency>
  43. <!-- elasticsearch6依赖 -->
  44. <dependency>
  45. <groupId>org.apache.flink</groupId>
  46. <artifactId>flink-connector-elasticsearch6_2.11</artifactId>
  47. <version>${flink.version}</version>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.apache.flink</groupId>
  51. <artifactId>flink-sql-connector-elasticsearch6_2.11</artifactId>
  52. <version>${flink.version}</version>
  53. </dependency>
  54. </dependencies>
  55. </project>

stream模块

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>flink-examples</artifactId>
  7. <groupId>com.flink.examples</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>stream</artifactId>
  12. <dependencies>
  13. <dependency>
  14. <groupId>org.apache.flink</groupId>
  15. <artifactId>flink-table-common</artifactId>
  16. <version>${flink.version}</version>
  17. <!--<scope>provided</scope>-->
  18. </dependency>
  19. </dependencies>
  20. </project>

项目全局示例图

示例数据类

后续所有算子演示的数据,均来自此类来提供公共数据。

  1. import org.apache.flink.api.java.tuple.Tuple3;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. /**
  5. * @Description 公共示例数据
  6. */
  7. public class DataSource {
  8. /**
  9. * 示例数据集合
  10. * Tuple3 是一个固定3个属性变量的实体类,分别用f0,f1,f2表示三个构造传参与变量
  11. * @return
  12. */
  13. public static List<Tuple3<String,String,Integer>> getTuple3ToList(){
  14. //Tuple3<f0,f1,f2> = Tuple3<姓名,性别(man男,girl女),年龄>
  15. return Arrays.asList(
  16. new Tuple3<>("张三", "man", 20),
  17. new Tuple3<>("李四", "girl", 24),
  18. new Tuple3<>("王五", "man", 29),
  19. new Tuple3<>("刘六", "girl", 32),
  20. new Tuple3<>("伍七", "girl", 18),
  21. new Tuple3<>("吴八", "man", 30)
  22. );
  23. }
  24. }

源码下载

Gitee:flink-examples: 基于flink.1.11.1版本的工程示例,此示例包含大部份算子、窗口、中间件连接器、tables&sql的用法,适合新人学习使用;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/598007
推荐阅读
相关标签