September 1, 2015
译自 How to Create Instant MapR Clusters with Docker by Mitra Kaseebhotla
在MapR公司中,开发效率对我们非常重要。为了保持我们创新的节奏,为了提供给客户更多的选择,让他们能更灵活地使用我们基于Apache Hadoop及其他开源项目改进的MapR发行版,我们尽可能广泛地推行DevOps。其中非常重要的一个环是保证我们可以快速测试我们的构建包,以保证代码库的质量。自动化测试是其中的关键,有了它才得以在我们的发行版中集成开源社区中众多项目版本的最新特性。例如,我们测试通过了基于Hadoop 2.7的Drill 1.1和Hive 1.0,基于Hadoop 2.6的Drill 1.2和Spark 1.3.1等等。为能支持让客户 在单个MapR集群中运行50个以上的应用 ,在MapR发行版中的组件版本有很多组合可能,因为为了节省客户的时间和金钱,我们允许他们增量地升级各个应用。
为了保持快速创新的步伐,我们已经在大量使用Docker。我们根据不同需要构建并维护了不同的运行着MapR的Docker镜像,而不是用物理机或者虚拟机来运行大量的测试集群,这样把数以小时计的部署测试集群时间减少到了秒级!
在本篇文章中,我们将分享创建Docker化的MapR集群时所用到的工具和方法。我们希望你这些方法从中受益,无论是MapR相关知识还是测试新应用的方法。
要实现这些目标,网络配置是其中重要的一环。这些容器(集群中的节点)需要被外部网络访问(可被路由)。我们不希望进行复杂的网络配置。
第一步:
设置一个可被路由的网桥.(如:br0) 参考
这是一个CentOS 7.0上的配置示例:
sh
DEVICE="br0"
ONBOOT=yes
IPV6INIT=no
BOOTPROTO=static
TYPE=Bridge
NAME="br0"
IPADDR=10.10.101.135
NETMASK=255.255.255.0
GATEWAY=10.10.101.1
#
sh
DEVICE="enp4s0"
ONBOOT=yes
IPV6INIT=no
BOOTPROTO=none
HWADDR="0c:c4:7a:58:7d:19"
TYPE=Ethernet
NAME="enp4s0"
BRIDGE=br0
#
第二步:
从网络管理员那获取到一组能被路由到的空闲IP,这些IP将被分配到容器,并且和网桥的IP属于同一个虚拟网络。
例如:我们拿到10.10.101.16/29这个IP段,这个IP段包括10.10.101.17 到 10.10.101.22的IP将被分配给各容器。
用以下选项配置docker:
-b=bridge-inf --fixed-cidr=x.x.x.x/mask
例如:-b=br0 --fixed-cidr=10.10.101.8/29
这样为容器设置了上边提及到可被路由的IP范围。
每个容器需要一个磁盘或分区以供MapR使用。首先新建一个文本文件,在这个文本中输入一系列磁盘的列表,每行代表一个磁盘。
示例 :
sh
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdf
如果文本中的磁盘数量比容器需要的多,多余的磁盘会被分配给第一个容器。
launch-cluster.sh 在此下载 5.0.0
sh
使用方法 : ./launch-cluster.sh 集群名称 节点数量 内存大小(kB为单位) 磁盘列表文件的路径
示例:
Control Node IP : 10.10.101.21
Starting the cluster: https://10.10.101.21:8443/
login:mapr password:mapr
Data Nodes : 10.10.101.22,10.10.101.17,10.10.101.18
#
通过控制节点的IP打开MapR的管理终端: https://10.10.101.21:8443 (从上述示例的输出可以看到)
在希云和大家分享的这篇文章中,你已经学到了如何用Docker创建开箱即用的MapR集群。如果有任何疑问,可以通过微信联系我们或者拨打我们的400电话将为您详细解答。
希云是Docker领域的专家,致力于通过Docker技术提供更好的云计算产品和服务。希云品牌下的产品包括了
并提供相关的培训和咨询服务
欢迎企业垂询:
微信关注cSphere-CN,回复数字“1”即可查看【Docker持续部署图文详解】
尊重知识,请必须全文转载,不得删改,包括本行。