依然使用[1]中的代码和工程目录结构。

####################编译和运行#################################

mvn clean package -Dmaven.test.skip=true

###############################################################

我发现实验结果怎么都找不到?

终端没有报错

$FLINK/log下面没有报错

但是终端就是没有实验结果,我的实验结果在哪里?????(浪费了一天时间,um..........)

注意看lsof -i:9999

如果出现:Desktop->Laptop,那么此时词频结果在Laptop的$FLINK_HOME/log(standalone模式)下面或者是yarn的Laptop的log下面(Flink on yarn模式)

模式 启动集群文件 提交jar的命令示范 提交任务前jps 提交任务后jps 实验结果位置
Standalone模式 $FLINK_HOME/bin/start-cluster.sh flink run -c WordCount target/bbb-1.0-SNAPSHOT.jar 118529 Jps
14448 NameNode
14612 DataNode
15092 ResourceManager
118164 TaskManagerRunner
15270 NodeManager
13831 QuorumPeerMain
117750 StandaloneSessionClusterEntrypoint
14448 NameNode
14612 DataNode
120485 Jps
15092 ResourceManager
120212 CliFrontend
118164 TaskManagerRunner
15270 NodeManager
13831 QuorumPeerMain
117750 StandaloneSessionClusterEntrypoint
flink-appleyuchi-taskexecutor-0-Laptop.out

yarn

Flink per-job cluster(在 yarn界面可以看到)

不需要

flink run -m yarn-cluster -p 2 -yjm 700m -ytm 1024m -c WordCount target/bbb-1.0-SNAPSHOT.jar 84304 ResourceManager
83541 NameNode
84501 NodeManager
13831 QuorumPeerMain
83720 DataNode
36681 JobHistoryServer
88078 Jps
85198 ApplicationHistoryServer
84304 ResourceManager
88144 CliFrontend
88560 YarnJobClusterEntrypoint
88899 Jps
83541 NameNode
84501 NodeManager
13831 QuorumPeerMain
83720 DataNode
36681 JobHistoryServer
88763 YarnTaskExecutorRunner
85198 ApplicationHistoryServer
yarn上的taskmanager.out 观看
Flink session cluster(在yarn界面可以看到)

$FLINK_HOME/bin/yarn-session.sh

flink run -p 2 -yjm 700m -ytm 1024m -c WordCount target/bbb-1.0-SNAPSHOT.jar 14448 NameNode
25521 Jps
14612 DataNode
15092 ResourceManager
15270 NodeManager
13831 QuorumPeerMain
23208 YarnSessionClusterEntrypoint
22957 FlinkYarnSessionCli
14448 NameNode
25025 Jps
14612 DataNode
15092 ResourceManager
15270 NodeManager
13831 QuorumPeerMain
23208 YarnSessionClusterEntrypoint
23515 CliFrontend
22957 FlinkYarnSessionCli
 
yarn上的taskmanager.out 观看

上述表格中常说的两种flink on yarn的模式,其实指的是在yarn界面看到的name,如下:

注意哈,flink on yarn有的时候会发现任何地方(Yarn的log,Flink的log,Flink提交jar的log)都没有报错,但是就是找不到程序输出结果。

第一步,看下FLINK的web ui先确认程序有正确在运行。

如果该界面没有任何数据,去yarn界面查下,是不是queue中的资源已经被占满了,如果占满了就释放重新跑。

第二步,要看下lsof -i:9999

(Python3.6) appleyuchi@Desktop:实验$ lsof -i:9999
COMMAND   PID       USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
nc      99279 appleyuchi    3u  IPv4 9314465      0t0  TCP *:9999 (LISTEN)
nc      99279 appleyuchi    4u  IPv4 9314466      0t0  TCP Desktop:9999->Laptop:46194 (ESTABLISHED)

出现这个的意思也就是说需要去Laptop的位置寻找log,

第二步,去yarn界面查看结果,操作步骤如下:

步骤 操作

访问Desktop:8088的得到下图,点击application_xxxx

继续点击appattempt_XXX

选择Laptop左侧的container

然后点击Logs

点击taskmanager.out

注意上述步骤不一定固定,要根据lsof -i:端口的结果来判断输出结果在哪个机子上,

有的时候在Desktop,有的时候在Laptop,

如果是Laptop,有的时候在第②步会显示Laptop的链接,这个时候直接点进去就可以了,此时后面的步骤不再需要照搬。

寻找输出结果所在的核心思路就是:根据lsof -i:端口号的结果,去寻找该结果中对应的节点的taskmanager.out文件

对于standalone也是这样,如果觉得能想到的log都没有报错的话,那么输出结果极有可能在Laptop的$FLINK_HOME/log下面的.out文件中.

补充:

对于standalone而言,每次实验,只会在一个节点的$FLINK_HOME/log下面生成flink-用户名-taskexecutor-3-节点的IP.out

######################下面是一些细节说明################################################

关于flink on yarn-client这个词语,首次出现在[2],引文:"如果你不希望flink yarn client一直运行,也可以启动一个后台运行的yarn session。使用这个参数:-d 或者 --detached"

这个指的也是“flink on yarn”的方式

flink on yarn其实和spark on yarn在形式上差不多。

[4]一般情况下你的 slot 数是你每个 TaskManager 的 cpu 的核数.

另外,[6]中提到,如果是Flink per-job cluster模式,一条命令即可

但是如果是Flink session cluster,则需要提前启动yarn-session.sh文件,这个说法是不对的,无论哪种on yarn方式,都不需要理会yarn-session.sh文件

[7]是[8]的翻译

######################下面是参考文献################################################

Reference:

[1]intellij运行flink的wordcount实验

[2]Flink集群部署详细步骤

[3]Apache Flink 客户端操作

[4]Flink--对parallelism 和 slot的理解

[5]YARN Setup-官方文档

[6]Flink on Yarn两种模式启动参数及在Yarn上的恢复

[7]Apache Flink 客户端操作

[8]Apache Flink Fundamentals: Building a Development Environment and Configure, Deploy and Run Applications

真实集群中Flink命令行各种模式提交wordcount相关推荐

  1. 真实集群下-flink shell的remote模式实验记录

    集群结构: Desktop和Laptop总共两台. 实验步骤: ①start-cluster.sh ②start-scala-shell.sh remote desktop 8082 这里上面的就是f ...

  2. 【Oracle】RAC集群中的命令

    数据库名称:racdb 节点名称:rac3.rac4 注:以下命令均在grid用户中执行 1.查看集群节点的状态: [grid@rac3 ~]$ crsctl check cluster [grid@ ...

  3. 达梦数据库数据守护集群搭建(命令行方式)

    文章目录 达梦数据守护集群介绍 一.前提 二.环境准备 1.数据守护集群搭建 2.配置过程 达梦数据守护集群介绍 达梦数据守护集群软件(DM Data Watch)是一种集成化的高可靠性解决方案,该方 ...

  4. KingbaseES共享集群中crm_mon命令失效原因分析

    目前,在国家的支持下,国产操作系统蓬勃发展.KingbaseES共享集群在开发过程中,已经考虑了诸多跨平台问题,但是在和各个厂商的操作系统适配中,仍然有一些意想不到的问题. 在aarch64平台和lo ...

  5. vue获取url中ip_Kubernetes 集群中这样获取客户端真实 IP

    Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡.在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地 ...

  6. k8s使用port-forward访问集群中的应用程序(只能在执行命令的机器上开放端口)

    k8s使用port-forward访问集群中的应用程序 本文描述了如何使用 kubectl port-forward 访问 Kubernetes 集群中的 Redis Server.这种连接方式在实际 ...

  7. 如何调试Kubernetes集群中的网络延迟问题

    本文深入研究和解决了 Kubernetes 平台上的服务零星延迟问题,就在不久前我也遇到了类似的问题,看似是玄学事件,刚开始归结于网络链路抖动,一段时间后依然存在,虽然影响都是 P99.99 以后的数 ...

  8. Flink 命令行提交参数

    Flink 命令行提交参数: 1 参数必选 : -n,--container <arg> 分配多少个yarn容器 (=taskmanager的数量) 2 参数可选 : -D <arg ...

  9. 在分片集群中追踪MongoDB的操作日志

    2019独角兽企业重金招聘Python工程师标准>>> 介绍 可追踪游标,特别是追踪MongoDB的操作日志是MongoDB中拥有多种用途.非常受欢迎的特色,例如向数据库发送一个有关 ...

最新文章

  1. 路印协议受邀参加澳洲新南威尔士政府孵化器Haymarket HQ分享论坛
  2. POJ 3259 Wormholes(负权环路)
  3. win防火墙禁止访问php文件,windows通过netsh设置防火墙
  4. Array Stabilization
  5. Android Studio之debug调试卡在waiting for debugger界面的解决办法
  6. day69 Django--Form组件
  7. 【重难点】【Java集合 03】ArrayList、LinkedList、 Vector 和 Stack 的区别、CopyOnWriteArrayList
  8. java左右连接sql写法,join用不了了 sql语句写法,不用join
  9. android 插件化 androdpluginmgr 扩展开发问题
  10. 【细胞分割】基于matlab GUI阈值+边缘+形态学+种子点+主动轮廓图像分割【含Matlab源码 1477期】
  11. cass打开dwg文件无效_CAD文件打开时图形文件显示无效怎么办
  12. Photoshop栅格化图层到底什么意思,什么时候该用栅格化涂层
  13. mysql中临时字段_MySQL临时表
  14. C#修改MAC地址类及操作网卡类
  15. Launch文件编写
  16. 基于STC89C51单片机,CH340芯片的下载电路
  17. Mac OS X常用软件介绍
  18. 一台服务器控制上百个抖音账号,怎么批量管理上百个抖音,抖音mcn一键高效运营软件...
  19. word计算机二级视频教程,计算机二级Office入门及上机实践视频教程之Word篇
  20. 基于区块链的价值交易和管理系统

热门文章

  1. Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
  2. urlrewrite伪静态 及多参数传递-附正则表达式语法 [轉]
  3. 设置NTFS文件访问权限
  4. (二)面试前的准备【要知己知彼,不打无准备之仗】
  5. (十三)真题模拟【告诉你答案是什么】
  6. Towxml 3.0来了,让小程序完美支持Markdown
  7. 计算机辅助设计A卷,《计算机辅助设计》考试试卷A.doc
  8. 学习响应式BootStrap来写融职教育网站,Bootsrtap第十二天侧边卡片和列表组
  9. Java WebService 接口的简单生成和调用
  10. 分享两个JavaScript打乱数组顺序实现随机排序洗牌的方法(应用于音乐视频的随机播放等)