为了免去繁杂的环境配置工作,提供开箱即用的 Spark + Hadoop 快捷部署方案。基于 BitNami 项目的成熟镜像方案,搭建 Spark Docker 集群,并在原有镜像基础上,构建了安装有对应版本 Hadoop 的镜像。详细构建过程请参考:使用 Docker 快速部署 Spark + Hadoop 大数据集群。
- Spark Version:3.1.2
- Hadoop Version:3.2.0
拉取镜像:
docker pull s1mplecc/spark-hadoop:3
拷贝项目中的 docker-compose.yml 至本地,执行如下命令启动集群:
docker-compose up -d
在容器内运行 Hadoop 启动脚本:
$ ./start-hadoop.sh
$ hdfs dfs -put share/words.txt /
$ hadoop jar share/bigdata-learning-0.0.1.jar example.mapreduce.WordCount /words.txt /output
TODO
Web UI | 默认网址 | 备注 |
---|---|---|
* Spark Application | http://localhost:4040 | 由 SparkContext 启动,显示以本地或 Standalone 模式运行的 Spark 应用 |
Spark Standalone Master | http://localhost:8080 | 显示集群状态,以及以 Standalone 模式提交的 Spark 应用 |
* HDFS NameNode | http://localhost:9870 | 可浏览 HDFS 文件系统 |
* YARN ResourceManager | http://localhost:8088 | 显示提交到 YARN 上的 Spark 应用 |
YARN NodeManager | http://localhost:8042 | 显示工作节点配置信息和运行时日志 |
MapReduce Job History | http://localhost:19888 | MapReduce 历史任务 |
默认情况下macos和windows下,宿主机和容器间的网络是不互通的,导致直接在宿主机上开发时,idea里访问不到容器上的服务,理论上应该可以不用做docker的端口转发(没试过)。 参考这里 https://github.com/wenjunxiao/mac-docker-connector/blob/master/README-ZH.md
http://master:9870/dfshealth.html#tab-overview http://master:8080/ http://master:18080/