随着大数据的越发流行,大大小小的互联网公司都开始参与一些大数据相关的业务,都想从中分一杯羹。Hadoop是大数据的典型代表,也可以说现在的领头大哥,很多互联网巨头都在使用hadoop,包括BAT等大公司。但是由于hadoop对于管理维护的人员要求比较高,企业需要对其投入大量的人力、财力。这里介绍个工具ambari,是apache开源社区的顶级子项目,由hortonworks公司开发维护的,并作为apache的一个子项目,hortonworks公司可以说是apache的新贵公司,实力相当雄厚。ambari主要功能是通过web端界面提供UI来实现hadoop及生态工具的自动化安装、配置、监控、报警功能于一体的工具。可以通过web界面点击鼠标来部署维护hadoop集群,可以大量减轻运维人员的劳动量。

其实关于ambari工具我也只是了解个皮毛,大概知道它的功能和简单系统结构。接触ambari也纯属偶然,公司最近需要做大数据方面的产品,想做一个类似ambari的工具,但是ambari工具的界面不是特别友好,架构也有点复杂,我们公司期望做一个可视化友好的,简单的,类似ambari的工具。所以最近开始研究这个ambari工具,大都是英文资料,研究起来也是很费力的。

前几天初次研究ambari系统的时候,也尝试安装ambari工具。安装方式主要2种:公共源安装和源码编译安装。初次使用源码安装,ambari-server大部分似乎是使用java编写的,编译工具是maven,之前没用过,尝试编译,中间遇到过很多次错误,编译安装过程中需要下载很多依赖的包,如果网络不好的话,安装过程中会中断,我记得试着安装了好几次,他妹的都被龟速的网络给卡住,实在没心情搞源码编译了,就放弃了。结果去采用yum方式来安装ambari,本想着这种方式肯定是万无一失,于是乎按照ambari官方文档进行了安装,配置ambari源,安装server,ambari-server setup设置server的环境和数据库等,设置完毕,开启server。在浏览器172.16.1.27:8080打开,顺利打开。按照向导开始部署hadoop测试集群,设定stack名称,填写主机列表,配置server的ssh私钥,开始安装ambari-agent(ambari-server自动会向各主机列表执行安装命令),第一步就报错,大概意思是yum安装ambari-agent失败,原因是找不到ambari-agent源。于是自己手动去搜索ambari-agent软件包,也没有搜素到,至于ambari-server等一些列的包,就是没有ambari-agent,当时这个问题困扰了我好长时间,也没有查出什么原因;前天又开始搞一下ambari,想大概看一下源码,就无意间看了下官方的一些文档,妹的,文档也藏得这么神秘,嵌套了好几层的目录。文档中只说明支持64系统,并没有说支持32bit的。后来又尝试了64bit的centos6.4系统,似乎可以了,以前的问题没有了,继续尝试安装hadoop集群,到最后安装hadoop的各个服务组件时候,需要向互联网源去下载hadoop的相关安装包,yum源是hortonworks官方的,速度可以说是很操蛋,需要下载的包还很多,很大。尝试过N次,最后都因为网络中断超时导致安装失败。最后又拿出了杀手锏,想自己搭建一个yum源服务器,让测试主机从内网的yum服务器去下载,这样应该可以了吧。于是乎去虚拟机上又搭建了个服务器,采用http方式的,步骤比较简单,搭建http服务器,简单配置,把下载到的rpm包放到相关目录,再执行createrepo命令,似乎是这个命令来生成repo的相关格式数据,即可从web浏览器上查看到相关安装包。于是就不再说了,成功安装,但是中间有点问题,可能是虚拟机本身内存太小,安装过程中有警告信息,没有理会,安装完毕后,有一个host经常会挂掉,应该是虚机内存问题,至少反映了ambari工具的功能还是比较强悍的,显示出来的dashboard也比较漂亮,要是能显示中文就更好了。

其中的一些技术细节先不记录了,下次有时间总结一下ambari的安装过程,包括建立yum本地源的过程。

Ambari工具之认识学习01的更多相关文章

  1. Android Testing学习01 介绍 测试测什么 测试的类型

    Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...

  2. Java学习01

    Java学习01 第一章 1.JRE与JDK JDK(JAVA Develop Kit,JAVA开发工具包)提供了Java的开发环境和运行环境,主要用于开发JAVA程序,面向Java程序的开发者; J ...

  3. Redis学习01——介绍与搭建环境

    Redis学习01介绍与搭建环境一简介二yum配置已经配置了的可以跳过三安装gcc四安装redis1 上传Redis到linux中2 解压到usrlocal下3 编译redis4 安装redis5 拷 ...

  4. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  5. Java虚拟机JVM学习01 流程概述

    Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...

  6. ThinkPhp学习01

    原文:ThinkPhp学习01 一.ThinkPHP的介绍           MVC  M - Model 模型                工作:负责数据的操作  V - View  视图(模板 ...

  7. 【iScroll源码学习01】准备阶段 - 叶小钗

    [iScroll源码学习01]准备阶段 - 叶小钗 时间 2013-12-29 18:41:00 博客园-原创精华区 原文  http://www.cnblogs.com/yexiaochai/p/3 ...

  8. JVM学习01:内存结构

    JVM学习01:内存结构 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 内存结构知识要点Xmind梳理 案例分析 分析1 package com.h ...

  9. webservice学习01:wsdl文档结构

    webservice学习01:wsdl文档结构 wsdl文档结构 WSDL文档示例 <wsdl:definitions xmlns:xsd="http://www.w3.org/200 ...

随机推荐

  1. javascript--Object

    概述 (1)定义 对象(object)是JavaScript的核心概念,也是最重要的数据类型.JavaScript的所有数据都可以被视为对象. 简单说,所谓对象,就是一种无序的数据集合,由若干个&qu ...

  2. 引用计数 vs. GC

    内存管理问题 内存管理是编程过程中的一个经典问题,早期在 C 语言时代,几乎都靠 malloc/free 手动管理内存.随着各个平台的发展,到现在被广泛采用的主要有两个方法: 引用计数 (ARC,Au ...

  3. 2015 - 准备读书List

    时刻提醒自己,不进步意味着倒退. 2015年准备读完的技术书籍: 1. <Redis设计与实现>

  4. C# Winform反序列化复杂json字符串

    最近接的私单是一个CS项目,里面所有的操作都是通过调用API接口来进行的. 接口详细说明 协议:https  请求方式:post  https://xx.xxx.net/app/clients 提交j ...

  5. Struts2框架的自定义类型转换器

    前言:对于java的基本数据类型及一些系统类(如Date类.集合类),Struts2提供了内置类型转换功能,但是也有一定的限制.所以就演示出自定义类型转换器 一.应用于局部类型转换器 eg.用户登录出 ...

  6. Struts2与Struts的区别

    Struts2与Struts的区别 从Struts2的发展过程来看,Struts2继承了Struts与WebWork的血脉,Struts2取两者之精华,形成新德框架,但是struts2还是更多的继承了 ...

  7. Spring IoC源码解读——谈谈bean的几种状态

    阅读Spring IoC部分源码有一段时间了,经过不断的单步调试和参阅资料,对Spring容器中bean管理有了一定的了解.这里从bean的几个状态的角度出发,研究下IoC容器. 一.原材料 Xml中 ...

  8. Hexo - 快速,轻量,强大的 Node.js 博客框架

    Hexo 是一个快速,轻量,强大的 Node.js 博客框架.带给你难以置信的编译速度,瞬间生成静态文件:支持 Markdown,甚至可以在 Hexo 中集合 Octopress 插件:只需要一个命令 ...

  9. React入门--------顶层API

    React.createClass 参数:config(object) 创建一个ReactClass(组件类),参数是一个对象且必须带有render属性方法,该方法必须返回一个封闭的容器(容器内可以由 ...

  10. hibernate 入门([数据访问中间件] 开源框架)

    1.内容:  hibernate 也是一个经典的[数据访问中间件] 开源框架.    2.hibernate核心组件       SessionFactory[整个数据的操作]重量级组件       ...