使用Docker运行Hadoop(适用于DEV和PROD环境)

什么是最简单的方法(适用于开发人员和真实环境)使用Docker运行Hadoop?

那对于本地开发环境和真实环境的区别应该只是目标机器。

PS有关

  • Docker容器中的Hadoop更快/值得吗?
  • 在Docker容器上使用Hadoop和Spark
  • 在Docker容器上运行hadoop集群
  • 如何在Docker Swarm中设置Hadoop?
  • 是否有可能使用docker启动多物理节点hadoop clustster?
  • 带有Docker的多节点Hadoop集群

和许多https://stackoverflow.com/questions/tagged/hadoop+docker

Docker Hub上有一些Hadoop镜像 ,但是如果你想要一些适合不同环境的东西,你需要完全分布式运行 – 例如HDFS和YARN主节点的容器,以及工作节点的多个容器。

我有一个像你可以用作起点的图像: sixeyed / hadoop-dotnet 。 您可以从Dockerfile中看到它从Java基础映像启动 ,安装Hadoop并使用启动脚本,以便容器可以作为主或者工作者运行。

这意味着您可以使用最新的networking堆栈来运行Docker的分布式集群:

docker network create hadoop docker run -d -p 50070:50070 -p 8088:8088 \ --network hadoop --name hadoop-dotnet-master \ sixeyed/hadoop-dotnet master docker run -d -p 50075:50075 -p 8142:8042 -p 19888:19888 \ --network hadoop sixeyed/hadoop-dotnet worker 

或者,您可以使用Docker Compose文件运行完全分布式的群集。

该图像还包括.NET Core,但如果不使用该部分,则可以删除该部分