我们以Ambari+HDP为例。尽管说运维坚决不同意在docker上运行大数据组件,但是我觉得,作为测试和学习目的在本地快速构建大数据集群仍然是一件非常有意义的事情。
如果我们想采取Ambari来安装HDP的话,其包含的主要组件如下
- ambari-server: 主要部署的控制节点,负责控制agent进行部署。
- mysql: server存储的数据库。也支持postgresql等数据库。
- ambari-agent: 主要执行部署的节点,根据控制节点,部署相应的服务的相应组件(compoment)。
- repo: 可以是公网的库,也可以是本地源。主要提供各个服务安装的rpm包等。ambari主要使用的是HDP(hortonworks data platform)的库。
- consul: 用于DNS解析。因为各个节点之间需要通过域名来相互进行访问。用consul来提供DNS解析服务,无需在每个节点上配置hosts。对应的,各个容器也需要将DNS(即resolve.conf)指定为部署consul的ip。
下载Docker镜像
docker pull sequenceiq/ambari
下载代码
git clone https://github.com/sequenceiq/docker-ambari
启动容器
修改网络
# Getting the IP of docker-machine or boot2docker
docker-machine ip <name-of-docker-vm>
# or
boot2docker ip
# Setting up the
sudo route add -net 172.17.0.0/16 <docker-machine or boot2docker>
# e.g:
sudo route add -net 172.17.0.0/16 192.168.99.100