本地提交Flink任务到远程 Yarn 集群

本文将介绍本地环境如何连接远程 Yarn 集群来提交任务。本机环境为 Apple M1 Pro:macos Ventura 13.3.1,linux环境步骤相同。以下步骤均在本地进行操作,假设远程 Yarn 集群已存在。

Hadoop 环境安装

假设我的软件目录在:/Users/casey/Data/install/

下载 Hadoop 安装包

https://archive.apache.org/dist/hadoop/core/hadoop-2.8.2/hadoop-2.8.2.tar.gz

解压 Hadoop 安装包

tar -zxvf hadoop-2.8.2.tar.gz -C /Users/casey/Data/install/

配置 Hadoop 环境变量

编辑用户环境变量文件,我的环境变量文件为:~/.zshrc。linux 环境的用户环境变量目录可能所有变化,请关注。

vim ~/.zshrc

export HADOOP_HOME=/Users/casey/Data/install/hadoop-2.8.2
export PATH=$PATH:$HADOOP_HOME/bin

执行以下命令使配置文件生效:

source ~/.zshrc

验证 Hadoop

hadoop version

出现以下界面,说明 Hadoop 配置完成

Hadoop 配置文件修改

需要修改的 Hadoop 配置文件都在目录 etc/hadoop 下,包括:

hadoop-env.sh

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"}

core-site.xml

hadoop集群的核心设置,例如HDFS、MapReduce和YARN常用的I/O设置等。

<configuration>
  <property>
    <name>fs.defaultFSname>
    <value>hdfs://namenode:8020value>
  property>

  
  <property>
    <name>hadoop.tmp.dirname>
    <value>/Users/casey/Data/install/hadoop-2.8.2/tmpvalue>
  property>
configuration>

hdfs-site.xml

Hadoop守护进程的配置项,包括 namenode、secondary namenode 和 datanode等。

<configuration>
  <property>
      <name>dfs.replicationname>
      <value>1value>
  property>
  
  <property>
      <name>dfs.permissionsname>
      <value>falsevalue>
  property>
  
  <property>
      <name>dfs.namenode.name.dirname>
      <value>/Users/casey/Data/install/hadoop-2.8.2/tmp/dfs/namevalue>
  property>
  
  <property>
      <name>dfs.datanode.data.dirname>
      <value>/Users/casey/Data/install/hadoop-2.8.2/datavalue>
  property>
configuration>

mapred-site.xml

MapReduce 守护进程的配置项,包括作业历史服务器。

<configuration>
  <property>
    
    <name>mapreduce.framework.namename>
    <value>yarnvalue>
  property>
configuration>

yarn-site.xml

YARN守护进程的配置项,包括资源管理器、web应用代理服务器和节点管理器。

<configuration>
  
  <property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shufflevalue>
  property>
  <property>
    <name>yarn.resourcemanager.addressname>
    <value>namenode:8032value>
  property>
configuration>

Flink 配置文件修改

Flink 下载

https://archive.apache.org/dist/flink/flink-1.12.7/flink-1.12.7-bin-scala_2.12.tgz

flink-shaded-hadoop-2-uber 下载

由于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

flink 安装包解压

tar -zxvf flink-shaded-hadoop-2-uber-2.7.5-10.0.jar -C /Users/casey/Data/install/

配置远程 Yarn 地址

vim flink-1.12.7/conf/flink-conf.yaml

jobmanager.rpc.address: your remote yarn ip

设置 hadoop 用户

vim /etc/profile

export HADOOP_USER_NAME=hdfs

source /etc/profile

Flink 环境测试

bin/flink run -m yarn-cluster -yjm 2048 -ytm 2048 examples/batch/WordCount.jar

出现如下字样,说明任务成功提交到了 Yarn 上。


往期推荐

数据质量系统设计与实现

Flink CDC零代码实现数据同步实践

kafka 数据快速接入 Apache Doris

Flink CDC数据接入Apache Doris实践

基于Flink和Doris构建的实时数仓方案实践

Doris Unique Key 模型查询结果不一致问题

Flink自定义触发器

使用Doris Flink Connector进行数据接入

使用docker编译Doris

Spark 使用bulk load导入数据到Hbase中

请使用浏览器的分享功能分享到微信等