使用Ambari快速部署Hadoop大数据环境

前言

做大数据相关的后端开发工作一年多来,随着Hadoop社区的不断发展,也在不断尝试新的东西,本文着重来讲解下Ambari,这个新的Apache的项目,旨在让大家能够方便快速的配置和部署Hadoop生态圈相关的组件的环境,并提供维护和监控的功能.

作为新手,我讲讲我自己的学习经历,刚刚开始学习的时候,当然最简单的 Google 下Hadoop ,然后下载相关的包,在自己的虚拟机(CentOS 6.3) 上安装一个单机的Hadoop版本用来做测试,写几个测试类,然后做下CRUD测试之类的,跑跑Map/Reduce的测试,当然这个时候对于Hadoop还不是很了解,不断的看别人的文章,了解下整体的架构,自己所做的就是修改conf下的几个配置文件,让Hadoop能够正常的跑起来,这个时候几种在修改配置上,这个阶段之后,又用到了HBase,这个Hadoop生态圈的另外一个产品,当然还是修改配置,然后 start-all.sh , start-hbase.sh 把服务起起来,然后就是修改自己的程序,做测试,随着用Hbase 学了下 Zookeeper 和Hive等, 接着过了这个操作阶段了之后,开始研究Hadoop2.0看了 董的博客 的相关文章,还有CSDN上很多大牛的文章了之后, 算是对Hadoop的生态圈整体有一些了解,介于自己在公司所承担的开发所涉及到相关的技术仅仅就这些.但是作为一个爱好探索的人,是否想多了解下呢,它的性能怎么样? 它是具体如何运作的? 看大公司的那些PPT,人家(淘宝等大公司)动不动就是几十个,几百个,乃至几千个节点,人家是如何管理的,性能是怎么样的?看着PPT里面的那些性能测试的曲线,你是否也能够详细的了解,并且对自己的项目进行性能调优呢? 我貌似找到答案了,那就是 Ambari , 由 HortonWorks 开发的一个Hadoop相关的项目,具体可以上官方去了解. 

 

了解Hadoop生态圈

现在我们经常看到的一些关键字有: HDFS,MapReduce,HBase,Hive,ZooKeeper,Pig,Sqoop,Oozie,Ganglia,Nagios,CDH3,CDH4,Flume,Scribe,Fluented,HttpFS等等,其实应该还有更多,Hadoop生态圈现在发展算是相当繁荣了,而在这些繁荣的背后又是谁在推动的呢? 读过Hadoop历史的朋友可能知道,Hadoop最早是始于Yahoo,但是现在主要是由 HortonWorks 和  Cloudera  这2家公司在维护者,大部分的commiter 都属于这2家公司,所以现在市面上看到的主要有2个版本,CDH系列,和社区版, 我最早用的是社区版本,后来换到CDH3,现在又换回社区版,因为有Ambari.当然,用什么和不用什么,只要自己的技术到家,还是都能修改的跑的正常的.这里就不多说了. 讲了这么多废话了,开始讲 Ambari安装吧.

 

开始部署

首先了解下Ambari, 项目地址在:http://incubator.apache.org/ambari/  

安装文档在: http://incubator.apache.org/ambari/1.2.2/installing-hadoop-using-ambari/content/index.html

HortonWorks的人写的一篇介绍安装的文章我翻译了下: http://www.cnblogs.com/scotoma/archive/2013/05/18/3085040.html  安装的时候请大家先看下安装文档吧,安装文档必须认真看,结合自己当前所使用的系统版本,配置不同的源,而且安装过程中需要的时间相对比较长,所以需要认真的做好安装文档的每个步骤. 这里我就说我遇到的一些问题.

以下说说我自己的安装过程.

机器准备:

我的测试环境采用 9 台 HP 的烂机器,分别是   cloud100  -  cloud108 ,    cloud108做为管理节点.

Ambari安装的环境路径:

各台机器的安装目录:

/usr/lib/hadoop

/usr/lib/hbase

/usr/lib/zookeeper

/usr/lib/hcatalog

/usr/lib/hive 

Log路径, 这里需要看出错信息都可以在目录下找到相关的日志

/var/log/hadoop

/var/log/hbase  

 配置文件的路径

/etc/hadoop  

/etc/hbase

/etc/hive

HDFS的存储路径

/hadoop/hdfs 

 

安装过程需要注意的点:

1, 安装的时候,需要做好每台机器的ssh免密码登陆,这个之前的文章 http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html   中提到了,做好之后,从 管理节点到各个集群节点之间,都能使用这个登陆.

2, 如果你的机器之前安装过 Hadoop的相关服务,特别是Hbase 里面配置了 HBASE_HOME 的环境变量,需要 unset掉, 这个环境变量会影响,因为我之前把这些路径放到  /etc/profile 里面导致影响了HBase,因为Ambari安装的路径和你之前安装的可能不一样.

3,在服务选择页面的时候, NameNode 和 SNameNode 需要布置在一起, 我之前尝试做 HA 而把他们分开,但是SNameNode一直起不来,导致整个启动失败,接下来时间需要花在HA上.

 

4. JobTrakcer 不和Namenode在一起也会导致 启动不起来.

5. Datanode的节点 不能少于 Block replication 中数, 基本都是需要 >= 3. 

6. Confirm Hosts 的时候,需要注意里面的 Warning 信息,把相关的Warning都处理掉,有一些Warning会导致安装出错.

7. 记住安装中所新建的用户,接下来需要用到这些用户.

8. Hive和HBase Master 部署在同一个节点,这里当然你也可以分开. 设置好后就开始安装了.

9.如果安装失败的情况下,如何重新安装.

首先,先删除掉系统已经安装的文件相关的目录,

sh file_cp.sh cmd "rm -rf /usr/lib/hadoop && rm -rf /usr/lib/hbase && rm -rf /usr/lib/zookeeper"

sh file_cp.sh cmd "rm -rf /etc/hadoop && rm -rf /etc/hbase && rm -rf /hadoop && rm -rf /var/log/hadoop"

sh file_cp.sh cmd "rm -rf /etc/ganglia && rm -rf /etc/hcatalog && rm -rf /etc/hive && rm -rf /etc/nagios && rm -rf /etc/sqoop && rm -rf /var/log/hbase && rm -rf /var/log/nagios && rm -rf /var/log/hive && rm -rf /var/log/zookeeper && rm -rf /var/run/hadoop && rm -rf /var/run/hbase && rm -rf /var/run/zookeeper "

再在Yum remove 掉安装的相关的包.

sh file_cp.sh cmd "yum -y remove ambari-log4j hadoop hadoop-lzo hbase hive libconfuse nagios sqoop zookeeper"

我这里使用到了自己写的Shell,方便在多台机器之间执行命令:

https://github.com/xinqiyang/opshell/tree/master/hadoop

Reset下Ambari-Server

 

ambari-server stop

 

ambari-server reset

 

ambari-server start 

 

 

10.注意时间的同步,时间问题会导致regionserver起不来

 

11. iptables 需要关闭,有的时候可能机器会重新启动,所以不单单需要 service stop 也需要chkconfig 关闭掉.

最后安装完成后,登陆地址查看下服务的情况:

http://管理节点ip:8080 , 比如我这里的: http://192.168.1.108:8080/  登陆之后,需要设置之前在安装Ambari-server时候输入的账号和密码,进入

查看 ganglia的监控

查看 nagios 的监控

 

 

 

测试

安装完成后,看着这些都正常了,是否需要自己验证一下呢? 不过基本跑了冒烟测试后,正常的话,基本还是正常的,但是我们自己也得来操作下吧.

验证HDFS

验证Map/Reduce

验证HBase

验证Hive

 

总结

到这里,相关的 hadoop 及 hbase 及hive 的相关配置就都配置完成了,接下来需要做一些压力测试.还有其他方面的测试, 对于Ambari带的是 HortonWorks 打包的rpm版本的 Hadoop相关的源码,所以这里可能会和其他的版本有一些不同,但是作为开发环境来说,暂时还是没有很多大的影响的,但是现在还没有在生产上使用, 所以也不管说如何的稳定,接下来我会在开发项目的过程中,将所遇到的Bug给列出来. 总体来说Ambari还是很值得使用的,毕竟能够减少很多不必要的配置时间,而且相对在单机环境下, 在集群环境下更能贴近生产做一些相关的性能测试和调优测试等等,而且配置的ganglia和nagios的监控也能够发布的让我们查看到集群相关的数据,总体来说还是推荐使用的,新东西有Bug是在所难免的,但是在用的过程中我们会不断的完善. 接下来如果有时间,会对Ambariserver的功能进行扩展,添加诸如redis/nginx之类的常用的高性能模块的监控选项. 这个有时间在弄了. 总之,欢迎使用Ambari. 

 

//update:

最近遇到Ambari的一些问题:

1.在自定义里面开启了 append选项后,还是依旧无法append.

原文:http://www.cnblogs.com/scotoma/archive/2013/05/18/3085248.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26016.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

未来计算机带给自动化的机遇,数字化变革催生机遇 自动化已然“原力觉醒”...

原标题:数字化变革催生机遇 自动化已然“原力觉醒” 自动化兼具计算机速度与人工智能 计算机快速、精确,但缺乏智能。人工速度慢、不稳定,但足智多谋。自动化则以最简单的方式将计算机的速度与人工智能相结合,将手动流程转变为无需…

热烈庆祝祖国成立70周年,2019国庆档大片《我和我的祖国》、《攀登者》、《中国机长》数据分析

今年的国庆有大阅兵,也有情怀大片着实很不一般,今年我的国庆节是在医院里面度过的,不过我没有错过这举国欢庆的大阅兵仪式,还记得那一天早上好多老人、病号都齐刷刷地站在大厅注目着硕大的显示屏中的阅兵典礼,非常庄严…

代码规范指南:怎样写才能干净整洁

选自 Medium 作者:Chris Blakely 机器之心编译 能把代码写出来是一回事,但是写出整洁、可读的代码又是另一回事。然而,什么是「干净的代码」呢?怎么才能写出「干净的代码」?为了解答这些问题,本文作者写了一…

58全站用户行为数据仓库建设及实践

背景 随着58业务体系的不断建设与发展,数据分析与应用需求越来越丰富,给数据仓库的建设工作带来了很大的挑战。 全站行为数据仓库建设过程中,我们总结的问题包括如下几点: (1) 数据体系架构已经无法支持业务的快速迭代&#xff0c…

CSDN每日打卡已经2周,进展如何?(送两个CSDN背包)

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家 & 总榜前十🏆、HDZ核心组成员。欢迎点赞、收藏、评论 🍅 粉丝专属福利:知识体系、面试题库、技术互助、简历模板。文末公众号领取 点赞评论 …

哈利路亚

2019独角兽企业重金招聘Python工程师标准>>> 产品规划、产品设计、产品开发、数据分析、数据挖掘、数据开发 转载于:https://my.oschina.net/u/818486/blog/185941

php钓鱼怎么使用方法,路亚钓法操作步骤及抛投技巧

路亚操作的五个基本步骤 虽然按照拟饵的钓法可以横跨淡水钓与海水钓二大系统,而且拟饵的种类达十大类几千种之多,但是,要如何才能玩好拟饵钓法,主要的操竿技巧则有五点,即为:“抽”、“摆”、“旋”、“快”…

AI扮演Linux虚拟机,能管理文件编程开浏览器,还能跟自己「套娃」聊天 | ChatGPT新玩法...

詹士 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT能运行docker了? 还可以自己连接到OpenAI网站,查查自己? 被玩出花的OpenAI聊天AI ChatGPT,又被整出新活了。 如上技能是一位DeepMind研究者Jonas Degrave的最新发现。 刚发出来几小…

chatgpt赋能python:Python作画:如何使用Python创建美丽而独特的艺术作品

Python作画:如何使用Python创建美丽而独特的艺术作品 介绍 Python被认为是一种多用途编程语言,可用于开发各种应用程序,包括软件工具、游戏、Web应用程序、机器学习算法和数据分析。但你也可能没有意识到,Python还可以被用于造美…

Stable Diffusion高阶技能(1)-掌握这些,你也能绘出惊艳画作

开篇 初踏入AI作画的世界,你可能会对如何制造出惊艳的艺术作品而困惑。作为一个前沿技术的探索者,我在这一篇文章中,会和你一同揭秘如何用正确的提示词操控AI的“透视”,将最美的画面展现在你眼前。 技能一、提高图片质量的高阶手法 在数量众多的元素中,我们如何做出最…

【益智游戏】开锁小游戏+ChatGPT写html代码

跟军哥吃饭聊天,说到一些个有意思的思维题目,说是小学五年级的题目,我竟然想了好久,问的GPT才恍然大悟!哈哈,记录下,顺便给小孩讲讲 在网页上玩一玩! 游戏规则: 密码锁有…

Python量化交易实战教程汇总

完整版视频教程 你将收获 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 教给你量化交易的投资思想 编程技术 核心量化策略 交易系统开发 讲师经验分享 成为一个“技术流”理财高手 结合chatgpt提问快速掌握Python量化交易实战 快速提问提高学习效率 适…

Android 微信登录 无法调起授权页面

如果你什么都比对了,有问题,只有一个原因 签名不匹配, 工具地址 微信开放文档 去微信 官方下载签名工具,然后按到手机上,然后在你工程的包名 粘贴一下子,发到手机上,然后用微信那个工具 放包名,获取你的签名,然后去微信官方换一下,然后等一会就好了.\ 如果这个还不行, and…

老杨说运维 | 运维数智化转型正确打开方式是什么?他这样说

2023年5月9日,中国计算机用户协会信息科技审计分会会员大会暨金融科技风险管理与审计论坛成功于北京召开。擎创科技CEO杨辰受邀与会,并分享了在数智运维发展过程中对企业数智化转型建设的规划思考以及相关实践经验。 同时,年会上举行了“金融…

【[ChatGPT] 从 GPT-3.5 到 GPT-5 的进阶历程 |带你全面详细的了解与学习】

目录 一、简介背景介绍OpenAi的前世今生Ai概述GTP的出现 二、chatGPT的进阶之路chatGPT版本的区别A. 模型规模的比较B. 语言理解能力的比较C. 训练数据集的比较D. 应用场景的比较 三、GTP-4到GTP-5的过渡GTP5的发展之路 四、深度学习的愿景GTP-5能否取代程序员?深度…

亚马逊运营知识:ASIN文案编写技巧

ASIN页面是买家了解商品的重要渠道,对转化率的影响很大,它包括了图片、价格、评论、文案等。那么ASIN文案怎么编辑呢?下面海熹跨境人才网给大家分享亚马逊运营人才ASIN文案编写技巧。一起来了解一下吧。 一、确认主要关键词列表 首先,我们需…

文案优化技巧,批量文案改写工具

在当今竞争激烈的市场中,一篇优秀的文案可以吸引更多的潜在客户,提高转化率,带来更多的收益。然而,写出优秀的文案有时是一项具有挑战性的任务。许多人不得不花费大量的时间和精力来编辑和重写它们,这不仅耗时费力&…

亚马逊listing文案这样写,排名更靠前-跨境知道

前文有提到文案撰写的原则以及原则的实战案例。但具体的工作是复杂的,当原则之间发生冲突应当如何平衡呢? 我们再来看个案例。 产品链接:https://www.amazon.com/dp/B09C5RG6KV 产品图片: 图片来源:公众号&#xff…

chatgpt赋能python:Python下包的完整指南:从安装到使用

Python下包的完整指南:从安装到使用 作为一名有10年Python编程经验的工程师,我深刻认识到包管理是Python编程不可或缺的重要部分。本篇文章将为你提供详细的Python下包指南。从本地安装到使用,在这里,你将找到你需要的一切。 什…

chatgpt赋能python:Python中断运行:如何优雅处理运行中的错误?

Python 中断运行:如何优雅处理运行中的错误? Python是一种功能丰富的脚本语言,用于开发全球范围内的多个应用程序。虽然Python是一种面向对象的语言,但即使具有经验的程序员也会遇到中断运行的情况。这可能是由于语法错误&#x…