天天看点

使用Ambari搭建Hadoop集群

Hadoop是一个开发和运行处理大规模数据的软件平台,是Apache的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心设计就是:MapReduce和HDFS。MapReduce提供了对数据的分布式计算,HDFS提供了海量数据的分布式存储。

在Hadoop家族中,收入了20多个用于计算、分析、存储、监控、管理等组件和工具,这些家族成员极大的丰富了Hadoop的各方面的功能。

下面简单的列举几个常见的组件:

Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。

Apache Hive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

Apache Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。

Apache HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

Apache Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

Apache Zookeeper: 是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务

Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。

Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身

Apache Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制

Apache Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。

Apache Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。

Apache Hama: 是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。

Apache Flume: 是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。

Apache Giraph: 是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。

Apache Oozie: 是一个工作流引擎服务器, 用于管理和协调运行在Hadoop平台上(HDFS、Pig和MapReduce)的任务。

Apache Crunch: 是基于Google的FlumeJava库编写的Java库,用于创建MapReduce程序。与Hive,Pig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库

Apache Whirr: 是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持Amazon EC2和Rackspace的服务。

Apache Bigtop: 是一个对Hadoop及其周边生态进行打包,分发和测试的工具。

Apache HCatalog: 是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。

Cloudera Hue: 是一个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。

Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目。目前最新的发布版本是 2.6.0。Ambari 是用来创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不仅是特指 Hadoop。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。

Ambari提供了对Hadoop更加方便快捷的管理功能,主要包含:

通过一步一步的安装向导简化了集群供应。

预先配置好关键的运维指标(metrics),可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。

支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。

通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。

用户界面非常直观,用户可以轻松有效地查看信息并控制集群。

在使用Ambari安装部署Hadoop时,需要对下载镜像源,配置本地环境。

主机: 

node-1 : 192.168.10.11 , 配置:2C8G-30G ,yum 镜像源,数据库, java环境

node-2 : 192.168.10.12, 配置:2C8G-30G ,java环境

node-2 : 192.168.10.12, 配置:2C8G-30G , java环境

软件包 Hadoop 软件镜像压缩包,Ambari镜像压缩包,版本2.6

1、在node-1上配置hadoop所有组件的yum源。安装httpd:

2、在官方下载镜像文件,此文件大概7G,可以使用p2p工具下载,其中包含两个repo文件和4个压缩包:

3、将对应的tar包解压到httpd的文件目录:

4、配置基础源,创建hadoop的repo文件,修改repo文件源路径:

启动httpd。

5、将本地源的repo配置拷贝到其它节点,并创建缓存:

在各个节点创建缓存:

1、各个节点安装java-1.8.0-openjdk:

2、解析主机名:

3、创建主机信任关系,主要是master节点到slave节点:

4、安装配置数据库:

1、在node-1上安装ambari-server,并启动配置向导:

提示: 如果安装配置用户时,出现如下报错: ERROR: Unexpected error 'getpwuid(): uid not found: 1001',可以查看ambari.repo文件的权限,修改为默认的root 644权限即可。

2、按照配置向导信息,配置用户,java_home:

3、到上面一步时,根据提示上传mysql的 jdbc驱动,并修改配置文件,指定jdbc驱动文件位置:

修改配置文件:

配置完成后继续,会出现如下提示:

4、出现上述提示时,根据信息导入数据库:

5、启动服务:

6、服务启动成功后,会监听8080端口,使用浏览器登录,账号密码admin/admin正常登录,则安装完成。

使用Ambari搭建Hadoop集群

使用ambari的web界面课完成对集群的所有管理操作,创建一个实例集群。

使用Ambari搭建Hadoop集群

选择本地源,移除不必要的版本:

使用Ambari搭建Hadoop集群

添加主机节点,上传id_rsa文件:

使用Ambari搭建Hadoop集群

安装成功后,会显示如下界面:

使用Ambari搭建Hadoop集群

选择需要安装的服务:

使用Ambari搭建Hadoop集群

根据需要选择服务配置:

使用Ambari搭建Hadoop集群

在后续的配置中,会提示配置账户密码,数据库等信息,根据提示配置即可。

使用Ambari搭建Hadoop集群

参考文档:

<a href="https://baike.baidu.com/item/Ambari">https://baike.baidu.com/item/Ambari</a>

<a href="https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin">https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin</a>

<a href="http://blog.fens.me/hadoop-family-roadmap/">http://blog.fens.me/hadoop-family-roadmap/</a>

 本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/2066561