美文网首页
[flink]flink入门:安装和使用样例demo

[flink]flink入门:安装和使用样例demo

作者: Wayne维基 | 来源:发表于2019-11-20 12:11 被阅读0次

安装环境准备

  • mac
  • java 8以上
  • idea

安装步骤

  • 官网下载:https://flink.apache.org/downloads.html

  • 下载后解压进入目录

  • flink-1.8.2/bin目录下运行启动脚本:start-cluster.sh

      • image.png
  • 查看是否启动成功
    浏览器输入 :http://localhost:8081

      • image.png
  • 如果有问题,可以查看运行日志:log/

    ps:mac还可以尝试用命令安装

    brew install apache-flink
    

demo

1 利用mvn创建一个工程

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

2 项目构建过程中需要输入groupId,artifactId,version和package
构建后目录结构如下:

    • image.png

3 本教程中的代码
https://github.com/WayneZeng/springcloud-demo/tree/master/flink/flink-demo

4 idea中运行java程序

5 控制台启动一个通讯进程,利用nc命令输入字符串
nc命令简介
)

image.png 6 可以看到java程序的输出 image.png

7 以上是单机方式运行,用集群的方式运行如下:

  • maven打包java工程生成jar
  • 控制台输入jps,看下前面启动的TaskManagerRunner还在,不在的话回到前面运行一次:start-cluster.sh
  • /bin/flink run xxxxx.jar --port 9000
  • 控制台继续输入可以去web页面看到job的运行情况
      • image.png

常见错误:

1 org.apache.flink.api.common.functions.InvalidTypesException

Flink 类型提取依赖于继承等机制,而 lambda 函数比较特殊,它是匿名的,也没有与之相关的类,所以其类型信息较难获取。Eclipse 的 JDT 编译器会把 lambda 函数的泛型签名等信息写入编译后的字节码中,而对于 javac 等常见的其他编译器,则不会这样做,因而 Flink 就无法获取具体类型信息了。
参考官方文档说明
解决方式:
调用return显式指定类型

.returns(WordWithCount.class)
2 This type (GenericType<org.myorg.quickstart.SocketWindowWordCount.WordWithCount>) cannot be used as key.

自己定义一个JAVABEAN的时候,不要忘记写无参构造参数


image.png

相关文章

网友评论

      本文标题:[flink]flink入门:安装和使用样例demo

      本文链接:https://www.haomeiwen.com/subject/lpugictx.html