zoukankan      html  css  js  c++  java
  • Flink实战(1)

    在Windows上安装

    • 官方网站下载需要的二进制包
    • 比如我下载的是flink-1.2.0-bin-hadoop2-scala_2.10.tgz,解压后进入bin目录
    • 可以执行bat文件,也可以使用cygwin执行sh文件

    安装执行

    安装执行

    创建和执行wordcount示例程序

    使用idea新建一个Maven工程

    我这里使用Intellij IDEA进行开发

    • 使用"new project"创建一个maven工程

    Maven01

    • 指定示例程序的groupId和artifactId

    Maven02

    • 指定示例程序的工程名和路径

    Maven03

    • 在pom.xml添加依赖关系,更新后IDEA会自动下载jar包至本地仓库 (由于markdown解析问题,换成图片)
      Maven03

    • 创建一个wordcountexample类文件
      Maven04

    示例程序解读

    • 基本同标准的Java程序类似,并且含有一个main()方法。每个程序基本由以下5个部分组成:
    • 获取一个ExecutionEnvironment
    • 载入或者创建初始输入数据
    • 指定数据变换的方式
    • 制定计算后的数据输出位置
    • 程序执行
    • 对照上面的WordCountExample
    • 获取一个ExecutionEnvironment
      final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

    • 初始数据:

            DataSet<String> text = env.fromElements(
                    "Who's there?",
                    "I think I hear them. Stand, ho! Who's there?");
    
    • 变换方式:
            DataSet<Tuple2<String, Integer>> wordCounts = text
                    .flatMap(new LineSplitter())
                    .groupBy(0)
                    .sum(1);
    
    • 输出方式
            wordCounts.print();
    
    • 程序执行
            env.execute("Word Count Example");
    

    本地执行

    • 直接使用菜单栏上的Build进行编译,使用Run执行程序
    • 若直接按照样例执行,可能出现以下错误:
    Exception in thread "main" java.lang.RuntimeException: No new data sinks have been defined since the last execution. The last execution refers to the latest call to 'execute()', 'count()', 'collect()', or 'print()'.
    
    • 参照此文,原因是print()方法自动会调用execute()方法,造成错误,所以注释掉env.execute()即可

    上传flink后台运行

    • 首先build jar包,注意将META-INF目录放在src/main/java/resource目录下,否则可能出现找不到main class的问题
    • 将jar包上传至flink后台
      上传jar包
    • 点击提交之后,可以将任务提交给后台执行,执行完成后可以看到执行统计信息。
      执行结果

    --EOF--

  • 相关阅读:
    抓老鼠啊
    币值转换
    打印沙漏
    秋季学习总结
    第五周课程总结&试验报告(三)
    第四周课程总结&试验报告2
    实验报告一 &第三周课程总结
    Java第二周总结
    2019春总结作业
    第十六周
  • 原文地址:https://www.cnblogs.com/shenfeng/p/flink_in_action_1.html
Copyright © 2011-2022 走看看