Flink完全分布式集群安装

Flink支持完全分布式模式,这时它由一个master节点和多个worker节点构成。在本节,我们将搭建一个如下的三个节点的Flink集群。

一、Flink集群安装、配置和运行

Flink完全分布式集群搭建步骤如下:

1、配置从master到worker节点的SSH无密登录,并保持保节点上相同的目录结构。

2、Flink要求在主节点和所有工作节点上设置JAVA_HOME环境变量,并指向Java安装的目录。

使用如下命令检查Java的安装和版本信息:

 $ java -version

3、下载Flink安装包。下载地址:https://flink.apache.org/downloads.html。可以选择任何喜欢的Hadoop/Scala组合。

4、将下载的最新版本的Flink压缩包拷贝到master节点的"~/software/"目录下,并解压缩到"~/bigdata/"目录下,步骤如下:

 $ cd ~/bigdata/$ tar xzf ~/software/flink-1.10.0-bin-scala_2.11.tgz$ cd flink-1.10.0

5、在master节点上配置Flink

所有的配置都在"conf/flink-conf.yaml"文件中。在实际应用中,以下几个配置项是非常重要的:

  • jobmanager.heap.mb:每个JobManager的可用内存量,以MB为单位。
  • taskmanager.heap.mb:每个TaskManager的可用内存量,以MB为单位。
  • taskmanager.numberOfTaskSlots:每台机器上可用的cpu数量,默认为1。
  • parallelism.default:集群中cpu的总数。
  • io.tmp.dirs:临时目录。

首先用编辑器nano打开该配置文件(你也可以用任何你喜欢的编辑器,如vim,都可以)。

   $ nano conf/flink-conf.yaml

编辑如下内容(注意,冒号后面一定要有一个空格):

 jobmanager.rpc.address: master   // 指向master节点jobmanager.rpc.port: 6123jobmanager.heap.size: 1024m      // 定义允许JVM在每个节点上分配的最大主内存量taskmanager.memory.process.size: 1024mtaskmanager.numberOfTaskSlots: 2parallelism.default: 1

6、每个节点下的Flink必须保持相同的目录内容。因此将配置好的Flink拷贝到集群中的另外两个节点work01和work02,使用如下的命令:

 $ scp -r ~/bigdata/flink-1.10.0  hduser@worker01:~/bigdata/$ scp -r ~/bigdata/flink-1.10.0  hduser@worker02:~/bigdata/

7、最后,必须提供集群中所有用作worker节点的列表。在"conf/slaves"文件中添加每个slave节点信息(IP或hostname均可),每个节点一行,如下所示。每个工作节点稍后将运行一个TaskManager:

 masterworker01worker02

8、启动集群:

 $ ./bin/start-cluster.sh

这个脚本会在本地节点启动一个JobManager并通过SSH连接到所有的worker节点(在slaves文件中列出的) 以启动每个节点上的TaskManager。注意观察启动过程中的输出信息,如下:

Starting cluster.
Starting standalonesession daemon on host master.
Starting taskexecutor daemon on host master.
Starting taskexecutor daemon on host worker01.
Starting taskexecutor daemon on host worker02.

可以看出,Flink先在master上启动standalonesession进程,然后依次在master、worker01和worker02上启动taskexecutor进程。

启动以后,分别在master、worker01和worker02节点上执行jps命令,查看各节点上的进程是否正常启动了。

二、执行Flink自带的流处理程序-单词计数

1、首先,启动netcat服务器,运行在9000端口:

 $ nc -l 9000

2、在另一个终端,启动Flink示例程序,监听netcat服务器。它将从套接字中读取文本,并每5秒打印前5秒内每个不同单词出现的次数,即处理时间的滚动窗口。

 $ ./bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname master --port 9000

3、回到第一个终端窗口,在正在运行的netcat终端窗口,随意输入一些内容,单词之间用空格分隔,Flink将会处理它。

 good good studyday day up

4、分别使用ssh登录master、worker01和worker02节点,并执行以下命令,查看日志中的输出:

 $ cd ~/bigdata/flink-1.10.0$ tail -f  log/flink-*-taskexecutor-*.out

可以看到如下输出结果:

 good : 2study : 1day : 2up : 1

5、还可以检查Flink Web UI来查看Job是怎样执行的。

打开浏览器,输入地址:http://master:8081 ,可查看检查调度程序的web前端。web前端应该报告有三个可用的TaskManager实例,以及正在执行的作业。Flink WebUI包含许多关于Flink集群及其作业(JobGraph、指标、检查点统计、TaskManager状态等)的有用而有趣的信息。

点击正在运行的作业,查看作业运行的详细信息,如下图所示:

三、运行Flink自带的批处理作业-单词计数

Flink安装包自带了一个以文本文件作为数据源的单词计数程序,位于Flink安装目录下的"example/batch/"子目录下的WordCount.jar包中。

1、可以执行下面的命令来在Flink集群上执行该程序,读取HDFS上的输入数据文件进行处理,并输出计算结果到HDFS上。

注:从flink 1.8开始,Hadoop不再包含在Flink的安装包中,所以需要单独下载并拷贝到Flink的lib目录下。请从Flink官网下载flink-shaded-hadoop2-uber-2.7.5-1.10.0.jar并拷贝到Flink的lib目录下。

$ start-dfs.sh$ ./bin/flink run ./examples/batch/WordCount.jar--input  hdfs://hadoop:8020/wc.txt --output hdfs://hadoop:8020/result

上面的命令是在运行WordCount时读写HDFS中的文件,其中--input参数指定要处理的输入文件,--output指定计算结果输出到的结果文件。(注:如果不加hdfs://前缀,默认使用本地文件系统

2、执行以下命令查询输出结果:

$ hdfs dfs -cat hdfs://hadoop:8020/result

可以看到以下计算结果:

day 2
good 2
study 1
up 1

3、要停止Flink集群,在终端窗口输入以下命令:

$ ./bin/stop-cluster.sh

 

注:停止单个的Job Manager的命令:

./bin/jobmanager.sh stop cluster

停止单个的Task Manager命令:

./bin/taskmanager.sh stop cluster

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个4体低位交叉的存储器_前交叉韧带术后关节粘连的康复策略

ACL术后粘连的康复现状在国外,前交叉韧带ACL重建术后关节粘连的发生率为1%。在国内,由于多数医院在行前交叉韧带重建术后,对患者缺少及时、系统、科学的康复治疗,大部分患者由此易发生关节粘连,而往往关节粘连造成的功…

Maven多模块打包

在类似如下的场景中进行打包 lottery-rpc 将出现报错&#xff0c;原因是没办法将 lottery-common 一起打包进去。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://…

hadoop 2.6.5 + hive 集群搭建

Hadoop 搭建&#xff1a;https://blog.csdn.net/sinat_28371057/article/details/109135056 hive 搭建 1. 系统环境 centos 7.3 Hadoop 2.7.3 jdk 1.8 MySQL安装在master机器上&#xff0c;hive服务器也安装在master上 hive版本: https://mirrors.cnnic.cn/apache/hive/hive…

光耦和开关频率

为什么80%的码农都做不了架构师&#xff1f;>>> TLP250&#xff0c;HCPL3120都可以 直接驱动小型IGBT&#xff0c;不需要加推挽管 6N137&#xff0c;没有推挽&#xff0c;OC上拉&#xff0c;到最后可能驱动速度还上不去 我们6N137&#xff0c;是用来驱动IPM的 电压…

配置babel_Babel 7 下配置 TypeScript 支持

本文将展示&#xff0c;如何使用 babel/preset-typescript 和 babel/preset-env 配置一个最小但完整的编译环境&#xff0c;打包工具使用 webpack4.41.2插件集 preset-typescriptpreset-typescript 是 Babel 提供的预设插件集之一&#xff0c;Babel 官方对其有一篇简短的介绍&a…

jQuery 计时器(jquery timers)简单应用

jquery timers 代码&#xff08;版本1.2&#xff09;&#xff1a; jquery timers /** * jQuery.timers - Timer abstractions for jQuery * Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com) * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/). …

服务器改用ssh文件登录

首先在服务器生成密钥 ssh-keygen -t rsa -b 4096 将 id_rsa.pub的内容导入到 authorized_keys文件中&#xff0c;这样远程登录时用id_rsa文件登录会与authorized_keys中的文件进行验证。 cat id_rsa.pub >> authorized_keys 关闭ssh密码登录 在 /etc/ssh 下的sshd_conf…

Spark集群完全分布式安装部署

Spark集群完全分布式安装部署下载安装配置Spark 1spark-envsh配置2slaves配置3profile配置复制到其他节点测试总结 Spark集群完全分布式安装部署 本文中所提到的Spark集群所用的系统环境是Centos6.5&#xff0c;共4个节点&#xff0c;前提是Hadoop、JDK都已经安装配置好了&…

抛出错误_不用try catch,如何机智的捕获错误

这是多个feature组合使用后实现的神奇效果&#xff0c;在React源码中被广泛使用。当我读源码看到这里时&#xff0c;心情经历了&#xff1a;懵逼 -- 困惑 -- 沉思 -- 查文档 -- 豁然开朗看完此文&#xff0c;相信你也会发出感叹&#xff1a;还能这么玩&#xff1f;起源我们知道…

js优化工具:ECMAScript Cruncher

利用Thomas Loo开发的ECMAScript Cruncher(ESC 可以http://www.saltstorm.net/depo/esc/或51AJAX.com下载)。ESC是一个小巧的Window Shell脚本。 利用Thomas Loo开发的ECMAScript Cruncher(ESC 可以下载)。ESC是一个小巧的Window Shell脚本。运行ESC&#xff0c;必须使用Window…

ASP.NET 缓存 Cache

ASP.NET 提供一个功能完整的缓存引擎&#xff0c;页面可使用该引擎通过 HTTP 请求存储和检索任意对象.缓存的生存期与应用程序的生存期相同&#xff0c;也就是说&#xff0c;当应用程序重新启动时&#xff0c;将重新创建缓存。 将数据添加到缓存中 1。通过指定其键和值将项添加…

使用Jenkins从gitlab拉取代码并部署以及gitlab更新代码后自动构建

使用Jenkins从gitlab上拉取代码&#xff0c;使用ssh。 创建Jenkins服务器的SSH密钥对&#xff1b;为相应的Gitlab用户添加密钥对的公钥&#xff0c;相当于Jenkins拉取代码时&#xff0c;使用的是该Gitlab用户&#xff0c;拥有其相应的代码克隆权限&#xff1b;Jenkins添加密钥…

wincc版本升级_wincc组态软件下载

wincc7.4中文版这款组态软件是由西门子打造能够为用户们带来众多行业中的各项自动化工业制作效果&#xff0c;广泛运用到钢铁行业以及食品行业&#xff0c;印刷行业中&#xff0c;带给了用户们十分便捷的操作体验&#xff01;wincc中文版介绍由西门子推出的专业数据集与监控软件…

CentOS7.0下Hadoop2.7.3的集群搭建

集群服务器规划 使用3台CentOS-6.8虚拟机进行集群搭建 服务ip主机名称用户HDFSYARNhadoop1192.168.1.40hadoop1root NameNode,Datenode,SecondaryNameNodeResourceManager,NodeManager,hadoop2192.168.1.39hadoop2rootDatenodeNodeManagerhadoop3192.168.1.38hadoop3rootDate…

第五章(1)Libgdx应用框架之生命周期

生命周期 一个libgdx应用有一个良好定义的生命周期&#xff0c;管理应用的状态&#xff0c;比如创建&#xff0c;暂停和恢复&#xff0c;渲染和处理应用。 ApplicationListener 应用开发者通过实现ApplicationListener接口来调整生命周期&#xff1a; publicclassMyGameimpleme…

OnKeyPress事件和Javascript检测键盘输入

对于有些时候&#xff0c;我们需要检测用户键盘输入的键盘信息&#xff0c;来处理一些相应的事件。 这里田子建议使用OnKeyPress“”事件来处理。相类似的还有OnKeyUp和OnKeyDown事件&#xff0c;这些田子个人认为都不是特别的理想化。 假如&#xff0c;我们预定义一个方法fu…

ssh-copy-id 命令快速实现ssh远程免密登录

用ssh-copy-id将公钥复制到远程机器中 将本地公钥拷贝至 用户名为root的远程主机上 ssh-copy-id -i ~/.ssh/id_rsa.pub root192.168.150.128/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/jenkins_home/.ssh/id_rsa.pub" /usr/bin/ssh-copy…

智慧职教云答案在哪里找_职教云网课答案在线查询,职教云答案查询,智慧职教云答案在哪里找到...

[问答题] 简述“二重证据法”及其影响。[问答题] 西方古典史学有哪些传统&#xff1f;[问答题] 古典史学的一般特征&#xff1f;[问答题] 兰克被称为西方史学的泰斗&#xff0c;他对西方史学的贡献主要表现在&#xff1a;[问答题] 中世纪史学的贡献&#xff1f;[问答题] 人类学…

Win10配置VSCode+Opencv3(C++) GCC环境

环境清单&#xff1a; win10 _64位系统 VSCode&#xff1a;官网地址 Opencv&#xff1a;3.4.5 Cmake&#xff1a;3.9.0 MinGw&#xff1a;MinGW-W64 GCC-8.1.0&#xff08;x86_64-posix-seh&#xff09; MinGW配置&#xff1a; MinGW可以在线安装&#xff0c;也可以直接…

100C之13:他该如何存款?

Table of Contents 1 问题2 分析3 解决方案4 题后语问题 假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱&#xff0c;他打算在今后的五年中每年的年底取出1000元&#xff0c;到第五年刚好取完&#xff0c;请算出他存钱时应存多少钱&#xff1f; 分析 也比较简单&am…