Flink安装(Standalone、Yarn模式)

Flink安装(Standalone、Yarn模式)

精选文章moguli202025-01-14 10:56:1924A+A-

Standalone模式:Flink自带的分布式集群,它不依赖其他的资源调度框架、不依赖yarn等,由 Flink自己管理资源。

1) 从官网下载Flink包:https://flink.apache.org/downloads.html

2) 下载jdk地址(测试过用jdk8,Flink启动会报错):

wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz

3) 将下载的flink-1.14.4-bin-scala_2.12.tgz和openjdk-11+28_linux-x64_bin.tar.gz拷贝到安装目录,使用命令解压:

tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz

tar -zxvf flink-1.14.4-bin-scala_2.12.tgz

mv openjdk-11+28_linux-x64_bin jdk-11

4) 配置Java环境变量,vi /etc/profile 进行编辑,添加下面代码:

export JAVA_HOME=/home/pengbiao/jdk-11

export JRE_HOME=/home/pengbiao/jdk-11/jre

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

按Esc键,输入:wq按Enter保存并退出

5) 进入Flink目录,cd flink-1.14.4,然后输入启动命令:./bin/start-cluster.sh

其他操作:

1. 修改Flink配置,vi /conf/flink-conf.yaml

# jobManager的IP地址

jobmanager.rpc.address: localhost

# JobManager的端口号

jobmanager.rpc.port: 6123

# JobManager JVM heap堆内存大小

jobmanager.memory.process.size: 1600m

# TaskManager JVM heap堆内存大小

taskmanager.memory.process.size: 1728m

# 每个TaskManager提供的任务slots数量大小,最好设置为CPU的核心数

taskmanager.numberOfTaskSlots: 4

# 程序默认并行度

parallelism.default: 1

2. 查看日志:cat /log/flink-pengbiao-standalonesession-3-PC-PENGBIAO.out

3. 查看Flink是否启动:jps

Yarn模式:以yarn模式部署Flink任务时,要求Flink是有Hadoop支持的版本,Hadoop环境需要保证版本在2.2以上,并且集群中安装有HDFS服务。

Flink提供了两种在yarn上运行的模式,分别为Session-Cluster和Per-Job-Cluster模式。

1) Session-Cluster模式

Session-Cluster模式需要先启动集群,然后再提交作业,接着会向yarn申请一块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享Dispatcher和ResourceManager;共享资源;适合规模小执行时间短的作业。

在yarn中初始化一个Flink集群,开辟指定的资源,以后提交任务都向这里提交,这个Flink集群会常驻在yarn集群中,除非手工停止。

启动步骤:

1)启动hadoop集群

第1:下载re-bundled Hadoop的jar包

下载地址:https://flink.apache.org/downloads.html

将flink-shaded-hadoop-2-uber-2.8.3-10.0.jar拷贝到Flink的lib目录

然后授权:chmod 777 flink-shaded-hadoop-2-uber-2.8.3-10.0.jar

第2:下载hadoop组件安装包

(一)下载地址:https://dlcdn.apache.org/hadoop/common/

或者使用命令下载:

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.2.tar.gz

(二) 解压:tar -zxvf hadoop-3.3.2.tar.gz

(三) 检查hadoop支持:bin/hadoop checknative

如果openssl显示false,安装openssl:yum -y install openssl-devel

(四) 创建hadoop存放临时文件的文件夹:mkdir tmp

(五) 修改hadoop-env.sh中的JAVA_HOME

cd etc/hadoop/

vi hadoop-env.sh

(六) 修改/etc/hadoop/core-site.xml

<configuration>

<!--指定Hadoop所使用的文件系统schema,HDFS的地址 -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

</property>

<!-- 指定hadoop临时目录,自行创建 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/pengbiao/hadoop-3.3.2/tmp</value>

</property>

</configuration>

(七) 修改/etc/hadoop/hdfs-site.xml

<configuration>

<!-- dfs的SecondaryNameNode在哪台主机上 -->

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>localhost:50090</value>

</property>

<!-- 指定HDFS副本的数量,不修改默认为3个 -->

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/pengbiao/hadoop-3.3.2/hdfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/home/pengbiao/hadoop-3.3.2/hdfs/data</value>

</property>

<property>

<name>fs.checkpoint.dir</name>

<value>file:/home/pengbiao/hadoop-3.3.2/hdfs/snn</value>

</property>

<property>

<name>fs.checkpoint.edits.dir</name>

<value>file:/home/pengbiao/hadoop-3.3.2/hdfs/snn</value>

</property>

</configuration>

(八) 修改/etc/hadoop/yarn-site.xml

<configuration>

<!-- NodeManager上运行的附属服务。需要配置成mapreduce_shuffle,才可以运行MapReduce程序默认值 -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!-- 指定yarn的ResourceManager的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>localhost</value>

</property>

</configuration>

(九) 修改/etc/hadoop/mapred-site.xml

<configuration>

<!-- 指定MapReduce运行是框架,这里指定在yarn上,默认是local -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

(十) 格式化节点

cd /hadoop-3.3.2/bin

./hdfs namenode –format

(十一) Hadoop集群全部启动

cd /hadoop-3.3.2/sbin

./start-dfs.sh

./start-yarn.sh

注:

1、启动hadoop报错:localhost: ssh: connect to host localhost port 22: Connection refused

则执行下面命令:

  • 确认OpenSSH server是否安装: sudo apt list --installed | grep openssh-server
  • 如未安装,则执行命令:sudo apt install openssh-server
  • 核查ssh service状态:sudo service ssh status
  • 启动ssh service服务:sudo service ssh start

2、如果报下面错误信息,需要下载重装ssh:

删除SSH:sudo apt remove openssh-server

更新:sudo apt-get update

重装SSH:sudo apt install openssh-server

重启SSH:sudo service ssh start

如果报下面错误信息:

修改系统根目录的/etc/ssh/sshd_config配置:

PasswordAuthentication yes

在文件最后添加下面配置:

#StrictHostKeyChecking no

#UserKnownHostsFile /dev/null

cd /etc 更改文件所有权:

chown -R pengbiao ~/.ssh

chmod 700 ~/.ssh

3、启动hadoop报下面错误信息:

cd /home/pengbiao 执行命令来生成密钥:

touch authorized_keys

ssh-keygen -t rsa --提示录入时直接回车

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.sshl

再次启动hadoop:

./hadoop-3.3.2/sbin/start-dfs.sh

./hadoop-3.3.2/sbin/start-yarn.sh

第3:修改hadoop环境变量,vi /etc/profile 进行编辑,添加下面代码:

export HADOOP_HOME=/home/pengbiao/hadoop-3.3.2

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HADOOP_CLASSPATH=`${HADOOP_HOME}/bin/hadoop classpath`

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

第4:修改/etc/hosts和/etc hostname:

刷新配置:source /etc/profile

2)启动yarn-session:

./bin/yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 –nm test -d

参数解释:

-n:TaskManager的数量

-s:每个TaskManager的slot数量,默认一个slot一个core,默认每个TaskManager的slot的个数为1,有时可以多一些TaskManager做冗余。

-jm:JobManager的内存(单位MB)

-tm:每个TaskManager的内存(单位MB)

-nm:YARN的appName(现在yarn的ui上的名字)

-d:任务后台运行

-q:显示yarn中可用的资源 (内存, cpu核数)

-z:针对HA模式在zookeeper上创建NameSpace

-id:YARN集群上的任务id,附着到一个后台运行的yarn session中

Flink控制台:http://localhost:62299/

3)取消yarn-session

hadoop控制台:http://localhost:8088/

杀掉applocation命令:

yarn application --kill application_1650940677633_0002

2) Per-Job-Cluster模式

一个任务会对应一个Job,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享Dispatcher和ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。

启动步骤:

1)启动hadoop集群

2)不启动yarn-session,直接执行job

./bin/flink run -m yarn-cluster -c com.flink.wc.KafkaStreamWordCount /mnt/f/workSpaces7.0/flinkDemo/target/flinkDemo-1.0-SNAPSHOT.jar --host localhost --port 9092

Flink控制台:http://localhost:52548/

点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2