Flink集群模式部署及案例执行
一.软件要求
Flink在所有类UNIX的环境【例如linux,mac os x和cygwin】上运行,并期望集群由一个 主节点和一个或多个工作节点组成。在开始设置系统之前,确保在每个节点上都安装了一下软件:
1.Java1.8.x或更高版本
2.ssh,必须运行sshd才能使用管理远程组件的Flink脚本
在所有集群节点上都具有免密码的ssh和相同的目录结构,将使你可以使用flink脚本来控制所有内容。
二.Flink Standalone模式设置
1.下载
前往Flink官网下载最新版Flink【我下载的是flink-1.8.2】。若要在Hadoop上使用Flink,则需要下载与Hadoop匹配的版本。下载完成后,上传到几个各个节点并解压

2.配置Flink
通过编辑conf/flink-conf.yaml来为集群配置flink。设置jobmanager.rpc.address以指定flink主节点。还可以通过设置jobmanager.heap.size和taskmanager.heap.size来指定允许JVM在每个节点上分配的最大内存。这些值都是以MB为单位,如果某些工作程序节点有更多的内存分配给Flink集群,则可以通过FLINK_TM_HEAP在那些特定节点上设置环境变量来覆盖默认值。最后,必须提供集群中所有节点的列表,这些列表将用作工作节点。因此,类似于HDFS配置,编辑文件conf/slaves并输入每个子节点的IP/主机名。每个子节点都将运行TaskManager。
以下示例说明了具有三个节点(IP地址从10.0.0.1到10.0.0.3且主机名分别为master,worker1,worker2)的设置,并显示了配置文件的内容:

具体配置如下:
jobmanager.rpc.address:192.168.136.7 # 在每个节点上分别指定各自节点的IP/主机名
taskmanager.tmp.dirs: /usr/local/soft/flink-1.8.2/tmp # 指定每个taskmanager的临时目录
jobmanager.rpc.port:
jobmanager.heap.size: 1024m
taskmanager.heap.size: 1024m
taskmanager.numberOfTaskSlots:
parallelism.default:
解释如下:
1.jobmanager.heap.size:每个JobManager的可用内存大小,默认为1024M
2.taskmanager.heap.size:每个TaskManager的可用内存大小,默认为1024M
3.taskmanager.numberOfTaskSlots:每台计算机可用的CPU数,默认为1
4.parallelism.default:集群中的CPU总数之和
5.io.tmp.dirs:临时目录
3.配置slaves

4.配置环境变量

5.启动flink
执行bin/start-cluster.sh启动JobManager,并通过SSH连接到slaves文件中列出的所有工作节点,以在每个节点上启动TaskManager。

6.Web UI
打开浏览器,输入:http://master:8081 
配置成功!
三.本地执行WordCount
1.代码
package cn.demo import org.apache.flink.api.common.operators.Order
import org.apache.flink.api.java.utils.ParameterTool
import org.apache.flink.api.scala._ //必须导入 /**
* Created by Administrator on 2020/1/22.
*/
object WordCount {
def main(args: Array[String]) {
val params : ParameterTool = ParameterTool.fromArgs(args) // 设置execution执行环境
val execution = ExecutionEnvironment.getExecutionEnvironment // 设置web界面有效参数
execution.getConfig.setGlobalJobParameters(params) val text = execution.fromElements("Apache Flink is an open source platform for distributed stream and batch data processing.",
"Flink core is a streaming dataflow engine that provides data distribution, communication, and fault tolerance for distributed computations over data streams. ",
"Flink builds batch processing on top of the streaming engine, overlaying native iteration support, managed memory, and program optimization.") val counts = text.flatMap(_.toLowerCase.split(" ").filter(_.nonEmpty))
.map((_, 1))
.groupBy(0)//根据第一个元素分组
.sum(1)
.sortPartition(0, Order.ASCENDING) //按照分区进行排序
.first(6) counts.print()
}
}
2.本地执行结果

四.案例执行
要运行Flink案例,必须有一个正在运行的Flink实例。最简单的方法是运行./bin/start-cluster.sh,默认情况下会启动一个带有JobManager和一个TaskManager的本地集群。每个Flink二进制发行版都包含一个examples目录,其中包含WordCount这个最常用案例。
要运行WordCount案例,执行以下命令:
./bin/flink run ./examples/batch/WordCount.jar --input /data/flink/wordcount --output /data/flink/wcresult
备注:input路径要提前创建好,其中保存要计算的数据!

执行结果:

Flink集群模式部署及案例执行的更多相关文章
- 第06讲:Flink 集群安装部署和 HA 配置
Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...
- Redis集群模式部署
以下以Linux(CentOS)系统为例 1.1 下载和编译 $ wget http://download.redis.io/releases/redis-4.0.7.tar.gz $ tar xzf ...
- zookeeper集群&伪集群模式部署
1.什么是单机部署 一台服务器上面部署一个单机版本的zookeeper服务,用于提供服务. 2.什么是集群部署? 集群部署就是多台服务器上面各部署单独的一个zookeeper服务,然后组建一个集群 3 ...
- flink集群模式安装配置
一.手动下载安装包 wget http://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.6.1/flink-1.6.1-bin-hadoop27 ...
- Kafka集群模式部署
环境:kafka 0.8.1.1 基本概念 Kafka维护按类区分的消息,称为主题(topic) 生产者(producer)向kafka的主题发布消息 消费者(consumer)向主题注册,并且接收发 ...
- ELK集群模式部署
架构拓扑图为: 准备工作: 下载资源包: Elasticsearch: wget https://artifacts.elastic.co/downloads/elasticsearch/elasti ...
- bigdata_ Kafka集群模式部署
环境:kafka 0.8.1.1 基本概念 Kafka维护按类区分的消息,称为主题(topic) 生产者(producer)向kafka的主题发布消息 消费者(consumer)向主题注册,并且接收发 ...
- flink部署操作-flink standalone集群安装部署
flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...
- Solr系列二:solr-部署详解(solr两种部署模式介绍、独立服务器模式详解、SolrCloud分布式集群模式详解)
一.solr两种部署模式介绍 Standalone Server 独立服务器模式:适用于数据规模不大的场景 SolrCloud 分布式集群模式:适用于数据规模大,高可靠.高可用.高并发的场景 二.独 ...
随机推荐
- 「SCOI2010」连续攻击游戏
传送门 Luogu 解题思路 二分图匹配,关键是建图. 如果我们naive地直接把每个武器的两个属性分为两部建图的话,显然是跑不了的. 我们考虑把每一个武器的属性向它连边:\(a_i \rightar ...
- MyBatis Dao层的编写
传统的dao层编写 以前编写dao层,先新建一个包com.chy.dao,再写接口StudentDao: public interface StudentDao { public void inser ...
- WebEx如何录制电脑内的声音
WebEx如何录制电脑内的声音 事情是这样的,我需要参加一个网络课程,视频讲课的,但是呢,又因为自己白天需要干别的事,就想着怎么把视频录下来晚上回去看,找了WebEx录屏软件,尝试了下,录屏听 ...
- Unity3D渲染优化技巧
优化图形性能 良好的性能对大部分游戏的成功具有决定作用.下面是一些简单的指导,用来最大限度地提高游戏的图形渲染. 图形需要哪些开销 游戏的图形部分主要开销来自电脑的两个系统: GPU 或 CPU.优化 ...
- UDP单播、多播、广播
一.UDP广播 广播使用的特殊的IP地址:最后一位是255时的IP地址是给广播预留的IP地址,如:192.168.88.255 广播UDP与单播UDP的区别就是IP地址不同,广播使用广播地址255.2 ...
- 线程与FORK
1.线程锁的问题 需要调用进程线程锁处理函数 prefork-----获取父亲进程锁----在fork掉用之前,目的是为了在子进程中获取到可释放的锁 parentfork----释放父亲进程锁 chi ...
- js 中 一些重要的数组方法
今天在学Vue的时候,看到了好多JS的数组方法,但是我不知道,我以为是Vue的方法,结果找了半天资料也没找出来,最后才发现这是JS的数组对象方法,于是就想做一下笔记,加深一下印象. Array 对象方 ...
- HomePod即将发售,但硬件不再是苹果的救命稻草
流年不利的苹果,在多个维度都遭到了重创.除了与高通纠缠不清的专利官司外,iPhone销量还直线下滑并影响到营收.最终,苹果股价.市值都处于暴跌态势.面对内外夹击的不利局面,苹果信奉多年的"封 ...
- 小程序导航组件navigator活学活用
小程序开发中必不可少的组件navigator,虽然使用频率非常高,但是却没多少人能灵活运用. 先说navigator组件的用处: 它的主要用处是跳转执行,跳转可分为当前页面内跳转.前往页面外部的跳转. ...
- android中的简单animation(一)shake
1.shake animation_1.xml: <?xml version="1.0" encoding="utf-8"?> <Linear ...