Hadoop平台基本组成

1、Hadoop系统运行于一个由普通商用服务器组成的计算集群上,能提供大规模分布式数据存储资源的同时,也提供了大规模的并行化计算资源。

2、Hadoop生态系统

3、MapReduce并行计算框架

MapReduce并行计算框架是一个并行化程序执行系统。它提供了一个包含Map和Reduce两个阶段的并行处理模型和过程,提供了一个并行化编程模型和接口,让程序员可以方便快速地编写出大数据并行处理程序。MapReduce以键值对数据输入方式来处理数据,并能自动完成数据的划分和调度管理。

在程序执行时,MapReduce并行计算框架将负责调度和分配计算资源,划分和输入输出数据,调度程序的执行,监控程序的执行状态,并负责程序执行时各计算节点的同步以及中间结果的收集整理。MapReduce框架提供了一组完整的供程序员开发MapReduce应用程序的编程接口。

4、分布式文件系统HDFS

HDFS(Hadoop Distributed File System)是一个类似Google GFS的开源的分布式文件系统。它提供一个可扩展、高可靠、高可用的大规模数据分布式存储管理系统,基于物理上分布在各个数据存储节点的本地Linux系统的文件系统,为上层应用程序提供一个逻辑上成为整体的大规模数据存储文件系统。

与GFS类似,HDFS采用多副本(默认为3个副本)数据冗余存储机制,并提供了有效的数据出错检测和数据恢复机制,大大提高了数据存储的可靠性。

5、分布式数据库管理系统HBase

为了克服HDFS难以管理结构化/半结构化的海量数据的缺点,Hadoop提供了一个大规模分布式数据管理和查询系统HBase。

HBase是一个建立在HDFS之上的分布式数据库,它是一个分布式可扩展的NoSQL数据库,提供了对结构化、半结构化甚至非结构化大数据的实时读写和随机访问能力。HBase提供了基于行、列和时间戳的三维数据管理模型,HBase中每张表的记录数(行数)可以多达几十亿条甚至更多,每条记录可以拥有多达上百万的字段。

6、公共服务模块Common

Common是一套为整个Hadoop系统提供底层支撑服务和常用工具的类库和API编程接口,这些底层服务包括:

①Hadoop抽象文件系统FileSystem、

②远程过程调用RPC

③系统配置工具Configuration以及序列化机制

从0.20及以前的版本中,Common包含HDFS、MapReduce和其它公共项目内容

从0.21版本开始,HDFS和MapReduce被分离为独立的子项目,其余部分内容构成Hadoop Common

7、数据序列化系统Avro

Avro是一个数据序列化系统,用于将数据结构或数据对象转换陈成便于数据存储和网络传播的格式。Avro提供了丰富的数据结构类型,快速可压缩的二进制数据格式,存储持久性数据的文件集,远程调用RPC和简单动态语言集成等功能

8、分布式协调服务框架Zookeeper

①Zookeeper是一个分布式协调服务框架,主要用于解决分布式环境中的一致性问题。Zookeeper主要用于提供分布式应用中经常需要的系统可靠性维护、数据状态同步、统一命名服务、分布式应用配置项管理等功能.

②Zookeeper可用来在分布式环境下维护系统运行管理中的一些数据量不大的重要状态数据,并提供监测数据状态变化的机制,以次配合其他Hadoop子系统(如HBase,Hama)或用户开发的应用系统,解决分布式环境下系统可靠性管理和数据状态维护等问题。

9、分布式数据仓库处理工具Hive

①Hive是一个建立在hadoop之上的数据仓库,用于管理存储于HDFS或HBase中的结构化/半结构化数据。

②它最早由faceBook开发利用于处理并分析大量的用户及日志数据,2008年Facebook将其贡献给Apache成为Hadoop开源项目。

10、数据流处理工具Pig

①Pig是一个用来处理大规模数据集的平台,由Yahoo!贡献给Apache成为的开源项目。它简化了使用Hadoop进行数据分析处理的难度,提供了一个面向领域的高层抽象语言Pig Latin

②通过该语言程序员可以将复杂的数据分析任务实现为Pig操作的数据流脚本,这些脚本最终执行时将被系统自动转换为MapReduce任务链,在Hadoop上加以执行。Yahoo!有大量的MapReduce作业是通过Pig实现的

11、键值对数据库系统Cassandra

Cassandra是一套分布式的K-V型的数据库系统,最初由faceBook开发,用于存储邮箱等比较简单的格式化数据,后FaceBook将Cassandra贡献出来成为Hadoop开源项目

②Cassadra以Amazon专有的完全分布式Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型,提供了一套高度可扩展、最终一致、分布式的结构化键值存储系统。

12、日志数据处理系统Chukwa

Chukwa是一个由Yahoo!贡献的开源数据收集系统,主要用于日志的收集和数据的监控,并与MapReduce协同处理数据。Chukwa是一个基于Hadoop的大规模集群监控系统

继承了Hadoop系统的可靠性

13、科学计算基础工具库Hama

Hama是一个基于BSP并行计算模型(Bulk Synchronous Parallel,大同步并行模型)的计算框架,主要提供一套支撑框架和工具,支持大规模科学计算或者具有复杂数据关联性的图计算。

Hama类似Google公司开发的Pregel,Google利用Pregel来实现图遍历(BFS)、最短路径(SSSp)、PageRank等计算。

Hama可以与Hadoop的HDFS进行完美的整合,利用HDFS对需要运行的任务和数据进行持久化存储。由于BSP在并行化计算模型上的灵活性,Hama框架可在大规模科学计算和图计算方面得到较多的应用,完成矩阵计算、排序计算、PageRank、BFS等不同的大数据计算和处理任务、、

14、数据分析挖掘工具库Mahout

Mahout来源于Apache Lucene 子项目,其主要目标是创建并提供经典的机器学习和数据挖掘并行化算法类库,以便减轻需要使用这些算法进行数据分析挖掘的程序员的编程负担,不需要自己实现这些算法。Mahout现在已经包含了聚类、分类、推荐引擎、频繁项集挖掘等广泛使用的机器学习和数据挖掘算法。

②此外他还包含数据输入输出工具,以及与其他数据存储管理系统进行数据集成的工具和架构。

15、关系数据交换工具Sqoop

Sqoop是SQL-to-Hadoop的缩写,是一个在关系数据库与Hadoop平台进行快速批量数据交换的工具。

②他可以将一个关系数据库中的数据批量导入Hadoop的HDFS、HBese、Hive中,也可以反过来讲Hadoop平台中的数据批量导入关系数据库中。

③Sqoop充分利用了Hadoop MapReduce的并行化优点,整个数据交换过程基于MapReduce实现并行化的快速处理。

16/ 日志数据收集工具Flume

Flume是由Cloudera开发维护的一个分布式、高可靠。高可用、适合复杂环境下大规模日志数据采集的系统。他将数据从产生、传输、处理、输出的过程抽象为数据流。并允许在数据源中定义数据发送方,从而支持收集于各种不同传输协议的数据,并提供了对日志数据进行简单的数据过滤、格式转换等处理能力。输出时,Flume可支持将日志数据写往用户定制的输出目标

开始搭建hadoop,搭建hadpoo-1.1.2

1、下载hadoop-1.1.2

# wget http://apache.mirrors.hoobly.com/hadoop/common/hadoop-1.1.2/hadoop-1.1.2.tar.gz

2、新建 linux 终端,建立app目录,Hadoop都将安装在此目录中。

# mkdir   /app

3、接下来,安装Hadoop,Hadoop解压即可。

# mv hadoop-1.1.2.tar.gz  /app      将下载的压缩文件移动到app文件中

# cd  /app

# tar -zxf  hadoop-1.1.2.tar.gz

4、安装JDK-7,在安装的过程中,我先更换了更新源,通过命令安装

# apt-get install openjdk-7-jdk

安装完后通过一个helloworld的例子测试了一下,结果可以。

5、 配置JDK和hadoop的环境变量

# vi  /etc/profile

在最后添加一下内容

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

export HADOOP_HOME=/app/hadoop-1.1.2

export PATH=$JAVA_HOME/bin: ${HADOOP_HOME}/bin:$PATH

export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:${HADOOP_HOME}/conf

6、 配置hadoop,指定jdk安装路径

# cd  /app/hadoop-1.1.2

# vi   conf/hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

7、 修改Hadoop核心配置文件core-site.xml,这里配置的hadoop临时文件夹,HDFS的地址和端口号,设置心跳时间间隔

# vi conf/core-site.xml

hadoop.tmp.dir/app/hadoop_tmp

fs.default.namehdfs://master :9000

heartbeat.recheck.interval3

8、修改Hadoop中HDFS的配置,配置的备份方式默认为3,因为slaves数为2,所以需要改为2

vi conf/hdfs-site.xml

dfs.name.dir/root/dfs_name1,/root/dfs_name2
dfs.data.dir/root/dfs_data1,/root/dfs_data2
dfs.replication2

9、修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口

gedit conf/mapred-site.xml

mapred.job.trackermaster:9001
mapred.local.dir/root/mapred_local

9、修改 conf/masters 和conf/slaves文件

#vi  masters

master

#vi  slaves

slave1

slave2

10、然后,把配置好的hadoop文件打包扔到两个slave相同的目录下

scp -r /app/hadoop-1.1.2 slave1:/app/
scp -r /app/hadoop-1.1.2 slave2:/app/

11、接下来,启动Hadoop,在启动之前,需要格式化Hadoop的文件系统HDFS,进入Hadoop文件夹,输入下面命令

hadoop namenode -format

添加轻松启动项

gedit ~/.bashrc

加入

alias  starthadoop=‘/app/hadoop-1.1.2/bin/start-all.sh‘
alias  stophadoop=‘/app/hadoop-1.1.2/bin/stop-all.sh‘
alias  restarthadoop=‘stophadoop&&starthadoop‘

执行

source ~/.bashrc

然后启动Hadoop,输入命令

starthadoop

这个命令为所有服务全部启动。

最后,验证Hadoop是否安装成功。打开浏览器,分别输入一下网址:

http://master:50030    (MapReduce的Web页面)

http://master:50070    (HDfS的web页面)

原文地址:https://www.cnblogs.com/klb561/p/9043268.html

时间: 2024-10-14 03:58:38

Hadoop平台基本组成的相关文章

Hadoop平台搭建(1)

摘要:本文主要讲述在Linux环境下搭建hadoop平台的准备工作,内容涵盖Linux中用户的添加与权限管理.更改软件源.更新软件安装工具apt.安装vim编辑器.安装SSH并配置无密码登录. 环境说明:文章中采用Ubuntu15.10操作系统,Ubuntu其他版本操作系统的操作类似,Linux其他系列操作系统适当做相应调整. 1.添加用户 对Linux环境下的开发,为了安全起见,一般情况下不直接在root用户下进行.所以,我们首先添加一个新的用户名,并设置新用户密码. 命令:sudo user

Hadoop平台简述

Hadoop 是 Apache 下一个开源的分布式的软件计算框架,它是由Doug Cutting根据 Google提出的分布式文件系统 GFS 和 MapReduce 编程模型而实现的.Hadoop 由许多部分组成,其核心是用于数据存储的分布式文件系统HDFS与用于分布式计算的 MapReduce 编程模型.HDFS 用于 Hadoop 平台中所有数据文件的存储,采用 master/slave 架构,包含一个名字节点(NameNode)和若干个数据节点(DataNode).MapReduce 主

c#WEB转入大数据HADOOP平台的2014总结

浮浮沉沉的那是流水,起起落落的才是人生嘛. 抽根烟先--(各位同学都知道我不抽烟哈,这个,哈哈,思考人生的时候还是会抽根)刚刚和同学吃完饭从滨江路回来,我和他在一起一般都是谈谈自己的近况.我和他住得不远,上班离得很近,但是也不经常见面,但是需要对方的时候打个电话,总会在一个电话后及时出现在你的面前(搞得像基友一样,罪过,罪过).这个是必须的,我和他也算一种前世修来的缘份吧,认识马上快10年了,大学同学中,我是他在这里的唯一,他也是我在这里的唯一,也许这辈子剩下的时间还得走下去,生活中的坎坷我们互

关于如何挑选适合自己的Hadoop平台解析

Hadoop平台的多种选择  下图展示了Hadoop平台的多种选择.你可以只安装Apache 发布版本,或从不同提供商所提供的几个发行版本中选择一个,或决定使用某个大数据套件.每个发行版本都包含有Apache Hadoop,而几乎每个大数据套件都包含或使用了一个发行版本,理解这一点是很重要的. 下面我们首先从Apache Hadoop开始来好好看看每种选择. Apache Hadoop; Apache Hadoop项目的目前版本(2.0版)含有以下模块Hadoop通用模块:支持其他Hadoop模

论文学习 - 《Hadoop平台下的海量数据存储技术研究》

摘要 研究背景: 1. 互联网的图片数据急剧膨胀 2. Hadoop平台下的Hdfs分布式文件系统能够很好的处理海量数据 研究内容: 1. Hadoop平台工作原理 2. Hadoop平台下图片存储系统的设计与实现 3. Hadoop平台与Web的整合 创新点: 1. 通过Web方式来访问Hdfs 2. 存储性能测试自动化 第一章 绪论 Pass 第二章 Hadoop工作原理 本章可以参考对照Hadoop相关手册,不在此纠结. 第三章 Hadoop图片存储系统设计 模块划分: 1. 普通用户模块

高可用Hadoop平台-Ganglia安装部署

1.概述 最近,有朋友私密我,Hadoop有什么好的监控工具,其实,Hadoop的监控工具还是蛮多的.今天给大家分享一个老牌监控工具Ganglia,这个在企业用的也算是比较多的,Hadoop对它的兼容也很好,不过就是监控界面就不是很美观.下次给大家介绍另一款工具——Hue,这个界面官方称为Hadoop UI,界面美观,功能也比较丰富.今天,在这里主要给大家介绍Ganglia这款监控工具,介绍的内容主要包含如下: Ganglia背景 Ganglia安装部署.配置 Hadoop集群配置Ganglia

高可用Hadoop平台-启航

1.概述 在上篇博客中,我们搭建了<配置高可用Hadoop平台>,接下来我们就可以驾着Hadoop这艘巨轮在大数据的海洋中遨游了.工欲善其事,必先利其器.是的,没错:我们开发需要有开发工具(IDE):本篇文章,我打算讲解如何搭建和使用开发环境,以及编写和讲解WordCount这个例子,给即将在Hadoop的海洋驰骋的童鞋入个门.上次,我在<网站日志统计案例分析与实现>中说会将源码放到Github,后来,我考虑了下,决定将<高可用的Hadoop平台>做一个系列,后面基于这

高可用Hadoop平台-实战

1.概述 今天继续<高可用的Hadoop平台>系列,今天开始进行小规模的实战下,前面的准备工作完成后,基本用于统计数据的平台都拥有了,关于导出统计结果的文章留到后面赘述.今天要和大家分享的案例是一个基于电商网站的用户行为分析,这里分析的指标包含以下指标: 统计每日PV 每日注册用户 每日IP 跳出用户 其他指标可以参考上述4个指标进行拓展,下面我们开始今天的分析之旅. 2.流程 首先,在开发之前我们需要注意哪些问题?我们不能盲目的按照自己的意愿去开发项目,这样到头来得不到产品的认可,我们的工作

高可用Hadoop平台-Flume NG实战图解篇

1.概述 今天补充一篇关于Flume的博客,前面在讲解高可用的Hadoop平台的时候遗漏了这篇,本篇博客为大家讲述以下内容: Flume NG简述 单点Flume NG搭建.运行 高可用Flume NG搭建 Failover测试 截图预览 下面开始今天的博客介绍. 2.Flume NG简述 Flume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中.轻量,配置简单,适用于各种日志收集,并支持Failover和负载均衡.并且它拥有非常丰富的组件.Fl

Hadoop平台的基本组成与生态系统

Hadoop系统运行于一个由普通商用服务器组成的计算集群上,该服务器集群在提供大规模分布式数据存储资源的同时,也提供大规模的并行化计算资源. 在大数据处理软件系统上,随着Apache Hadoop系统开源化的发展,在最初包含HDFS.MapReduce.HBase等基本子系统的基础上,至今Hadoop平台已经演进为一个包含很多相关子系统的完整的大数据处理生态系统.图1-15展示了Hadoop平台的基本组成与生态系统. 1.MapReduce并行计算框架 MapReduce并行计算框架是一个并行化