在 Docker 上建立多节点的 Hadoop 集群 【已翻译100%】

在上篇文章中你已经看到了在你的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端.
host list
blueprint add --url https://gist.githubusercontent.com/lalyos/xxx/raw/custum-blueprint.json
cluster build --blueprint custom-blueprint
cluster assign --hostGroup host_group_1 --host amb0.mycorp.kom
cluster assign --hostGroup host_group_2 --host amb1.mycorp.kom
cluster assign --hostGroup host_group_2 --host amb1.mycorp.kom
cluster create

AmbariShell 的 hint命令能帮助开发人员实现自动补全等功能.

自动补全包括:

  • 补全命令行 (例如,没有这个帮助下 cluster命令是不可用的)
  • 添加需要的参数
  • 添加备选参数: --后加上
  • 添加变参,像是参数名,宿主名等等 …

总结
基本上我们开始使用Docker的时候就已经使用多端的hadoop功能了 – 笔记本上运行3到4簇面临的极限问题比 Sandbox VM少得多.

我们使用了docker的模式简化了hadoop的使用模式 – 可以在 LinkedIn找到我们关于Cloudbreak的最新进展 – 开源云端的Hadoop as a Service API应用并构建在 docker上.

希望本文能帮你简化你的开发流程 – 如有什么关于docker上使用hadoop问题,欢迎沟通.

时间: 2024-09-20 01:11:08

在 Docker 上建立多节点的 Hadoop 集群 【已翻译100%】的相关文章

在Docker上建立多节点的Hadoop集群

在上篇文章中你已经看到了在你的devbox创建一个单点Hadoop 集群是多么简单. 现在我们提高门槛,在Docker上创建一个多点hadoop集群.在开始前,确保你有最新的Ambari镜像: 一行命令 一旦你得到了最新的镜像,你就可以启动Docker容器.我们已经创建了几个shell 函数来帮你输入Docker命令,从而避免输入像docker run [options] image [command]这样冗长的命令. 有了这些功能,创建3个节点的hadoop簇,只需要下面一行代码搞定: 默认参

Docker 中如何连接多个 Container 协同工作 【已翻译100%】

在Docker使用部分我们接触到了通过网络端口来连接运行在Docker容器内的服务.这是同Docker容器内服务和应用互动的方法之一.在这一节中,我们将带你复习一下通过网络端口连接到Docker容器并给你介绍容器连接的概念. 网络端口映射刷新 在Docker的使用部分中,我们创建了一个运行Python Flask应用的容器. $ sudo docker run -d -P training/webapp python app.py 注意:容器有一个内部网络和IP地址(还记得在使用Docker部分

大数据探索:在树莓派上通过 Apache Spark on YARN 搭建 Hadoop 集群

有些时候我们想从 DQYDJ 网站的数据中分析点有用的东西出来,在过去,我们要用 R 语言提取固定宽度的数据,然后通过数学建模来分析美国的最低收入补贴,当然也包括其他优秀的方法. 今天我将向你展示对大数据的一点探索,不过有点变化,使用的是全世界最流行的微型电脑----树莓派,如果手头没有,那就看下一篇吧(可能是已经处理好的数据),对于其他用户,请继续阅读吧,今天我们要建立一个树莓派 Hadoop集群! I. 为什么要建立一个树莓派的 Hadoop 集群? 由三个树莓派节点组成的 Hadoop 集

完全分布模式hadoop集群安装配置之二 添加新节点组成分布式集群

前文说到如何搭建集群中第一个节点,这篇将说到如何向集群添加节点.这篇是基于前文的,没有看过前文的可以参考此链接:http://www.cnblogs.com/mikelij/archive/2012/03/06/2380937.html   2 向集群添加节点     前文已经建立了一个节点的hadoop集群.现在要做的添加节点.安装JDK, 创建hadoop用户等见前文.这里就不重复了.   2.1 检查主机名,修改/etc/hostname, /etc/hosts   新节点需要在这个集群里

一个助Hadoop集群数据快速上云工具

背景 越来越多的公司和企业希望将业务迁移到云上,同时业务数据也希望能更顺畅的迁移到云上. 当前业界有很多公司是以Hadoop技术构建数据中心,所以本文将探讨如何快速的将Hadoop文件系统(HDFS)上的数据迁移到云上. 在阿里云上使用最广泛的存储服务是OSS对象存储.OSS的数据迁移工具ossimport2可以将您本地或第三方云存储服务上的文件同步到OSS上,但这个工具无法读取Hadoop文件系统的数据,无法发挥Hadoop分布式的特点.并且因为工具只支持本地文件,所以需要将HDFS上的文件先

深入理解Hadoop集群和网络

云计算和Hadoop中网络是讨论得相对比较少的领域.本文原文由http://www.aliyun.com/zixun/aggregation/13533.html">Dell企业技术专家Brad Hedlund撰写,他曾在思科工作多年,专长是数据中心.云网络等.文章素材基于作者自己的研究.实验和Cloudera的培训资料. 本文将着重于讨论Hadoop集群的体系结构和方法,及它如何与网络和服务器基础设施的关系.最开始我们先学习一下Hadoop集群运作的基础原理. Hadoop里的服务器角色

基于Hadoop集群的大规模分布式深度学习

前言 在过去的十年里,Yahoo一直持续投资建设和扩展Apache Hadoop集群,到目前为止共有超过4万台服务器和600PB数据分布在19个集群上.正如在2015 Hadoop 峰会上介绍的,我们在自己的服务器上开发了可扩展的机器学习算法,用于分类.排序和计算词向量.目前,Hadoop集群已成为Yahoo大规模机器学习的首选平台. 深度学习(Deep Learning, DL)是雅虎很多产品的核心技术需求.在2015 RE.WORK深度学习峰会上,Yahoo Flickr团队(Simon O

怎么为大数据处理构建高性能Hadoop集群

越来越多的企业开始使用Hadoop来对大数据进行处理分析,但Hadoop集群的整体性能却取决于CPU.内存.网络以及存储之间的性能平衡.而在这篇文章中,我们将探讨如何为Hadoop集群构建高性能网络,这是对大数据进行处理分析的关键所在. 关于Hadoop "大数据"是松散的数据集合,海量数据的不断增长迫使企业需要通过一种新的方式去管理.大数据是结构化或非结构化的多种数据类型的大集合.而 Hadoop则是Apache发布的软件架构,用以分析PB级的非结构化数据,并将其转换成其他应用程序可

显示当前Hadoop集群节点上启动的进程

#!/bin/sh #查看hadoop的运行状态 function hadoopState(){ COUNT=1 while [ ${COUNT} -le ${NUM} ] do echo "**********查看hadoop${COUNT}上hadoop的运行状态********" #连接远程主机查看运行状态 ssh -t -p 22 hadoop${COUNT} "jps" COUNT=$((${COUNT}+1)) done } echo "===