下载安装

下载地址

下载对应操作系统和版本的flink

 # 首先确认下Java环境
 $ java -version
 java version "1.8.0_111"
 Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
 Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
 ​
 # Linux安装
 $ wget https://www.apache.org/dyn/closer.lua/flink/flink-1.7.2/flink-1.7.2-bin-scala_2.11.tgz # 下载二进制安装包
 $ tar xzf flink-*.tgz   # 解压安装包
 $ cd flink-1.7.1 # 切到安装包目录
 ​
 # Mac安装
 $ brew install apache-flink
 ...
 # 查看版本
 $ flink --version
 Version: 1.2.0, Commit ID: 1c659cf
 ​
 # 查看安装位置
 $ brew info apache-flink
 https://flink.apache.org/
 /usr/local/Cellar/apache-flink/1.7.1 (170 files, 321.1MB) *
  Built from source on 2019-02-14 at 09:32:35
 From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/apache-flink.rb
 ==> Requirements
 Required: java = 1.8 ✔
 ==> Options
 --HEAD
  Install HEAD version
 ==> Analytics
 install: 915 (30 days), 3,279 (90 days), 9,094 (365 days)
 install_on_request: 899 (30 days), 3,226 (90 days), 8,878 (365 days)
 build_error: 0 (30 days)
 ​
 # Mac上注意事项
 # Mac上对应Linux的bin目录在/usr/local/Cellar/apache-flink/1.7.1/libexec
 ​

配置运行

 $ cd flink-1.7.1
 $ ./bin/start-cluster.sh
 # 端口运行在localhost:8081

创建IDEA Maven工程 -> Add Archetype

GroupId: org.apache.flink

ArtifactId: flink-quickstart-java

Version: 1.7.1

添加代码

 public class SocketWindowWordCount {
 ​
     public static void main(String[] args) throws Exception {
 ​
         // the port to connect to
         final int port;
         try {
             final ParameterTool params = ParameterTool.fromArgs(args);
             port = params.getInt("port");
        } catch (Exception e) {
             System.err.println("No port specified. Please run 'SocketWindowWordCount --port <port>'");
             return;
        }
 ​
         // get the execution environment
         final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
 ​
         // get input data by connecting to the socket
         DataStream<String> text = env.socketTextStream("localhost", port, "\n");
 ​
         // parse the data, group it, window it, and aggregate the counts
         DataStream<WordWithCount> windowCounts = text
            .flatMap(new FlatMapFunction<String, WordWithCount>() {
                 @Override
                 public void flatMap(String value, Collector<WordWithCount> out) {
                     for (String word : value.split("\\s")) {
                         out.collect(new WordWithCount(word, 1L));
                    }
                }
            })
            .keyBy("word")
            .timeWindow(Time.seconds(5), Time.seconds(1))
            .reduce(new ReduceFunction<WordWithCount>() {
                 @Override
                 public WordWithCount reduce(WordWithCount a, WordWithCount b) {
                     return new WordWithCount(a.word, a.count + b.count);
                }
            });
 ​
         // print the results with a single thread, rather than in parallel
         windowCounts.print().setParallelism(1);
 ​
         env.execute("Socket Window WordCount");
    }
 ​
     // Data type for words with count
     public static class WordWithCount {
 ​
         public String word;
         public long count;
 ​
         public WordWithCount() {}
 ​
         public WordWithCount(String word, long count) {
             this.word = word;
             this.count = count;
        }
 ​
         @Override
         public String toString() {
             return word + " : " + count;
        }
    }
 }

打包运行

 $ maven clean package -Dmaven.test.skip=true

开启监听端口

 $ nc -l 9000

运行上方代码

 # 连接到上方端口, 切到上方打好的jar包路径
 $ flink run -c 包路径.SocketWindowWordCount jar包路径 --port 9000 # 包路径指的是当前的java类的package

我们可以在nc中输入数据

 $ nc -l 9000
 hello hello hello
 hehe
 your world

查看结果

 $ tail -f log/flink-*-taskexecutor-*.out

停止flink

 $ ./bin/stop-cluster.sh

Flink起步安装和使用的更多相关文章

  1. Mac 上flink的安装与启动

    在Mac 上安装flink,需要通过Homebrew安装的 1.howmebrew的安装方式,在终端粘贴以下命令,或者去官网https://brew.sh/index_zh-cn 找到此代码复制粘贴到 ...

  2. Flink本地安装和创建Flink应用

    本篇文章首发于头条号Flink本地安装和创建Flink应用,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注 ...

  3. Apache Flink教程----安装初体验

    1.window 版本安装 https://flink.apache.org/downloads.html#apache-flink-164 D:\flink-1.6.2-bin-scala_2\fl ...

  4. webpack学习(一)起步安装

    起步   webpack 用于编译 JavaScript 模块.一旦完成安装,你就可以通过 webpack 的 CLI 或 API 与其配合交互.如果你还不熟悉 webpack,请阅读核心概念和打包器 ...

  5. Flink单机版安装与wordCount

    Flink为大数据处理工具,类似hadoop,spark.但它能够在大规模分布式系统中快速处理,与spark相似也是基于内存运算,并以低延迟性和高容错性主城,其核心特性是实时的处理流数据.从此大数据生 ...

  6. Apache Flink 简单安装

    流计算这两年很火了,可能对数据的实时性要求高.现在用的hadoop框架,对流计算的支持,主要还是微批(spark),也不支持“Exactly Once”语义(可以使用外接的数据库解决),公司项目可能会 ...

  7. Flink的安装配置

    一. Flink的下载 安装包下载地址:http://flink.apache.org/downloads.html  ,选择对应Hadoop的Flink版本下载 [admin@node21 soft ...

  8. flink linux安装 单机版

    1.下载二进制的Flink,根据你喜欢的Hadoop/Scala版本选择对应的Flink版本. https://flink.apache.org/downloads.html2.选择存放目录 解压 f ...

  9. 起步 - 安装 Git

    安装 Git 是时候动手尝试下 Git 了,不过得先安装好它.有许多种安装方式,主要分为两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包. 从源代码安装 若是条件允许,从源代码 ...

随机推荐

  1. Html5_标签

    HTML 1.一套规则,浏览器认识的规则. 2.开发者: 学习Html规则 开发后台程序: - 写Html文件(充当模板的作用) ****** - 数据库获取数据,然后替换到html文件的指定位置(W ...

  2. 牛客练习赛29 B

    炎热的早上,gal男神们被迫再操场上列队,gal男神们本来想排列成x∗x的正方形,可是因为操场太小了(也可能是gal男神太大了),校长安排gal男神们站成多个4∗4的正方形(gal男神们可以正好分成n ...

  3. redis--py操作redis【转】

    Python操作redis 请给作者点赞--> 原文链接 python连接方式:点击 下面介绍详细使用 1.String 操作 redis中的String在在内存中按照一个name对应一个val ...

  4. 函数名&函数名取地址

    有时看到如下的代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 /*****************************/ #includ ...

  5. Spring core resourc层结构体系及JDK与Spring对classpath中资源的获取方式及结果对比

    1. Spring core resourc层结构体系 1.1. Resource相关结构体系 1.2. ResourceLoader相关体系 2. JDK与Spring对classpath中资源的获 ...

  6. Leetcode23--->Merge K sorted Lists(合并k个排序的单链表)

    题目: 合并k个排序将k个已排序的链表合并为一个排好序的链表,并分析其时间复杂度 . 解题思路: 类似于归并排序的思想,lists中存放的是多个单链表,将lists的头和尾两个链表合并,放在头,头向后 ...

  7. python - work5 - 类与对象

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: work_20181119.py@ide: PyCharm Communit ...

  8. Leetcode 450.删除二叉搜索树的节点

    删除二叉搜索树的节点 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变.返回二叉搜索树(有可能被更新)的根节点的引用. 一般来 ...

  9. TensorFlow学习笔记(6):TensorBoard之Embeddings

    本文基于TensorFlow官网的How-Tos写成. TensorBoard是TensorFlow自带的一个可视化工具,Embeddings是其中的一个功能,用于在二维或三维空间对高维数据进行探索. ...

  10. Django模板(filter过滤器{{ }}与tag标签{% %}应用)

     模板里面过滤器与标签的应用 templates模板里面的应用参考(主要应用在这里面) <!DOCTYPE html> <html lang="en"> & ...