大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务

前言:

搭建大数据环境集群环境算是比较麻烦的一个事情,并且对硬件要求也比较高其中搭建大数据环境需要准备jdk环境和zk环境,还有hdfs,还有ssh之间的免密操作,还有主机别名访问不通的问题 等。

必然会出现的问题:环境版本,配置问题,内存问题,节点端口通讯等。

最终效果图:

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第1张图片

一 环境准备:

三台服务器:

jdk

jdk1.8

环境变量

hadoop

hadoop-3.1.3

版本

flink

flink-1.6.1

版本

192.168.192.150

免密登录

从1

192.168.192.151

免密登录

从2

192.168.192.152

免密登录

三台服务器设置免密登录,且配置当前主机的别名映射:

vim /etc/hosts

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第2张图片

三台服务器的配置信息:

我这里电脑是16G运行内存,也可以看设备管理器(虚拟机设置太大运行内存虚拟机会报错,适量内存配置)

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第3张图片

二 配置文件:

2.1 配置hadoop-env.sh文件

vim /opt/hadoop-3.1.3/etc/hadoop/hadoop-env.sh


export JAVA_HOME=/usr/local/jdk1.8.0_301

export HADOOP_HOME=/opt/hadoop-3.1.3

2.2 配置core-site.xml文件

vim /opt/hadoop-3.1.3/etc/hadoop/core-site.xml

  fs.default.name
  hdfs://192.168.192.150:9000


大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第4张图片

2.3 配置yarn-site.xml文件

vim /opt/hadoop-3.1.3/etc/hadoop/yarn-site.xml

yarn.resourcemanager.resource-tracker.address
  192.168.192.150:8025


  yarn.resourcemanager.scheduler.address
  192.168.192.150:8030


  yarn.resourcemanager.address
  192.168.192.150:8050


    yarn.nodemanager.vmem-check-enabled
    false


        yarn.nodemanager.pmem-check-enabled
        false


大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第5张图片

2.4配置mapred-site.xml文件

vim /opt/hadoop-3.1.3/etc/hadoop/mapred-site.xml

  mapred.job.tracker
  192.168.192.150:54311


  yarn.app.mapreduce.am.env
  HADOOP_MAPRED_HOME=$HADOOP_HOME


  mapreduce.map.env
  HADOOP_MAPRED_HOME=$HADOOP_HOME


  mapreduce.reduce.env
  HADOOP_MAPRED_HOME=$HADOOP_HOME

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第6张图片

2.5 配置hdfs-site.xml文件

vim /opt/hadoop-3.1.3/etc/hadoop/hdfs-site.xml

  dfs.replication
  2


  dfs.namenode.name.dir
  file:/data/hadoop/hadoop_data/hdfs/namenode

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第7张图片

2.6 配置workers文件

vim /opt/hadoop-3.1.3/etc/hadoop/workers
大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第8张图片

2.7 配置start-dfs.sh和stop-dfs.sh文件

vim /opt/hadoop-3.1.3/sbin/ start-dfs.sh
vim /opt/hadoop-3.1.3/sbin/stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

因为hdfs启动是root用户需要配置root配置,也可以加到/etc/profile 全局环境变量中

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第9张图片

2.8 配置start-yarn.sh和stop-yarn.sh文件

vim /opt/hadoop-3.1.3/sbin/start-yarn.sh
vim /opt/hadoop-3.1.3/sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第10张图片

2.9 把配置好的配置复制到其他俩台节点服务器上面,直接复制/opt/hodoop3.1.3

scp -r /opt/hodoop3.1.3 slave1:/opt/

scp -r /opt/hodoop3.1.3 slave2:/opt/

三 启动集群:

3.1 初始化NameNode

/opt/hadoop-3.1.3/bin/hadoop namenode -format

(注意:这里如果jps没有namenode就需要手动启动了)

hadoop-daemon.sh start namenode

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第11张图片

3.2 直接执行全部启动的脚本

start-all.sh

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第12张图片

四,启动后状态

master->192.168.192.150

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第13张图片

slave1-> 192.168.192.151

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第14张图片

slaev2->192.168.192.152

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第15张图片
QuorumPeerMain zookeeper的进程
ResourceManager flink进程
TaskManagerRunner flink进程
NodeManager yarn进程
NameNode HDFS进程
DataNode HDFS进程

web页面访问:

大数据地址:

http://192.168.192.150:8088

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第16张图片

flink访问地址:

http://192.168.192.150:8081

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第17张图片

五,采用yarn-session+ flink提交任务执行(这里有很多种任务提交,flink单服务提交,yarn-session提交)

./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 -c com.xiaoyang.streaming.SocketDemoFullCount ../Flink-1.0-SNAPSHOT.jar
大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第18张图片

去hadoop界面查看任务执行情况

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第19张图片

为啥要采用这种方式部署:

(开辟资源+提交任务)

没次创建新的flink集群任务之间互不影响,任务执行完成后对应集群也会消失。

先开辟资源再提交任务

这种会使用所以任务都会提交到一个资源,任务需要手动停止,不易于拓展和管理

六,问题记录排查和解决

6.1任务启动失败

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务_第20张图片

这种问题一看就是脚本问题启动问题

错误脚本:

./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 ../Flink-1.0-SNAPSHOT.jar -c com.xiaoyang.streaming.SocketDemoFullCount

正确脚本:

./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 -c com.xiaoyang.streaming.SocketDemoFullCount ../Flink-1.0-SNAPSHOT.jar

6.2 集群配置问题别名

集群里面的配置最好使用ip配置,不要使用别名,这样在通讯的时候不会出现端口问题,这样启动任务的时候会有连接问题。

6.3 权限配置问题

权限配置问题需要配置要么配置到全局变量或者 指定配置里面,不然会报错。

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

6.4 hdfs 节点启动问题

主节点必须要有NameNode ,从节点要有DataNode 不然启动hdfs启动会报错。

6.5 环境变量配置问题,hadoop配置jdk环境,如果不配置启动也会报错。

6.6 配置问题 /opt/hadoop-3.1.3/etc/hadoop/目录下的配置文件

如果配置错误也会导致报错各种问题,所以配置需要仔细检查

6.7 其他问题,这里包括版本包的问题,依赖包的问题,不能太新也不能太旧

总结:

首先部署hadoop集群其实还是比较麻烦的,环境配置,各个配置的依赖,节点信息,当然部署过程难免也会遇到很多问题,但是我们在解决一个困扰很久的问题的时候你不仅在成长还会收获满满的成就感。

————没有与生俱来的天赋,都是后天的努力拼搏(我是小杨,谢谢你的关注和支持)

你可能感兴趣的:(大数据,大数据,flink,hadoop,yarn)