BigDL-2.x在Hadoop/YARN集群上的部署与运行指南

BigDL-2.x在Hadoop/YARN集群上的部署与运行指南

【免费下载链接】BigDL-2.x BigDL: Distributed TensorFlow, Keras and PyTorch on Apache Spark/Flink & Ray 【免费下载链接】BigDL-2.x 项目地址: https://gitcode.com/gh_mirrors/bi/BigDL-2.x

前言

BigDL作为基于Apache Spark的分布式深度学习框架,能够充分利用Hadoop/YARN集群的计算资源进行大规模深度学习训练。本文将详细介绍如何在Hadoop/YARN环境中部署和运行BigDL-2.x应用程序,涵盖从环境准备到任务提交的完整流程。

环境要求

在开始之前,请确保您的环境满足以下要求:

  • Hadoop版本:Apache Hadoop 2.7及以上(包括3.x版本)或CDH 5.x
  • Python版本:3.7(推荐使用conda管理Python环境)
  • JDK版本:8(推荐使用OpenJDK)

1. 环境准备

1.1 Python环境配置

首先需要在提交应用的本地机器上准备Python环境:

# 创建conda环境
conda create -n bigdl python=3.7
conda activate bigdl

# 安装BigDL
pip install bigdl

# 安装其他必要的Python依赖

1.2 JDK安装与配置

BigDL依赖Spark,而Spark需要JDK环境:

# Ubuntu系统安装示例
sudo apt-get install openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

# CentOS系统安装示例
su -c "yum install java-1.8.0-openjdk"
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/jre

export PATH=$PATH:$JAVA_HOME/bin
java -version  # 验证JDK版本

1.3 Hadoop配置

确保正确设置Hadoop配置目录环境变量:

export HADOOP_CONF_DIR=/path/to/hadoop/conf

1.4 CDH用户注意事项

如果使用CDH集群,需要注意:

  1. 取消所有Spark相关环境变量:env | grep SPARK
  2. CDH默认的HADOOP_CONF_DIR通常是/etc/hadoop/conf

2. 使用内置函数运行在YARN上

这是最简单且推荐的方式,无需关心环境准备和Spark命令细节。

2.1 初始化Orca上下文

在代码开头初始化Orca上下文:

from bigdl.orca import init_orca_context

# 初始化YARN客户端模式
sc = init_orca_context(cluster_mode="yarn-client", cores=4, memory="10g", num_nodes=2)

# 或者初始化YARN集群模式
# sc = init_orca_context(cluster_mode="yarn-cluster", cores=4, memory="10g", num_nodes=2)

参数说明:

  • yarn-client:Spark驱动运行在提交节点
  • yarn-cluster:Spark驱动运行在YARN集群随机节点

2.2 运行方式

Jupyter Notebook方式(仅支持yarn-client)
jupyter notebook --notebook-dir=./ --ip=* --no-browser
Python脚本方式(支持两种模式)
python script.py

3. 使用spark-submit运行在YARN上

如果需要更精细的控制,可以使用spark-submit方式。

3.1 打包Python环境

conda pack -o environment.tar.gz

3.2 编写Python脚本

脚本中初始化Orca上下文:

from bigdl.orca import init_orca_context

sc = init_orca_context(cluster_mode="spark-submit")

3.3 提交任务

设置环境变量:

export SPARK_HOME=/path/to/spark
export SPARK_VERSION="spark版本号"
export BIGDL_HOME=/path/to/bigdl
export BIGDL_VERSION="bigdl版本号"
YARN集群模式
${SPARK_HOME}/bin/spark-submit \
    --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=environment/bin/python \
    --conf spark.executorEnv.PYSPARK_PYTHON=environment/bin/python \
    --jars ${BIGDL_HOME}/jars/bigdl-assembly-spark_${SPARK_VERSION}-${BIGDL_VERSION}-jar-with-dependencies.jar \
    --master yarn \
    --deploy-mode cluster \
    --executor-memory 10g \
    --driver-memory 10g \
    --executor-cores 8 \
    --num-executors 2 \
    --archives environment.tar.gz#environment \
    script.py
YARN客户端模式
${SPARK_HOME}/bin/spark-submit \
    --conf spark.pyspark.driver.python=/path/to/python \
    --conf spark.pyspark.python=environment/bin/python \
    --jars ${BIGDL_HOME}/jars/bigdl-assembly-spark_${SPARK_VERSION}-${BIGDL_VERSION}-jar-with-dependencies.jar \
    --master yarn \
    --deploy-mode client \
    --executor-memory 10g \
    --driver-memory 10g \
    --executor-cores 8 \
    --num-executors 2 \
    --archives environment.tar.gz#environment \
    script.py

4. 使用bigdl-submit运行在YARN上

BigDL提供了专门的提交脚本简化操作。

4.1 打包Python环境

conda pack -o environment.tar.gz

4.2 编写Python脚本

from bigdl.orca import init_orca_context

sc = init_orca_context(cluster_mode="bigdl-submit")

4.3 提交任务

YARN集群模式
bigdl-submit \
    --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=environment/bin/python \
    --conf spark.executorEnv.PYSPARK_PYTHON=environment/bin/python \
    --master yarn \
    --deploy-mode cluster \
    --executor-memory 10g \
    --driver-memory 10g \
    --executor-cores 8 \
    --num-executors 2 \
    --archives environment.tar.gz#environment \
    script.py
YARN客户端模式
PYSPARK_PYTHON=environment/bin/python bigdl-submit \
    --master yarn \
    --deploy-mode client \
    --executor-memory 10g \
    --driver-memory 10g \
    --executor-cores 8 \
    --num-executors 2 \
    --archives environment.tar.gz#environment \
    script.py

总结

本文详细介绍了在Hadoop/YARN集群上运行BigDL-2.x的三种方式:

  1. 内置函数方式:最简单,适合快速开始
  2. spark-submit方式:提供更多控制选项
  3. bigdl-submit方式:BigDL专用提交脚本,简化操作

根据您的具体需求选择合适的方式,建议初次使用者从内置函数方式开始,熟悉后再尝试其他方式以获得更精细的控制。

【免费下载链接】BigDL-2.x BigDL: Distributed TensorFlow, Keras and PyTorch on Apache Spark/Flink & Ray 【免费下载链接】BigDL-2.x 项目地址: https://gitcode.com/gh_mirrors/bi/BigDL-2.x

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值