FLink Installation(Standalone Mode)
说明: 安装教程的参考了Apache Flink官网教程,使用的Flink1.3。如有异议请联系我.
软件要求
- Java 1.7.x 或者更高
- ssh sshd必须运行起来,因为flink用来管理远程的组件
如果集群不满足全部上述要求,必须进行更新,否则无法搭建flink集群.
如果已经配置了ssh免密和在所有的节点创建了一样的目录结构,那么就可以使用flink脚本来管理一切fink集群事务了。 安装过程如下:
JAVA_HOME 配置
Flink 所有的节点需要已经指向了java安装目录的环境变量JAVA_HOME. JAVA_HOME可以在conf/flink-conf.yml中通过env.java.java.home键进行设置。
配置ssh免密登录
在即将安装flink集群的所有节点上创建用来管理flink集群的用户, 例如flink, 并且配置master节点到所有worker节点的免密登录。
Flink设置
在flink下载页下载匹配使用的hadoop的版本,如果不使用hadoop, 那么可以选择任意版本。下载完成后,将安装包上传到master节点上并解压:
tar xvf flink-.tgz
cd flink-
配置flink
解压完fink安装包以后,需要通过编辑conf/flink-conf.yaml来进行集群的配置。 相关配置项如下:
jobmanager.rpc.address 设置指向master节点的地址。
jobmanager.heap.mb 设置master/jobmanager节点jvm可以使用的堆内存大小(MB为单位)
taskmanager.heap.mb 设置taskmanager节点jvm可以使用的堆内存大小(MB为单位)
注意:如果某些工作节点有等过的内存可以让flink使用,那么可以使用FLINK_TM_HEAP环境变量来覆盖默认的设置。
最后,需要配置一个集群主机的列表。和hdfs配置类似,编辑conf/slaves,输入所有的计算节点(worker)的ip/hostname 。这些输入的每一个ip/hostname将会被启动为taskmanager.
以下为3个节点的flink集群构成和配置。IP从10.0.0.1到10.0.0.3, hostname分别为: master, worker1, worker2。
flink 的目录在所有的结束上必须路径一致。 可以使用一个共享的NFS或者拷贝整个flink目录到所有的worker节点上。 根据详细的配置请参考配置页, 一下的配置是十分重要的。
jobmanager.heap.mb jobmanager 可以使用的内存总量
taskmanager.heap.mb taskmanager 可以使用的内存总量
taskmanager.numberOfTaskSlots 每个机器上可以使用的cpu数量
parallelism.default 集群中cpu的总数
taskmanager.tmp.dirs taskmanager的临时目录
启动flink集群
进入flink的安装目录,执行如下脚本:
bin/start-cluster.sh
如果要停止flink集群,使用stop-cluster.sh脚本
添加jobmanager/taskmanager实例到集群
使用bin/jobmanager.sh 和 bin/taskmanager.sh 脚本可以向正在运行的flink集群中添加jobmanager和taskmanager
添加jobmanager
bin/jobmanager.sh ((start|start-foreground) cluster)|stop|stop-all
添加taskmanager
bin/taskmanager.sh start|start-foreground|stop|stop-all