Apache Zeppelin 接入 CDH:基于 Docker QuickStart 的 Spark on YARN 部署实战
后端前端大数据数据分析【免费下载链接】zeppelinWeb-based notebook that enables>项目地址https://gitcode.com/gh_mirrors/zeppelin2/zeppelin点击查看免费下载本文是一份面向 CDHCloudera Distribution Including Apache Hadoop环境的 Apache Zeppelin 部署指南完整覆盖从拉取 Cloudera QuickStart Docker 镜像、以端口映射方式启动 CDH 单机沙箱到验证 HDFS/YARN 服务、配置 Spark 解释器以yarn-client模式接入集群再到在 notebook 中运行 Spark 代码并通过 YARN ResourceManager 确认应用状态的完整闭环。读完本文你将掌握在本地 Docker 环境快速搭建 Zeppelin CDH Spark on YARN 沙箱的整套实操方法并能从源码与配置层面理解MASTER、HADOOP_CONF_DIR、SPARK_HOME三个关键环境变量在 Zeppelin 与 YARN 之间所起的桥梁作用。1. 环境概览与部署思路CDH 是 Cloudera 发行的 Hadoop 发行版包含 HDFS、YARN、MapReduce、Hive 等核心组件。Cloudera 官方以 Docker 镜像形式提供了 QuickStart 单机沙箱可以在一台容器内模拟出一个最小可用的 CDH 集群。Zeppelin 官方仓库在 scripts/docker/spark-cluster-managers/cdh 下维护了配套的 Hadoop 配置示例core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml供部署时对照参考。整体部署链路分为五步导入 CDH 镜像 → 以特权模式启动容器并映射端口 → 验证 HDFS/YARN 服务 → 在zeppelin-env.sh与解释器设置页配置 Spark 的 YARN 客户端模式 → 运行 Spark 段落并到 YARN 页面确认应用状态。2. 导入 Cloudera QuickStart Docker 镜像Cloudera 官方已将 CDH QuickStart 环境封装为 Docker 镜像并提供在 Docker Hub 上执行以下命令即可拉取docker pull cloudera/quickstart:latest该镜像内置了完整的 CDH 组件与一键启动脚本容器内的docker-quickstart命令无需手动安装 Hadoop 生态的任何组件适合用来快速验证 Zeppelin 与 CDH 的集成。3. 以端口映射方式启动 CDH 容器CDH 沙箱内部运行着大量服务为了让宿主机上的 Zeppelin 能够访问 HDFS、YARN、Hive Metastore 等组件启动容器时需要使用-p参数将容器端口一一映射到宿主机。官方推荐的启动命令如下docker run -it \ -p 80:80 \ -p 4040:4040 \ -p 8020:8020 \ -p 8022:8022 \ -p 8030:8030 \ -p 8032:8032 \ -p 8033:8033 \ -p 8040:8040 \ -p 8042:8042 \ -p 8088:8088 \ -p 8480:8480 \ -p 8485:8485 \ -p 8888:8888 \ -p 9083:9083 \ -p 10020:10020 \ -p 10033:10033 \ -p 18088:18088 \ -p 19888:19888 \ -p 25000:25000 \ -p 25010:25010 \ -p 25020:25020 \ -p 50010:50010 \ -p 50020:50020 \ -p 50070:50070 \ -p 50075:50075 \ -h quickstart.cloudera --privilegedtrue \ agitated_payne_backup /usr/bin/docker-quickstart;命令中的关键点说明-h quickstart.cloudera为容器指定主机名。CDH 内部许多服务如 HDFS 的 NameNode/DataNode 通信依赖该主机名解析保持官方默认值可以避免 DNS 解析失败。--privilegedtrue以特权模式运行容器。CDH QuickStart 内部需要对系统参数、网络栈等进行调整例如修改内核参数、挂载资源非特权模式往往会导致服务启动失败。agitated_payne_backup镜像内部约定的容器名称占位符沿用官方示例即可。/usr/bin/docker-quickstart镜像内置的启动脚本负责拉起 CDH 全套服务。上述端口与 CDH 各组件的对应关系可以结合仓库中的配置文件交叉验证HDFS NameNode Web UI 使用50070HDFS RPC 使用8020见 scripts/docker/spark-cluster-managers/cdh/hdfs_conf/core-site.xml 中fs.defaultFS的hdfs://0.0.0.0:8020DataNode 的数据传输、HTTP、IPC 端口分别为50010、50075、50020见 scripts/docker/spark-cluster-managers/cdh/hdfs_conf/hdfs-site.xmlYARN ResourceManager 的 Web UI 使用8088调度器与客户端 RPC 地址分别为8030、8032见 scripts/docker/spark-cluster-managers/cdh/hdfs_conf/yarn-site.xmlHive Metastore 使用9083Spark 应用driver的 Web UI 使用4040。4. 验证 CDH 是否正常运行容器启动完成后通过以下两个 Web UI 即可确认核心服务状态服务访问地址HDFS NameNodehttp://hostname:50070/YARN ResourceManagerhttp://hostname:8088/cluster其中hostname为运行 Docker 的宿主机地址本机调试可直接使用localhost。若能正常打开 HDFS 的 NameNode 页面并看到 DataNode 存活列表同时 YARN 页面能够显示集群可用资源说明 CDH 沙箱已就绪可以进入下一步的 Zeppelin 配置。5. 配置 Spark 解释器接入 CDH5.1 在 zeppelin-env.sh 中设置环境变量Zeppelin 启动时会读取conf/zeppelin-env.sh仓库中提供了可直接参考的模板文件 conf/zeppelin-env.sh.template。为了让 Spark 解释器以 YARN 客户端模式连接 CDH需要在其中设置如下三个变量export MASTERyarn-client export HADOOP_CONF_DIR[your_hadoop_conf_path] export SPARK_HOME[your_spark_home_path]各变量的含义与取值建议MASTERyarn-client指定 Spark 的部署模式为 YARN 客户端模式。在该模式下driver 运行在 Zeppelin 所在节点executor 由 YARN 在集群中分配用户可以在 Zeppelin 中直接查看 Spark 应用日志是最适合 notebook 交互式分析的部署方式。从模板注释也可以看到MASTER的默认行为是Leave empty if you want to use local mode即不设置时 Spark 以本地模式运行因此接入集群时必须显式设置为yarn-client。HADOOP_CONF_DIR指向包含core-site.xml、hdfs-site.xml、yarn-site.xml等文件的 Hadoop 配置目录。Zeppelin 的 Spark 解释器需要通过这些配置解析 HDFS 地址与 YARN ResourceManager 地址。文档明确说明该路径在本仓库的 Docker 部署场景下定义为 scripts/docker/spark-cluster-managers/cdh/hdfs_conf在自己搭建的 CDH 集群中则填写集群实际的配置目录例如/etc/hadoop/conf。模板注释还特别强调yarn-site.xml is located in configuration directory in HADOOP_CONF_DIR即该目录中必须能找到yarn-site.xmlZeppelin 才能定位到 ResourceManager。SPARK_HOME指向 Spark 安装目录。模板注释明确说明defining SPARK_HOME makes Zeppelin run spark interpreter process using spark-submit——一旦定义SPARK_HOMEZeppelin 就会优先使用该外部 Spark 发行版而不是内置的 Spark 库只有无法指定外部 Spark 时才建议回退到内置二进制。5.2 在 Interpreters 设置页确认 master 参数除环境变量外还需要在 Zeppelin 的Interpreters设置页面中确认 Spark 解释器的master属性为yarn-client如下图中master一行的配置所示图中可以看到 Spark 解释器的Properties表格中master值为yarn-client同时还可以在此页面调整 Spark 应用名spark.app.name、executor 内存等参数。环境变量与解释器属性两者缺一不可zeppelin-env.sh中的MASTER决定 Spark 解释器进程的启动模式而解释器设置页的master属性则作用于该解释器实例内部保持一致才能保证提交行为符合预期。5.3 配置文件的底层支撑仓库中 scripts/docker/spark-cluster-managers/cdh/hdfs_conf 目录下四个配置文件共同定义了本次沙箱集群的行为可作为排查问题时的对照依据core-site.xml定义fs.defaultFS为hdfs://0.0.0.0:8020Zeppelin 提交的 Spark 应用将以此作为默认文件系统hdfs-site.xml将副本数设为 1单机沙箱关闭权限检查并配置 DataNode 的传输、HTTP、IPC 地址mapred-site.xml将mapreduce.framework.name设为yarn确认 MapReduce 作业运行在 YARN 之上yarn-site.xml定义 ResourceManager 的调度器、客户端、Web UI、资源追踪等地址8030/8032/8088/8031/8033并给出完整的yarn.application.classpath供 Spark executor 在容器内加载 Hadoop 依赖。从源码结构看这份配置目录被设计为 Spark 集群管理器 Docker 方案spark_mesos、spark_standalone、spark_yarn_cluster、cdh并列于 scripts/docker/spark-cluster-managers 下的共享 Hadoop 配置来源其端口定义与前述docker run的端口映射一一对应足以证明该部署方案的各环节是闭环一致的。6. 运行 Spark 段落并验证 YARN 应用配置完成后启动 Zeppelin新建 notebook 并添加一个 Spark 段落例如执行sc.version即可验证 Spark 解释器是否真正跑在 CDH 的 YARN 之上如上图所示段落使用%spark标记调用 Spark 上下文运行结果为res1: String 2.0.0状态为FINISHED说明 Spark 解释器已成功初始化并与 CDH 集群完成通信。随后打开 YARN ResourceManager 的应用列表页面确认作业提交情况http://hostname:8088/cluster/apps在该页面可以看到 Zeppelin 提交的 Spark 应用图中示例应用 ID 为application_1474523829556_0001包含提交用户、应用名、类型与状态等信息。只要应用出现在列表中且状态正常即证明 Zeppelin 已通过yarn-client模式成功将计算任务托管给 CDH 的 YARN。7. 常见问题与排查思路HDFS NameNode 页面打不开检查容器是否以--privilegedtrue启动以及50070端口是否正确映射同时确认core-site.xml中fs.defaultFS与容器端口一致。Spark 段落长时间处于 PENDING 或失败优先检查MASTER是否真的生效为yarn-client以及HADOOP_CONF_DIR中是否包含可被解析的yarn-site.xmlResourceManager 地址见 yarn-site.xml单机沙箱资源有限必要时可适当调大 executor 内存。YARN 页面看不到 Zeppelin 应用确认访问的是8088端口且宿主机的hostname可被容器内的 Spark 客户端解析若使用远端主机注意防火墙需放行上述端口段。版本匹配CDH QuickStart 镜像内嵌的 Hadoop/Spark 版本相对固定若使用自定义版本的 Spark请确保其与 CDH 的 Hadoop 版本兼容并通过SPARK_HOME显式指定。8. 小结通过本文的五个步骤——拉取cloudera/quickstart镜像、特权模式端口映射启动、验证 HDFS/YARN、配置zeppelin-env.sh与解释器masteryarn-client、运行 Spark 段落并到 YARN 页面确认——即可在本地快速搭建一套可复现的 Zeppelin CDH Spark on YARN 实验环境。这套流程既适合作为 Zeppelin 与 Hadoop 生态集成的入门沙箱也为在生产 CDH 集群中部署 Zeppelin 提供了完整的配置范式核心始终是MASTER、HADOOP_CONF_DIR、SPARK_HOME三者的正确配合以及解释器属性与集群配置的一致性。仓库中 scripts/docker/spark-cluster-managers/cdh/hdfs_conf 目录下的配置文件可作为任何 CDH 部署场景的对照参考。赞分享后端前端大数据数据分析【免费下载链接】zeppelinWeb-based notebook that enables>项目地址https://gitcode.com/gh_mirrors/zeppelin2/zeppelin点击查看免费下载相关推荐Apache Zeppelin 部署到 CDH基于 Cloudera QuickStart Docker 的完整实战指南Apache Zeppelin 部署到 CDH基于 Cloudera QuickStart Docker 的完整实战指南 Apache Zeppelin 是支数据分析数据可视化大数据后端前端任务调度Apache Zeppelin 部署到 CDHCloudera Distribution Hadoop集群基于 QuickStart Docker 的完整实战指南Apache Zeppelin 部署到 CDHCloudera Distribution Hadoop集群基于 QuickStart Docker 的完整数据分析数据可视化大数据后端ok-ww 零门槛上手鸣潮日常刷声骸自动战斗挂机就完事ok ww 零门槛上手鸣潮日常刷声骸自动战斗挂机就完事 ok ww 是一款基于图像识别的鸣潮自动化脚本截屏识别 Windows 消息接口模拟点按GUI 自动化计算机视觉RPA人工智能上一篇番茄小说下载器怎么用3步把整本书装进自己硬盘下一篇Wealthfolio 实时股价与汇率追踪完整指南本地优先的投资记录工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考