首页 > 数据库 > 数据库开发技术 > 本地提交Flink任务到远程 Yarn 集群
本文将介绍本地环境如何连接远程 Yarn 集群来提交任务。本机环境为 Apple M1 Pro:macos Ventura 13.3.1,linux环境步骤相同。以下步骤均在本地进行操作,假设远程 Yarn 集群已存在。
假设我的软件目录在:/Users/casey/Data/install/
https://archive.apache.org/dist/hadoop/core/hadoop-2.8.2/hadoop-2.8.2.tar.gz
tar -zxvf hadoop-2.8.2.tar.gz -C /Users/casey/Data/install/
编辑用户环境变量文件,我的环境变量文件为:~/.zshrc。linux 环境的用户环境变量目录可能所有变化,请关注。
vim ~/.zshrc
export HADOOP_HOME=/Users/casey/Data/install/hadoop-2.8.2
export PATH=$PATH:$HADOOP_HOME/bin
执行以下命令使配置文件生效:
source ~/.zshrc
hadoop version
出现以下界面,说明 Hadoop 配置完成
需要修改的 Hadoop 配置文件都在目录 etc/hadoop 下,包括:
Hadoop 环境变量配置文件。
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/Users/casey/Data/install/hadoop-2.8.2/etc/hadoop"}
hadoop集群的核心设置,例如HDFS、MapReduce和YARN常用的I/O设置等。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:8020</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录 自己创建-->
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/casey/Data/install/hadoop-2.8.2/tmp</value>
</property>
</configuration>
Hadoop守护进程的配置项,包括 namenode、secondary namenode 和 datanode等。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--不是root用户也可以写文件到hdfs,关闭防火墙-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!--把路径换成本地的name的位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/Users/casey/Data/install/hadoop-2.8.2/tmp/dfs/name</value>
</property>
<!--在本地新建一个存放hadoop数据的文件夹,然后将路径在这里配置一下-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/Users/casey/Data/install/hadoop-2.8.2/data</value>
</property>
</configuration>
MapReduce 守护进程的配置项,包括作业历史服务器。
<configuration>
<property>
<!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
YARN守护进程的配置项,包括资源管理器、web应用代理服务器和节点管理器。
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>namenode:8032</value>
</property>
</configuration>
https://archive.apache.org/dist/flink/flink-1.12.7/flink-1.12.7-bin-scala_2.12.tgz
由于flink 1.11.2 之后的版本不再集成 Hadoop 了,所以得自行下载并放到 flink 的 lib 目录下。
https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.7.5-10.0/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar
tar -zxvf flink-shaded-hadoop-2-uber-2.7.5-10.0.jar -C /Users/casey/Data/install/
vim flink-1.12.7/conf/flink-conf.yaml
jobmanager.rpc.address: your remote yarn ip
vim /etc/profile
export HADOOP_USER_NAME=hdfs
source /etc/profile
bin/flink run -m yarn-cluster -yjm 2048 -ytm 2048 examples/batch/WordCount.jar
出现如下字样,说明任务成功提交到了 Yarn 上。
往期推荐
原文作者:毛毛小妖的笔记;如有侵权,请联系管理员删除。