Flink调研与使用

前言

通常Flink的应用场景有以下三种(详细见 Flink应用场景):

好博客

Flink 使用之紧急避坑

  • Flink 版本问题,Flink 代码版本一定要和Fink应用版本一样
  • Flink jar 包上传找不到类的问题,项目打包有两种方式:
    • 只打包自己的代码(如果只是用Flink和jdk 代码依赖可以这样),上传的jar包会很小;以下是pom:
    <build>
       <plugins>
           <plugin>
               <artifactId>maven-compiler-plugin</artifactId>
               <configuration>
                   <source>1.8</source>
                   <target>1.8</target>
                   <encoding>UTF-8</encoding>
               </configuration>
           </plugin>
       </plugins>
   </build>
  • 打包自己的代码和相关依赖,(如果有其它引入,可以这样操作,一般实际应用都比较复杂,会引入Kafka,Redis等),缺点:打的包比较大。以下是对应的pom:
   <build>
      <plugins>
          <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>2.3.2</version>
              <configuration>
                  <source>1.8</source>
                  <target>1.8</target>
              </configuration>
          </plugin>

          <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <configuration>
                  <descriptorRefs>
                      <descriptorRef>jar-with-dependencies</descriptorRef>
                  </descriptorRefs>
              </configuration>
              <executions>
                  <execution>
                      <id>make-assembly</id>
                      <phase>package</phase>
                      <goals>
                          <goal>single</goal>
                      </goals>
                  </execution>
              </executions>
          </plugin>
      </plugins>
  </build>
  • Kafka 接入ACL验证问题
    demo 如下:
public static void main(String[] args) throws Exception {
      System.out.println("UpAndDownConditionFlinkKafkaConsumer start.");
      final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
      env.enableCheckpointing(5000); // 非常关键,一定要设置启动检查点!!
      env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
      Properties props = new Properties();
      props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, SourceParams.KAFKA_BOOT_STRAP_SERVERS_4_UP_AND_DOWN_STATUS);
      props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, SourceParams.KAFKA_BOOT_STRAP_SERVERS_4_UP_AND_DOWN_STATUS_GROUP_ID);
      String jassc = "org.apache.kafka.common.security.scram.ScramLoginModule required"
              + " username=" + SourceParams.KAFKA_BOOT_STRAP_SERVERS_4_UP_AND_DOWN_STATUS_USER
              + " password=" + SourceParams.KAFKA_BOOT_STRAP_SERVERS_4_UP_AND_DOWN_STATUS_SECRET + ";";
      props.setProperty("sasl.jaas.config", jassc);
      props.setProperty("security.protocol", "SASL_PLAINTEXT");
      props.setProperty("sasl.mechanism", "SCRAM-SHA-256");
      FlinkKafkaConsumer<String> consumer =
              new FlinkKafkaConsumer<>(SourceParams.KAFKA_BOOT_STRAP_SERVERS_4_UP_AND_DOWN_STATUS_TOPIC, new SimpleStringSchema(), props);

      env.addSource(consumer).process(new ProcessFunction<String, Object>() {
          @Override
          public void processElement(String value, ProcessFunction<String, Object>.Context ctx, Collector<Object> out) throws Exception {
              System.out.println(value);
              out.collect(value);
          }
      }).print("Kafka message.");

      env.execute("Flink-Kafka demo");
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值