flink 测试demo

flink 测试demo

以flink1.13.1为例

1. maven

<project>
  <groupId>com.example</groupId>
  <artifactId>flink-example</artifactId>
  <version>1.0-SNAPSHOT</version>
  <dependencies>
    <!-- Flink依赖 -->
    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-java</artifactId>
      <version>1.13.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-streaming-java_2.12</artifactId>
      <version>1.13.1</version>
    </dependency>
    <!-- JUnit依赖 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <!-- Flink插件 -->
      <plugin>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-maven-plugin</artifactId>
        <version>1.13.1</version>
        <executions>
          <execution>
            <id>package</id>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

2. prop.json 参数

{
  "topic":"pupu_main",
  "kafka_brokers":"127.0.0.1:9092",
  "group_id":"pHistTask",
  "s3_path":"/Users/Desktop/code/test",
  "checkpoint.interval":"60000",
  "checkpoint.timeout": "1200000"
}

3. code

3.1 FlinkTest1.class

package demo.test;

import com.alibaba.fastjson.JSON;
import lombok.Builder;
import org.apache.flink.api.java.utils.ParameterTool;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;


@Builder
public class FlinkTest1 {

    public void start(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironment();
        ParameterTool params = ParameterTool.fromArgs(args);
        System.out.println(JSON.toJSON(params));
        env.setParallelism(1);
        // 构建测试数据
        DataStream<String> dataStream = env.fromElements("Hello", "World");
        // 执行测试操作
        DataStream<String> resultStream = dataStream.map(String::toUpperCase);
        // 验证测试结果
        resultStream.print();
        env.execute();
    }
}

3.1 FlinkTest1.class

package demo.test;

import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.flink.api.java.utils.ParameterTool;
import org.junit.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class FlinkDemoTest {

    @Test
    public void FlinkTest1() throws Exception {
        String[] args = readFile("prop.json");
        FlinkTest1.builder().build().start(args);
    }

    private String[] readFile(String propFileName) throws Exception {
        List<String> sList = new ArrayList<>();
        File file = new File(Objects.requireNonNull(FlinkDemoTest.class.getClassLoader().getResource(propFileName)).getPath());
        JSONObject jsonObject = JSON.parseObject(FileUtil.readString(file, "UTF-8"));
        for (String key : jsonObject.keySet()) {
            String value = jsonObject.getString(key);
            sList.add("--" + key);
            sList.add(value);
        }
        return sList.toArray(new String[0]);
    }

    public static void main(String[] args) throws Exception {
        List<String> sList = new ArrayList<>();
        File file = new File(Objects.requireNonNull(FlinkDemoTest.class.getClassLoader().getResource("prop.json")).getPath());
        JSONObject jsonObject = JSON.parseObject(FileUtil.readString(file, "UTF-8"));
        for (String key : jsonObject.keySet()) {
            String value = jsonObject.getString(key);
            sList.add("--" + key);
            sList.add(value);
        }
        String[] result = sList.toArray(new String[0]);
        ParameterTool params = ParameterTool.fromArgs(result);
        System.out.println(JSON.toJSONString(params.toMap()));
    }

}

3.3 结果

在这里插入图片描述

### 回答1: Flink风控代码Github是目前在Github上公开可见的一种基于Flink架构的风控工具。该工具旨在帮助企业和机构更好地管理和控制其风险,从而支持公司的业务增长和发展。Flink风控代码Github的作者使用Apache Flink作为其主要技术架构,这是一种流处理技术,其基本思想是将输入数据流转换为输出数据流,并进行状态管理、数据窗口处理、流处理和时间轴控制等功能。 该工具为用户提供了一些常用的风险控制策略和算法,帮助用户实现对各种风险类型进行识别和监控,包括金融领域内的信用风险、市场风险、资产风险和操作风险等等。用户只需通过简单的配置,即可快速部署和使用该工具。同时,用户也可以根据自己的需求自定义一些风险控制策略,以满足不同的业务场景要求。 总的来说,Flink风控代码Github是一种非常有价值的风控工具,其核心特点包括高性能、低延迟、高可扩展性、易用性和大规模分布式计算能力等。该工具已经在金融、电商、物流、互联网等领域得到了广泛应用,并得到了用户的一致好评。 ### 回答2: Flink 风险控制代码 Github 是开源社区中一个十分流行的项目,它的核心目的是利用 Flink 流处理引擎对交易数据进行实时监控和风险控制。该项目的 Github 地址为 https://github.com/alibaba/flink-cep ,它提供了可以直接运行的基于 Flink 的风险控制系统,用户可以快速地将该系统部署在自己的环境中,实现自己的风险控制需求。 在 Flink 风控代码 Github 中,主要的组件有 Flink CEP(Complex Event Processing)引擎、Kafka 数据源、规则引擎和设备管理器。其中 Flink CEP 引擎是最核心的部分,它负责处理实时的交易数据,并根据自定义的规则进行风险控制。Kafka 数据源用于接收外部交易数据源,规则引擎用于定义风险监控的规则,设备管理器用于监管风险控制系统的硬件资源。 Flink 风控代码 Github 的使用也非常简单,用户只需要在本地搭建好 Flink 的开发环境,然后从 Github 上下载代码并进行配置,最后运行即可实现风险控制功能。该代码可定制性强,用户可以根据自己的实际需求选择不同的规则引擎和设备管理器,定制自己的风险控制系统,大大提高了系统的灵活性。 总之,Flink 风控代码 Github 是一个非常优秀的开源项目,能够为用户提供高效可靠的风险控制解决方案。随着大数据技术和人工智能技术的不断发展,该项目将在金融、保险等领域发挥越来越重要的作用。 ### 回答3: Flink风控代码GitHub是一个开源项目,旨在为金融领域的风险控制提供实用的工具和方法,以保障金融业务的可持续发展。该项目的主要目标是为金融机构提供高效、准确、可靠的风险管理解决方案,并通过开源社区的协作和贡献,不断推进金融技术的发展。 该项目采用Flink作为主要技术架构,利用其高度分布式、高可靠性、高性能等特点,满足金融业务中大数据实时处理的需求。代码库中包含了各种实用的风控算法和分析工具,例如实时风险监控、欺诈检测、信用评估等,同时也提供了高定制化的模块和接口,可以根据具体业务需求进行二次开发和定制。 值得一提的是,该项目引入了大量的机器学习和人工智能算法,利用深度学习、强化学习等技术实现对金融风险的智能识别和预测。另外,该项目还积极与其他开源项目合作,例如Apache Eagle、Hadoop、Spark等,实现了更为全面和完整的金融风险控制解决方案。 总的来说,Flink风控代码GitHub对金融业风控领域的发展起到了积极的推动作用,扩大了开源社区的影响力和贡献。我们期待在未来的发展中,该项目可以持续完善和改进,为金融科技的发展做出更多的贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值