设为首页 收藏本站
查看: 7713|回复: 0

[经验分享] docker + ambari(hortonworks ) 快速搭建hadoop 环境

[复制链接]
累计签到:8 天
连续签到:1 天
发表于 2015-10-13 08:52:29 | 显示全部楼层 |阅读模式
最近在搭建hadoop 环境的时候,最初尝试去写一些脚本去安装包以及修改配置,后来发现源软件https://ambari.apache.org/可以管理部署监控hadoop集群, 于是尝试用docker安装试验。ambaris: 是 hortonworks  开发的一个自动 部署+管理+监控  HDP(Hortonworks Data Platform, http://hortonworks.com/hdp/,由hadoop生态环境中的一些开源软件组成)的开源软件。与之相对应的有cloudera manager, cloudera 发展时间更长,网上能搜到的资料更多, 但是其开源性好像没有hortonworks好。docker: 现在比较热门的一个虚拟运行环境,我的理解是其使用了cgroup, namespace, aufs 等实现了应用程序的运行环境隔离。

首先贴上Ambari 的架构,如下图, Ambari  Server 与agent 交互从而 管理集群节点,这里agent的注册可以是被动,也就是server 通过ssh连接到agent,然后启动agent 去注册,所以需要两个配置, agent上需要能够ssh 私钥 无密码登陆, 而且agent上要配置server的地址。 DSC0000.jpg DSC0001.jpg
因为是通过docker安装,所以宿主机环境我使用了ubuntu 14.04(24G 内存, 4核8线程)
1. 创建一个基础image
由于ambari 对ubuntu仅支持ubuntu12, 所以这里使用了官方的ubuntu12.04 的docker 镜像为基础 创建所需要的镜像,这里我创建了两个基础镜像,Dockerfile 分别在如下链接,
https://github.com/trumanz/docker-tools/tree/master/dockerBuild/ubuntu12.04_devhttps://github.com/trumanz/ambari-deploy/tree/master/dockernized1. trumanz/ubuntu12.04:dev ,   配置了apt.conf(指向apt cache server 或者proxy) 安装了 常用开发软件,并且设置了 root ssh登陆许可。2. trumanz/ambari:dev   在trumanz/ubuntu12.04:dev的基础上安装了 ambari  server 和agent的包, 并且设置了 ssh 秘钥设置。


2. 创建container,配置server执行https://github.com/trumanz/ambari-deploy/tree/master/dockernized  中的 start.sh脚本,这里启动了4个container , 设置了每个container 都是4g 内存(默认cpu设定,也就是4个container 都是平等的)as是Ambari server ag1, ag2, ag3 是我们的ambari agent ,也就是模拟需要管理的host,
这里有一个已知问题,当遇到下面的logREASON: Ambari Server java process died with exitcode -1. Check /var/log/ambari-server/ambari-server.out for more information.
可以到as  container里面手动启动 Ambari server, 如下truman@z600:~/work/ambari-deploy/dockernized$ docker exec -t -i as /bin/bash
root@as:/# ambari-server start
还是输出同样的失败log,不要管,执行jps 命令,看到AmbariServer 启动就可以了,root@as:/# jps
477 AmbariServer
549 Jps


3.  firefox 中 管理 配置节点在firefox 中输入 as container的地址,形如, http://172.17.0.1:8080, 出现登陆密码,使用admin/admin 登陆,1. 点 ”Lanuch Install Wizard“2. 输入Cluster 名,形如“test”, 点next3. 选择HDP  respository ,这里点开Advanced Repository Options 去掉除ubuntu12 之外的OS, 并且在HDP-2.2中将2.6.6.0 替换为2.4.4.2(注意这个版本,测试中发现2.6.6.0 在安装ZooKeeper 会出现问题4. Install Options,在Target Hosts 中输入我们用container模拟的节点,也就是三行分别为 ag1, ag2和ag3。    在SSH Private Key 中 选择 https://github.com/trumanz/ambari-deploy/tree/master/dockernized/ssh 中的id_rsa5. 进入Confirm Hosts, 这一阶段时间比较长,出现warning,告知NTP 没有安装(这里因为我们是运行在同一主机的container环境中,所以并不需要NTP时间同步)可以忽略掉。     选中所有host ,点NEXt6. Choose Services, 这一步骤,只选择 HDFS , YARN+MpReduce2,ZooKeeper 和 Ambari Metrics (这里仍以简单的mapreduce示例)既可以。7. Assign Masters, 这一步,我将大部分master都安装在ag1上8. Assign Slaves and Clients,我这一部主要选中ag2 和ag3,这样在三个container中存数和计算9. Customize Services, 这一步比较讨厌,因为docker 的container 里面识别到的内存大小和cpu数量 跟宿主机是一样的,所以推荐值并不合适,需要根据需求修改,这里需要根据自己的内存与配置情况修改(这些配置参数也可以在安装完成后修改,通过管理界面修改), 这里暂时使用默认参数一直下一步,进入 安装界面, 等待时间比较长
最终进入如下界面



这样我们就可以在ag1上执行mapreduc 的示例代码,除了一下两点,其他同官方教程相同1. JAVA_HOME的路径root@ag1:/local# export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd642. 这里HDFS的跟目录只有hdfs用户具有创建目录的权限,所以要使用hdfs 用户去创建目录,root@ag1:/local# su - hdfs -c 'hdfs dfs -mkdir /input'



总结:Docker 提供了快速搭建环境的运行环境的方式,但是在container看到内存和cpu信息是跟host宿主机相同的(即使设置通过--cpuset 以及-m设置了资源限制),所以我们的例子中Ambari 的统计信息中,内存、cpu 在各个模拟host中是完全相同的。 现在的Docker并不适用去模拟节点,但其在部署service上具有非常大的速度优势。 Ambari 工具可以非常方便的配置管理hadoop集群,并且提供配置每个service的参数的管理界面。





         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-126096-1-1.html 上篇帖子: DNS 与 Docker 容器 下篇帖子: 如何使用Docker搭建私有的DNSServer
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表