精华内容
下载资源
问答
  • java代码开发flink指南 必须的依赖 创建项目 检查项目 构建/编译项目 下一步 通过几个简单的步骤就可以使用java程序开发flink 必须的依赖 1:maven3.0.4(或者更高版本) 2:java8.x 创建项目 使用...

    java代码开发flink指南

     

    • 必须的依赖
    • 创建项目
    • 检查项目
    • 构建/编译项目
    • 下一步

    通过几个简单的步骤就可以使用java程序开发flink

     

    必须的依赖

    1:maven3.0.4(或者更高版本)

    2:java8.x

     

    创建项目

    使用下面的命令创建项目

    使用maven命令

    $ mvn archetype:generate                               \
          -DarchetypeGroupId=org.apache.flink              \
          -DarchetypeArtifactId=flink-quickstart-java      \
          -DarchetypeVersion=1.4.1

    或者使用quickstart脚本

    curl https://flink.apache.org/q/quickstart.sh | bash

    其实也可以手工在idea或者eclipse中创建一个普通maven项目即可【只是创建项目中是空的,不包含flink测试代码,后期熟悉了以后可以自己手工创建项目即可,前期不熟悉的话还是参考官网步骤】

    检查项目

    在你的工作目录中将会有一个新目录,如果你使用的是 curl 这种方式创建的项目,这个目录的名称就是 quickstart。否则,目录名称就是你指定的maven项目的 artifactId。

    $ tree quickstart/
    quickstart/
    ├── pom.xml
    └── src
        └── main
            ├── java
            │   └── org
            │       └── myorg
            │           └── quickstart
            │               ├── BatchJob.java
            │               └── StreamingJob.java
            └── resources
                └── log4j.properties

    这个实例项目是maven项目,它包含两个class,StreamingJob 和 BatchJob是DataStream和DataSet程序的两个基本实现。main方法是程序的入口,既可以进行测试也可以正式执行。

    我们推荐你把这个项目导入到你的IDE中进行开发和测试。IntelliJ IDEA 原生支持maven项目。如果你使用eclipse,使用m2e插件导入maven项目。有的eclipse默认内置了这个插件,有的需要你手工安装。

    Mac用户注意:在使用flink的时候,默认的JVM heapsize参数设置的太小。你必须手工调大。在eclipse中,选择 Run Configurations -> Arguments 然后在VM Arguments 输入框中输入 -Xmx800m

    构建/编译项目

    如果你想对你的项目编译打包,进入你的项目根目录,执行 maven clean package 命令。【前提是你需要在你本机安装maven,并且配置M2_HOME环境变量】。然后你将会在项目根目录的target目录下面看到打包好的jar包:target/<artifact-id>-<version>.jar

    注意:如果你使用不同的class而不是使用streamingJob作为入口类,我们建议你在pom.xml文件中修改mainClass配置的类型。这样,flink程序在运行的时候就可以不用特意指定入口类了。

    下一步

    编程应用程序!

    如果你正在编写streaming流处理程序并且在想改写什么,可以看一看这个文档Stream Processing Application Tutorial

    如果你正在编写batch批处理程序并且在想改写什么,可以看一看这个文档Batch Application Examples

    如果想查看API的完整描述信息,可以看一看这两个API  DataStream APIDataSet API

    如果你有任何问题,可以在我们的邮件列表进行提问,我们非常乐意帮助你。

     

     

     

    获取更多大数据资料,视频以及技术交流请加群:

     

     

     

    展开全文
  • scala代码开发flink指南 构建工具 sbt【建议参考使用下面的maven,sbt模块暂时不做翻译】 maven 必须的依赖 创建项目 检查项目 构建/编译项目 下一步 构建工具 Flink项目可以使用不同的工具进行管理和编译...

    scala代码开发flink指南

     

    • 构建工具
    • sbt【建议参考使用下面的maven,sbt模块暂时不做翻译】
    • maven
    1. 必须的依赖
    2. 创建项目
    3. 检查项目
    4. 构建/编译项目
    • 下一步

    构建工具

    Flink项目可以使用不同的工具进行管理和编译。

    sbt和maven

    建议使用maven,因为目前大数据开发,工作中使用maven的比较多。

     

    ================maven=================

    必须的依赖

    1:maven3.0.4(或者更高)

    2:java8.x

    创建项目

    使用下面的命令创建项目

    使用maven命令

    $ mvn archetype:generate                               \
          -DarchetypeGroupId=org.apache.flink              \
          -DarchetypeArtifactId=flink-quickstart-scala      \
          -DarchetypeVersion=1.4.1

    或者使用quickstart脚本

    curl https://flink.apache.org/q/quickstart-scala.sh | bash

    其实也可以手工在idea或者eclipse中创建一个普通maven项目即可【只是创建项目中是空的,不包含flink测试代码,后期熟悉了以后可以自己手工创建项目即可,前期不熟悉的话还是参考官网步骤】

    检查项目

    在你的工作目录中将会有一个新目录,如果你使用的是 curl 这种方式创建的项目,这个目录的名称就是 quickstart。否则,目录名称就是你指定的maven项目的 artifactId。

    $ tree quickstart/
    quickstart/
    ├── pom.xml
    └── src
        └── main
            ├── resources
            │   └── log4j.properties
            └── scala
                └── org
                    └── myorg
                        └── quickstart
                            ├── BatchJob.scala
                            └── StreamingJob.scala

    这个实例项目是maven项目,它包含两个class,StreamingJob 和 BatchJob是DataStream和DataSet程序的两个基本实现。main方法是程序的入口,既可以进行测试也可以正式执行。

    我们推荐你把这个项目导入到你的IDE中进行开发和测试。

    IntelliJ IDEA 原生支持maven和scala开发。根据我们的经验,IntelliJ 提供了最好的flink开发环境体验。

    如果使用eclipse,你需要安装下面插件,你可以根据eclipse提供的更新站点安装。

     

    • Eclipse 4.x
    1. Scala IDE
    2. m2eclipse-scala
    3. Build Helper Maven Plugin
    • Eclipse 3.8
    1. Scala IDE for Scala 2.11 or Scala IDE for Scala 2.10
    2. m2eclipse-scala
    3. Build Helper Maven Plugin

    构建/编译项目

     

    如果你想对你的项目编译打包,进入你的项目根目录,执行 maven clean package 命令。【前提是你需要在你本机安装maven,并且配置M2_HOME环境变量】。然后你将会在项目根目录的target目录下面看到打包好的jar包:target/<artifact-id>-<version>.jar

    注意:如果你使用不同的class而不是使用streamingJob作为入口类,我们建议你在pom.xml文件中修改mainClass配置的类型。这样,flink程序在运行的时候就可以不用特意指定入口类了。

    下一步

    编程应用程序!

    如果你正在编写streaming流处理程序并且在想改写什么,可以看一看这个文档Stream Processing Application Tutorial

    如果你正在编写batch批处理程序并且在想改写什么,可以看一看这个文档Batch Application Examples

    如果想查看API的完整描述信息,可以看一看这两个API  DataStream API 和 DataSet API

    如果你有任何问题,可以在我们的邮件列表进行提问,我们非常乐意帮助你。

     

     

     

    获取更多大数据资料,视频以及技术交流请加群:

     

     

     

    展开全文
  • Flink-Super:一套基于Scala开发的一套完整的Flink代码
  • 1 flink-scala依赖 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.12</artifactId> <version>1.10.1</version> </dependency&...

    目录

    3 scala-maven-plugin

    4 maven-assembly-plugin

    5 完整pom.xml


    1 flink-scala依赖

     <dependency>
           <groupId>org.apache.flink</groupId>
           <artifactId>flink-scala_2.12</artifactId>
           <version>1.10.1</version>
     </dependency>

    2 flink-streaming-scala

    <dependency>
         <groupId>org.apache.flink</groupId>
         <artifactId>flink-streaming-scala_2.12</artifactId>
         <version>1.10.1</version>
    </dependency>

    3 scala-maven-plugin

    <!-- 该插件用于scala文件编译成class文件 -->
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>4.4.0</version>
                    <executions>
                        <execution>
                            <!-- 声明绑定到maven的compile阶段 -->
                            <goals>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

    4 maven-assembly-plugin

    <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>

    5 完整pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.study.liucf</groupId>
        <artifactId>flink-liucf-study</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-scala_2.12</artifactId>
                <version>1.10.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-streaming-scala_2.12</artifactId>
                <version>1.10.1</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <!-- 该插件用于scala文件编译成class文件 -->
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>4.4.0</version>
                    <executions>
                        <execution>
                            <!-- 声明绑定到maven的compile阶段 -->
                            <goals>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--  支持自定义的打包结构,也可以定制依赖项 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>

    展开全文
  • 最近一直都在搞 Flink 相关的开发,清晰的代码结构有利于开发规范的统一和业务逻辑的梳理。 Scala 代码结构,官网推荐的如下, // create a TableEnvironment for specific planner batch or streaming val ...

    最近一直都在搞 Flink 相关的开发,清晰的代码结构有利于开发规范的统一和业务逻辑的梳理。

    Scala 代码结构,官网推荐的如下,

    // create a TableEnvironment for specific planner batch or streaming
    val tableEnv = ... // see "Create a TableEnvironment" section
    
    // create an input Table
    tableEnv.executeSql("CREATE TEMPORARY TABLE table1 ... WITH ( 'connector' = ... )")
    // register an output Table
    tableEnv.executeSql("CREATE TEMPORARY TABLE outputTable ... WITH ( 'connector' = ... )")
    
    // create a Table from a Table API query
    val table2 = tableEnv.from("table1").select(...)
    // create a Table from a SQL query
    val table3 = tableEnv.sqlQuery("SELECT ... FROM table1 ...")
    
    // emit a Table API result Table to a TableSink, same for SQL result
    val tableResult = table2.executeInsert("outputTable")
    tableResult...

    但是,实践下来,感觉不是很实用,我们就自己微调了下,还是喜欢下面的代码结构体。

    1. 创建表执行环境(table env)

    2. 创建输入表,读取数据流,处理为数据流,转化为输入表。

    3. 创建输出表,将输入表转化为输出表。

    4. 任务执行。

    def main(args: Array[String]): Unit = {
        // 1. create table env (创建表执行环境)
        val env = StreamExecutionEnvironment.getExecutionEnvironment
        val settings = EnvironmentSettings
          .newInstance()
          .useOldPlanner()
          .inStreamingMode()
          .build()
        val tableEnv = StreamTableEnvironment.create(env, settings)
    
        // 2. create inputTable (inputStream => dataStream => inputTable)(读取输入流,处理数为数据流,转化为输入表)
        // 2.1 inputStream => dataStream
        val inputStream: DataStream[String] = env.readTextFile(filePath)
        val dataStream: DataStream[(String, Int)] = inputStream.flatMap(_.split(" ")).map((_, 1))
        // 2.2 dataStream => inputTable
        val inputTable = tableEnv.fromDataStream[(String, Int)](dataStream, $"word", $"count")
          .groupBy($"word")
          .select($"word", $"count".sum)
    
        // 3. create outputTable (inputTable => outputTable)(将输入表转化为输出表)
    
        // 4. env exec (任务执行)
        env.execute("TableApiTemplate Job")
      }

     

    展开全文
  • 重点主要是使用State,模拟实现匹配场景功能 ,想了解更多完整代码,可以留言 package com.coder.flink.core.stormToFlink; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import ...
  • flink-core 基础的内部数据定义 一些函数(function) The base interface for all user-defined functions. This interface is empty in order to allow extending interfaces to be SAM (single abstract method) ...
  • flink drools开发

    千次阅读 2019-07-03 20:51:39
    本文介绍下flink drools集成开发,实现规则代码分离。 项目代码结构如下: pom maven配置: <properties> <!--<drools.version>7.23.0.Final</drools.version>--> <d...
  • flink的 scala shell命令行交互模式开发 flink带有一个集成的scala shell命令行。它可以以本地方式启动来模拟集群集群。执行下面的命令就可以通过shell命令行和flink集群交互(这种方式方便于代码调试): bin/...
  • flink实例开发-详细使用指南

    万次阅读 2018-03-10 17:50:00
    Flink入门及实战-上: ...flink实例开发-详细使用指南 配置一个maven项目 编写一个flink程序 编程实战:编写一个向kafka写数据的程序在集群运行 flink整合kafka 在本指南中,我们将从头开始,从flink项...
  • flink实例开发-batch批处理实例

    万次阅读 2018-03-10 22:56:00
    batch批处理实例 ...以下的全部源代码和更多的例子可以在flink源码仓库的flink-examples-batch或者flink-examples-streaming模块中看到。 运行一个示例 Word Count 单词计数 Page Rank 网页排名 ...
  • Apache Flink-使用FlinkSQL开发应用

    千次阅读 2020-07-09 23:47:00
    这是我毕业设计项目中的一个模块,后面会提供源码 ...直接看Flink的部分吧,这部分做的事情就是消费Kafka中的数据然后基于Event Time(事件时间)的10分钟级别的滚动窗口统计搜索次数。然后将结果集s.
  • 注:本篇章的flink学习均是基于java开发语言 我们如果要使用flink进行计算开发,一个完整的开发步骤是怎样的呢? 前情回顾:什么叫有界数据流,什么叫无界数据流(何为流处理,何为批处理)? - Batch Analytics,...
  • Apache Flink是由自愿的代码贡献者维护、优化及扩展的。Apache Flink社区鼓励任何人贡献源代码。为了使得代码贡献者及复查者之便利,以及保存高质量的代码基础,我们遵循着一个贡献代码的过程,该过程将在本文档中...
  • Flink项目开发记录 项目背景:使用的jar包版本: flink1.9.0 、kafka 2.0.1、scala 2.11.11 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</arti.....
  • Flink:Flink-SQL开发

    千次阅读 2020-07-27 18:08:40
    Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言。 自 2015 年开始,阿里巴巴开始调研开源流计算引擎,最终决定基于 Flink 打造新一代计算引擎,针对...
  • 搭建Scala、Flink开发环境,使用IDEA开发Scala程序 一、基于IDEA安装scala File——Settings——Plugins搜索Scala安装,安装后重启IDEA使Scala插件生效 二、配置Flink开发环境 <dependencies> <!--...
  • Flink项目开发记录之合并数据流

    千次阅读 2019-12-05 10:12:27
    Flink项目开发记录之合并数据流 项目目前的jar包环境:flink1.9.0 这边就是常用jar,就不列出了,合并流我这边选择是使用相同的key流然后设置时间的上下限,进行合流 项目背景:由于业务需求,将原本的从kafka接收的...
  • 【大数据Flink系列】 Flink 开发环境搭建
  • 在Mac上使用idea搭建flink java开发环境

    千次阅读 2019-12-30 13:15:49
    本文档记录的是使用flink的java API简单地创建应用的过程。 前置条件:需要安装Java、maven和flink。 1.1 Java环境变量 Java需要jdk、path、classpath等环境变量,这里使用Mac下自带的jdk,配置如下: export JAVA_...
  • 本篇记录搭建flink本地开发环境的过程,使用的flink版本为1.5。 00 下载安装、启动 一、JDK版本要求 想要运行flink,JDK版本需要是JDK8+,如果版本低于8,需要进行升级噢。 二、下载安装、启动 从下载页面下载一个...
  • 使用Docker配置Flink1.12开发测试环境 简单介绍 Docker现在是开发界必不可少的工具,我们使用docker能够快速将自己的应用进行测试和打包。同时利用容器我们在软件开发中很容就实现了CI和CD的部署配置。当前Flink的...
  • Flink 流式处理中,存在时间的不同概念 Event Time: 事件的创建时间,通常由事件中的时间戳描述,相当于食品的生产日期 Ingestion Time:数据进入flink的时间,相当于食品快递到你家的时间 Processing Time:是每个执行...
  • 点击上方蓝色字体,选择“设为星标”回复”资源“获取更多资源我们在之前的文章中详细介绍过Zepplin的来龙去脉,很多大厂基于Flink开发了自己的SQL开发平台。更多的公司可能需要选择一种...
  • Flink开发工程搭建

    2019-03-29 10:39:13
    flink开发工程 flink采用maven管理工程,官网的template也是基于maven构建的。flink依赖比较好的地方是,所有的版本都是相同的,只要定义一个version变量就可以全部搞定。 maven依赖: <dependency> <...
  • 里面没有代码。 视频内容: 01.flink介绍.mp4 02.flink-无界数据集-有界数据集.mp4 03.flink-两种执行模型.mp4 04.flink-特点.mp4 05.flink-特点2.mp4 06.flink-流计算模型-有界数据集处理.mp4 07.flink-从下到上的...
  • Flink 快速实战开发

    2019-12-05 23:30:52
    Flink 可谓是开启了流式计算技术的新时代,现在无论大中小公司基本上都对 Flink 技术有不同程度的尝试,或是已经进行了大量实时计算的改造。伴随着阿里对 Flink 的极力推崇,Flink 无论从自身优势还是外部言论都必将...
  • Flink项目开发记录之将日志输出到kafka 老规矩,我们先上传所需要的jar包 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11</artifactId> ...
  • Idea作为Flink开发环境

    2020-06-12 15:25:10
    Flink开发环境搭建操作手册 Flink环境的搭建我主要从两个方面的加以说明,一方面是Flink环境的安装,包括IDEA安装,Scala安装,Maven安装;另一方面是Flink的项目开发流程,包括Flink项目创建,编码,导出jar包。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,911
精华内容 5,164
关键字:

flink代码开发