Apache拟在Docker中运行Hadoop

&">nbsp;Apache在其Hadoop维基百科发布了一个页面,主要整理了Docker中运行Hadoop的好处,以及要完全在Docker中运行Hadoop所需要完成的工作。在Docker,或者说其它容器中运行Hadoop YARN有很多优势,具体如下:

软件依赖和配置的隔离:在Docker中运行的应用,其软件依赖和配置是与宿主机完全没有关系的,跟其其它行在Docker中的应用也没有关系;

安全性:运行在Docker中的应用,在没有主动配置的情况下,基本没有办法访问(即便是Docker镜像中的root权限)宿主文件系统的内容,这可以很好的保护宿主文件系统、设备等等;

性能隔离:Docker可以对应用所需要的资源,如CPU计算资源、内存资源、存储资源、带宽等进行调控;

一致性:只要是源自同一个Docker镜像,所有的任务就具有完全一致的软件环境,跟宿主环境无关。比如一个Ubuntu镜像可以像使用真正Ubuntu系统一样利用其特性,哪怕宿主机器是RHEL;

快速部署:Docker有着强大的镜像存储和分发能力,开发者可以很方便的从镜像中心获取Hadoop YARN应用的镜像;

可编程:通过Dockerfile,开发者可以非常方便地对YARN应用的文件系统、环境配置和运行的脚本进行设置;

虽然容器的优势是明显的,但是目前Docker和YARN的情况却无法支撑完全在Docker中运行Hadoop YARN任务,Apache提出需要对Docker和YARN进行修改的想法,并给出了一些目前计划的工作:

YARN的Docker执行器;

Docker需要支持user namespaces,以便可以将Docker镜像中的root用户映射到宿主机的普通用户,来控制用户对宿主文件系统的访问;

容器的网络配置:这项工作主要为了让YARN的主节点同其他节点通信,Docker现有的NAT IP地址不允许运行在某个镜像中的任务访问另外一台物理宿主上运行的其他任务;

动态配置资源限制:目前Docker不支持动态对镜像资源进行配置。

时间: 2024-09-12 14:02:54

Apache拟在Docker中运行Hadoop的相关文章

利用 Spring Boot 在 Docker 中运行 Hadoop

本文讲的是利用 Spring Boot 在 Docker 中运行 Hadoop,[编者的话]Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.本文介绍了如何利用Spring Boot在Docker中运行Hadoop任务. 简介 越来越多的应用都开始使用Hadoop框架.而开发者在使用过程中也遇到一些挑战,比如使用诸如Docker之类的容器开发和部署相关的技术栈开发的应用.我们将会在下面的例子中介绍如何克服这些挑战. 由于 S

尝鲜 | 在Docker中运行你的Mesos集群

本文讲的是尝鲜 | 在Docker中运行你的Mesos集群,[编者的话]本文介绍了在Docker中运行Apache Mesos,Mesos官方网站提供了安装包来直接运行它,但文中尝试使用Docker来运行Mesos,Mesosphere也提供了相应的镜像.在Docker中运行Mesos也有它的好处,读者可以尝试下. 很多人都已经开始在Apache Mesos中运行容器化的应用,我们也是这样.尽管我们尝试在容器中运行应用,但我们还是通过传统的安装包来在自己的主机上安装Mesos.尽管这是最简单和直

在Docker中运行桌面应用

本文讲的是在Docker中运行桌面应用,[编者的话]本文作者Jessie Frazelle,本文重要介绍了很多基于文本的或者基于GUI的Docker应用.如果你想对原作者的更多Dockerfile或者镜像感兴趣的话,可以留意本文末尾的链接. 不知道你是否熟悉Docker,它是一个流行的开源容器引擎. 许多人使用Docker来部署应用到生产环境或者在容器环境里构建他们的应用.这可以节省开发者和运维工程师彼此头疼的问题,但是我喜欢以一种非典型的方式来使用Docker. 在我的电脑里,我使用Docke

在Docker中运行SQLServer ASP.NET应用

的文章在阿里云上运行ASP.NET Docker应用一文和大家探讨了如何在Docker中运行ASP.NET应用.本文是上一篇文章的续篇,讨论如何让应用访问SQLServer数据库. 创建SQLServer数据库 我们首先在阿里云上开通一个SQLServer服务器实例,创建用户user1. 创建一个名为Blog的数据库,并授权user1能够访问数据库.为数据库开通外网访问,获得数据库外网访问地址. 所有这些操作都能够在控制台完成,如果你想进入SQLServer的控制台,可以点击上图的登录数据库进入

在Docker中运行Dubbo应用

Dubbo是阿里开源的一个分布式服务框架,在国内粉丝很多.官网上的介绍是: DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点. Dubbo的文档很完整,网络上资源也很多,这里就不再重复了.本文做这样一个尝试,将一个Dubbo应用容器化,部署到阿里云的容器服务上. 极简Dubbo应用结构 在Dubbo世界里,服务调用

在Docker中运行Java:为了防止失败,你应该知道的

如果你尝试在容器中运行Java程序,或者专注于Docker,你可能会遇到一些关于JVM和堆大小的问题.本篇文章将介绍如何解决这些问题. 很多开发者会(或者应该)知道,当我们为运行在Linux容器(docker, rkt, runC, lxcfs, etc,)中的Java程序去设置JVM的GC.堆大小和运行时编译器的参数时并没有得到预想的效果.当我们通过"java -jar mypplication-fat.jar"的方式而不设置任何参数来运行一个Java应用时,JVM会根据自身的许多参

在 Docker 中运行一个 Python 的 Web 应用

几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beanstalk Python环境. 关于注册表单应用 几个月之前,我们就已经开发完这个应用并且发表在博客上.有4部分视频和一篇文章"Using DynamoDB and SNS with Elastic Beanstalk in any Supported AWS Region".今天,我们将在这部

Windows 配置Apache以便在浏览器中运行Python script的CGI模式_Linux

现在因为已经安装了2.6的Python,以及支持2.6的Eric4,就不想再重新安装2.5来继续配置Apache下mod_python了. 后来发现了一篇文章Running Python as CGI in Apache in Windows ,讲述以CGI模式代替mod_python来运行python script.还有这篇Python for Windows . 做法是: 打开httpd.conf,找到"#ScriptInterpreterSource Registry ",移除前

在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理

本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器拥有一定程度的复杂性,而具体水平则取决于您所选择的集群技术. 在尝试利用容器加多主机网络运行 MySQL 之前,我们首先需要理解镜像的起效原理.各资源的分配方式(包括磁盘.内存与 CPU).网络(覆盖网络驱动因素,默认情况下包括 flannel 与 weave 等)以及容错机制(容器如何实现重新定位