大数据下FlinkonYarnSession高可用集群环境部
前言:
搭建大数据环境集群环境算是比较麻烦的一个事情,并且对硬件要求也比较高其中搭建大数据环境需要准备jdk环境和zk环境,还有hdfs,还有ssh之间的免密操作,还有主机别名访问不通的问题等。
必然会出现的问题:环境版本,配置问题,内存问题,节点端口通讯等。
最终效果图:
一环境准备:
三台服务器:
jdk
jdk1。8
环境变量
hadoop
hadoop3。1。3
版本
flink
flink1。6。1
版本
主
192。168。192。150
免密登录
从1
192。168。192。151
免密登录
从2
192。168。192。152
免密登录
三台服务器设置免密登录,且配置当前主机的别名映射:
vimetchosts
三台服务器的配置信息:
我这里电脑是16G运行内存,也可以看设备管理器(虚拟机设置太大运行内存虚拟机会报错,适量内存配置)
二配置文件:2。1配置hadoopenv。sh文件vimopthadoop3。1。3etchadoophadoopenv。shexportJAVAHOMEusrlocaljdk1。8。0301exportHADOOPHOMEopthadoop3。1。3
2。2配置coresite。xml文件
vimopthadoop3。1。3etchadoopcoresite。xmlpropertynamefs。default。namenamevaluehdfs:192。168。192。150:9000valueproperty
2。3配置yarnsite。xml文件
vimopthadoop3。1。3etchadoopyarnsite。xmlpropertynameyarn。resourcemanager。resourcetracker。addressnamevalue192。168。192。150:8025valuepropertypropertynameyarn。resourcemanager。scheduler。addressnamevalue192。168。192。150:8030valuepropertypropertynameyarn。resourcemanager。addressnamevalue192。168。192。150:8050valuepropertypropertynameyarn。nodemanager。vmemcheckenablednamevaluefalsevaluepropertypropertynameyarn。nodemanager。pmemcheckenablednamevaluefalsevalueproperty
2。4配置mapredsite。xml文件
vimopthadoop3。1。3etchadoopmapredsite。xmlpropertynamemapred。job。trackernamevalue192。168。192。150:54311valuepropertypropertynameyarn。app。mapreduce。am。envnamevalueHADOOPMAPREDHOMEHADOOPHOMEvaluepropertypropertynamemapreduce。map。envnamevalueHADOOPMAPREDHOMEHADOOPHOMEvaluepropertypropertynamemapreduce。reduce。envnamevalueHADOOPMAPREDHOMEHADOOPHOMEvalueproperty
2。5配置hdfssite。xml文件
vimopthadoop3。1。3etchadoophdfssite。xmlpropertynamedfs。replicationnamevalue2valuepropertypropertynamedfs。namenode。name。dirnamevaluefile:datahadoophadoopdatahdfsnamenodevalueproperty
2。6配置workers文件
vimopthadoop3。1。3etchadoopworkers
2。7配置startdfs。sh和stopdfs。sh文件
vimopthadoop3。1。3sbinstartdfs。sh
vimopthadoop3。1。3sbinstopdfs。shHDFSDATANODEUSERrootHDFSDATANODESECUREUSERhdfsHDFSNAMENODEUSERrootHDFSSECONDARYNAMENODEUSERroot
因为hdfs启动是root用户需要配置root配置,也可以加到etcprofile全局环境变量中
2。8配置startyarn。sh和stopyarn。sh文件
vimopthadoop3。1。3sbinstartyarn。sh
vimopthadoop3。1。3sbinstopyarn。shYARNRESOURCEMANAGERUSERrootHADOOPSECUREDNUSERyarnYARNNODEMANAGERUSERroot
2。9把配置好的配置复制到其他俩台节点服务器上面,直接复制opthodoop3。1。3
scpropthodoop3。1。3slave1:opt
scpropthodoop3。1。3slave2:opt三启动集群:3。1初始化NameNode
opthadoop3。1。3binhadoopnamenodeformat
(注意:这里如果jps没有namenode就需要手动启动了)
hadoopdaemon。shstartnamenode
3。2直接执行全部启动的脚本
startall。sh
四,启动后状态
master192。168。192。150
slave1192。168。192。151
slaev2192。168。192。152
QuorumPeerMainzookeeper的进程
ResourceManagerflink进程
TaskManagerRunnerflink进程
NodeManageryarn进程
NameNodeHDFS进程
DataNodeHDFS进程
web页面访问:
大数据地址:
http:192。168。192。150:8088
flink访问地址:
http:192。168。192。150:8081
五,采用yarnsessionflink提交任务执行(这里有很多种任务提交,flink单服务提交,yarnsession提交)
。binflinkrunmyarnclusteryn2yjm1024ytm1024ccom。xiaoyang。streaming。SocketDemoFullCount。。Flink1。0SNAPSHOT。jar
去hadoop界面查看任务执行情况
为啥要采用这种方式部署:
(开辟资源提交任务)
没次创建新的flink集群任务之间互不影响,任务执行完成后对应集群也会消失。
先开辟资源再提交任务
这种会使用所以任务都会提交到一个资源,任务需要手动停止,不易于拓展和管理六,问题记录排查和解决6。1任务启动失败
这种问题一看就是脚本问题启动问题
错误脚本:
。binflinkrunmyarnclusteryn2yjm1024ytm1024。。Flink1。0SNAPSHOT。jarccom。xiaoyang。streaming。SocketDemoFullCount
正确脚本:
。binflinkrunmyarnclusteryn2yjm1024ytm1024ccom。xiaoyang。streaming。SocketDemoFullCount。。Flink1。0SNAPSHOT。jar6。2集群配置问题别名
集群里面的配置最好使用ip配置,不要使用别名,这样在通讯的时候不会出现端口问题,这样启动任务的时候会有连接问题。6。3权限配置问题
权限配置问题需要配置要么配置到全局变量或者指定配置里面,不然会报错。
HDFSDATANODEUSERroot
HDFSDATANODESECUREUSERhdfs
HDFSNAMENODEUSERroot
HDFSSECONDARYNAMENODEUSERroot
YARNRESOURCEMANAGERUSERroot
HADOOPSECUREDNUSERyarn
YARNNODEMANAGERUSERroot6。4hdfs节点启动问题
主节点必须要有NameNode,从节点要有DataNode不然启动hdfs启动会报错。6。5环境变量配置问题,hadoop配置jdk环境,如果不配置启动也会报错。6。6配置问题opthadoop3。1。3etchadoop目录下的配置文件
如果配置错误也会导致报错各种问题,所以配置需要仔细检查
6。7其他问题,这里包括版本包的问题,依赖包的问题,不能太新也不能太旧总结:
首先部署hadoop集群其实还是比较麻烦的,环境配置,各个配置的依赖,节点信息,当然部署过程难免也会遇到很多问题,但是我们在解决一个困扰很久的问题的时候你不仅在成长还会收获满满的成就感。
没有与生俱来的天赋,都是后天的努力拼搏(我是小杨,谢谢你的关注和支持)