002 基于 Standalone 模式部署 Flink 服务

这将是一套完整详细且持续更新的、长期维护的 原创 Flink系列教程、文档,其中会包含各种商用实例详解、Flink源码讲解、机制剖析、周边组件讲解等,旨在帮助开发者快速融入Flink开发,或作为工具文档参阅。也希望更多的开发者可以参与到大数据相关的技术讨论中来,共同商讨疑难杂症,丰富社区。——尽际

本文标题: 基于 Standalone 模式部署 Flink 服务

文章作者: 尽际

发布时间: 2019年07月25日 - 23:38:30

最后更新: 2019年07月25日 - 23:38:30

原始链接:

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。


二、基于 Standalone 模式部署 Flink 服务

通过上一篇文章,我们已经下载了Flink 1.8.1版本的安装包到本地磁盘:

  • flink-1.8.1-bin-scala_2.11.tgz
  • flink-shaded-hadoop-2-uber-2.7.5-7.0.jar

然后将其上传至虚拟机中。

接下来,开始部署 Flink 服务。在此过程中,会穿插Flink相关概念的讲解。

2.1 基于 Standalone 模式部署 Flink 服务

本教程会基于两种模式(Standalone 和 YARN)部署 Flink 服务。

本章首先使用 Standalone 模式部署 Flink 服务。Standalone 是 Flink 自带的服务管理模式,不需要依赖于其他分布式组件,也不需要提前安装其他第三方服务,从而达到开箱即用的效果。

2.1.1 Flink 服务介绍

在部署 Flink 服务之前,我们需要提前了解如下两个基本概念:

  • 客户端(Client)

    向 Flink 集群提交 Job 的客户端。并可以持续与 Flink 集群进行 RPC 通信,从而持续获取 Job 的运行状态。

  • 主服务(JobManager)

    Flink 主服务 的名称为 JobManager。它是一个 Java 进程。

    该服务所在的节点(宿主机)称之为 Flink 主节点(Master)。

    该服务主要用来接收用户(Client 端)提交的Flink Job(数据分析任务),并将 Job 调度分配到从服务上运行。

  • 从服务(TaskManager)

    Flink 从服务 的名称为 TaskManager,它也是一个Java进程。

    该服务所在的节点(宿主机)称之为 Flink 从节点(Woker)。

    该服务主要用来运行 JobManager 派发过来的 Flink Job。

在部署 Flink 服务阶段,暂且不需要了解太多关于任务运行的概念。后续再慢慢展开介绍。此处将展示 Flink 服务的官方架构如图2-1 所示,读者暂且粗略了解即可。

  • 图2-1 Flink 服务架构图
    Flink 服务架构图.png

2.1.2 基于 Standalone 模式部署服务

了解了 Flink 服务的基本概念后,开始根据如下步骤部署服务吧。

在本例中,将在 3 台虚拟机中部署的 Flink 服务如表2-1 所示。

  • 表2-1 Standalone 模式下部署的 Flink 服务的分布

    linux01 linux02 linux03
    JobManager - -
    - TaskManager TaskManager
  1. 解压 Flink 压缩包

    将Flink压缩包上传至第一台虚拟机的 ~/softwares/installations 目录后,使用如下命令进行解压:

    $ tar -zxf tar -zxf ~/softwares/installations/flink-1.8.1-bin-scala_2.11.tgz -C ~/modules/
    
  2. 修改配置文件

    • 修改flink-conf.yaml文件

      修改 conf 目录下的 flink-conf.yaml 配置文件,涉及到修改的内容如下所示:

      jobmanager.rpc.address: linux01
      

      该项配置是指将笔者所使用的第一台虚拟机作为 Master 节点,即,第一台机器会开启 Flink 的JobManager服务。

      提示:如果Master和Worker机器上没有配置JAVA_HOME环境变量,需要在 flink-conf.yaml 中通过 env.java.home 变量指定JAVA的安装目录。

  • 修改slaves文件

    修改 conf 目录下的 slaves 配置文件,修改后的内容如下所示:

    linux02
    linux03
    

    该文件中的每一行是一个 IP主机名,代表稍后会在这些节点上开启 TaskManager 服务。

  1. 合理配置依赖包

    • 添加 Flink-Table 依赖包

      在生产环境中,开发者开发的 Flink 应用程序可能会伴随 Table API 的操作(支持以 SQL 的方式进行数据分析),因此,开发者需要将 Flink 安装目录下的 opt 中的 flink-table_2.11-1.8.1.jar 包拷贝到 lib 目录中。操作命令如下所示:

      $ pwd
      /home/admin/modules/flink-1.8.1
      $ cp -a opt/flink-table_2.11-1.8.1.jar lib/
      
    • 添加 Hadoop 依赖包

      将之前下载好的 flink-shaded-hadoop-2-uber-2.7.5-7.0.jar 包移动至 Flink 安装目录的 lib 目录中,使 Flink 能够支持对 Hadoop 的操作。操作命令如下所示:

      $ pwd
      /home/admin/modules/flink-1.8.1
      $ cp -a ~/softwares/installations/flink-shaded-hadoop-2-uber-2.7.5-7.0.jar ./lib/
      

    以上操作完成后,即可看到 lib 目录下的内容如下所示:

    $ ll lib/
    flink-dist_2.11-1.8.1.jar
    flink-shaded-hadoop-2-uber-2.7.5-7.0.jar
    flink-table_2.11-1.8.1.jar
    log4j-1.2.17.jar
    slf4j-log4j12-1.7.15.jar
    
  2. 分发 Flink 安装目录

    以上步骤配置完成后,即可分发该安装包到其他节点,操作命令如下:

    $ pwd
    /home/admin/modules
    scp -r flink-1.8.1/ admin@linux02:/home/admin/modules/
    scp -r flink-1.8.1/ admin@linux03:/home/admin/modules/
    

    提示:在进行上述操作时,最好配置完成集群各个节点之间的 SSH 无秘钥访问。其中 scp -r 表示远程分发目录到后面的节点对应目录中。

    分发完成后,即可在其他节点对应目录中查看到 Flink 安装包。

  3. 启动 Flink 服务

    接下来,即可启动 Flink 集群,操作命令如下:

    $ pwd
    /home/admin/modules/flink-1.8.1
    $ bin/start-cluster.sh
    Starting cluster.
    Starting standalonesession daemon on host linux01.
    Starting taskexecutor daemon on host linux02.
    Starting taskexecutor daemon on host linux03.
    

    稍等片刻,我们即可通过 jps 分别查看到 3 台节点的进程如下:

    ----------------admin@linux01-----------------
    4132 Jps
    4038 StandaloneSessionClusterEntrypoint
    ----------------admin@linux02-----------------
    3057 Jps
    2951 TaskManagerRunner
    ----------------admin@linux03-----------------
    2977 TaskManagerRunner
    3032 Jps
    

    现在,可以通过浏览器,访问 Flink Master 节点的地址进入后台管理页面,查看启动的集群服务。

    后台页面默认地址如下:

    http://linux01:8081
    

    提示:如果在 Windows 中通过浏览器访问虚拟机中的页面服务,可以通过虚拟机的 IP 地址访问如果想要通过虚拟机的主机名访问,则需要将虚拟机的 IP 地址与虚拟机的主机名配置到 Windows 中的 C:/windows/system32/driver/etc/hosts文件中。

    查看到的页面效果如图2-2 所示。

  • 图2-2 Flink 后台管理页面
    Flink 后台管理页面.png

2.2 基于 Standalone 模式提交 Flink Job

完成上述部署后,可通过运行官方提供的一个案例来检测集群是否能够正常工作。运行官方案例的命令如下:

$ pwd
/home/admin/modules/flink-1.8.1
$  bin/flink run ./examples/batch/WordCount.jar

正常情况下,提交上述命令后,前往 Flink 后台管理页面,即可看到如图2-3 所示内容。

  • 图2-3 提交的 Flink Job
    提交Flink Job.png

在上述提交 Job 的命令中,是最简化的形式,开发者在提交任务时,还可以通过其他参数配置 Job 运行时的资源、状态、功能等信息。我们将在后续的章节中进行说明。

2.3 本章小结

本章基于 Standalone 模式部署了 Flink 服务,在此过程中,忽略了配置文件中的若干可配置项,并简述了相关概念。目的在于先将集群环境梳理清楚,完成集群搭建,循序渐进捋清前置知识。下一章,我们将基于 YARN 模式部署 Flink 服务。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350