在Docker上建立多节点的Hadoop集群
在上篇文章中你已经看到了在你的devbox创建一个单点Hadoop 集群是多么简单。
现在我们提高门槛,在Docker上创建一个多点hadoop集群。在开始前,确保你有***的Ambari镜像:
- docker pull sequenceiq/ambari:latest
一行命令
一旦你得到了***的镜像,你就可以启动Docker容器。我们已经创建了几个shell 函数来帮你输入Docker命令,从而避免输入像docker run [options] image [command]这样冗长的命令。
有了这些功能,创建3个节点的hadoop簇,只需要下面一行代码搞定:
- curl -Lo .amb j.mp/docker-ambari && . .amb && amb-deploy-cluster
默认参数值都是可以根据需要更改的,像是blueprint,簇大小,等等 … 在shellj.mp/docker-ambari功能函数的头文件有参数列表.
它是按照下面步骤来实现的:
-
在Docker (后台运行) 容器的守护进程上运行sambari-server start (记得还有 anambari-agent start)
-
运行sn-1 守护进程容器并用ambari-agent start连接到服务器
-
运行AmbariShell 以及其终端控制台 (监控子进程)
-
AmbariShell 会把内置的多节点blueprint发送至 /api/v1/blueprintsREST API
-
AmbariShell 依照blueprint的设置自动分配宿主信息
-
通过发送至/api/v1/clustersREST API的内容创建簇
-
自定义
如果你有自己定义好的脚本,可以放在 gist然后运行 AmbariShell. 先启动 AmbariShell:
- amb-start-cluster 2
- amb-shell
AmbariShell启动的前提:
-
Ambari REST API 将帮助你建立多个hadoop端.
AmbariShell 的 hint命令能帮助开发人员实现自动补全等功能.
自动补全包括:
-
补全命令行 (例如,没有这个帮助下 cluster命令是不可用的)
-
添加需要的参数
-
添加备选参数: --后加上<TAB>
-
添加变参,像是参数名,宿主名等等 …
总结
基本上我们开始使用Docker的时候就已经使用多端的hadoop功能了 – 笔记本上运行3到4簇面临的极限问题比 Sandbox VM少得多.
我们使用了docker的模式简化了hadoop的使用模式 – 可以在 LinkedIn找到我们关于Cloudbreak的***进展 – 开源云端的Hadoop as a Service API应用并构建在 docker上.
希望本文能帮你简化你的开发流程 – 如有什么关于docker上使用hadoop问题,欢迎沟通。
英文原文:Multi-node Hadoop cluster on Docker
译文出自:http://www.oschina.net/translate/multinode-hadoop-cluster-on-docker
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击