flink基础篇-开发flink,必备的环境搭建

一、安装

1.1、环境

  1. 系统:mac
  2. java 版本:java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
  1. flink 版本:1.10.0

1.2、启动

  1. 执行命令 ./apache-flink-1.10.0/deps/bin/start-cluster.sh
  2. 访问:http://127.0.0.1:8081/#/overview
    flink基础篇-开发flink,必备的环境搭建_第1张图片

二、写一个demo

2.1 在idea上建一个工程,选择这个archetype

flink基础篇-开发flink,必备的环境搭建_第2张图片

2.2 coding

import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.util.Collector;

public class WordCountExample {


    public static void main(String[] args) throws Exception {
        //构建环境
        final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
        //通过字符串构建数据集
        DataSet<String> text = env.fromElements(
                "this is the first example about flink");
        //分割字符串、按照key进行分组、统计相同的key个数
        DataSet<Tuple2<String, Integer>> wordCounts = text
                .flatMap(new LineSplitter())
                .groupBy(0)
                .sum(1);
        //打印
        wordCounts.print();
    }
    //分割字符串的方法
    public static class LineSplitter implements FlatMapFunction<String, Tuple2<String, Integer>> {
        @Override
        public void flatMap(String line, Collector<Tuple2<String, Integer>> out) {
            for (String word : line.split(" ")) {
                out.collect(new Tuple2<String, Integer>(word, 1));
            }
        }
    }
}

3. 执行

3.1 在idea上运行

出现报错

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/common/functions/FlatMapFunction

在pom去掉关于flink的依赖的scope,改为如下

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-java</artifactId>
			<version>${flink.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
			<version>${flink.version}</version>
		</dependency>

在执行一次,截取一部分日志:
flink基础篇-开发flink,必备的环境搭建_第3张图片

3.2 命令提交给Apache Flink Dashboard

1、给程序的jar,copy到./apache-flink-1.10.0/deps/examples目录下
2、然后提交执行命令

./bin/flink run -c com.learn.fink.WordCountExample ../examples/flink_example-1.0.0-SNAPSHOT.jar 

3、执行结果
flink基础篇-开发flink,必备的环境搭建_第4张图片

3.3 在Apache Flink Dashboard上执行

flink基础篇-开发flink,必备的环境搭建_第5张图片
点击Add New,可以上传jar,然后点击submit
flink基础篇-开发flink,必备的环境搭建_第6张图片
可以看到结果为
flink基础篇-开发flink,必备的环境搭建_第7张图片

你可能感兴趣的:(flink)