首页 > 编程知识 正文

hadoop安装实验报告心得,hadoop工具生态

时间:2023-05-03 08:07:58 阅读:56964 作者:961

Hadoop概述

Hadoop(http://Hadoop.Apache.org/)是由Apachefoundationcouncil开发的分布式系统基础架构。

用户可以在不知道分布式基础细节的情况下开发分布式程序。 充分利用集群的威力进行高速运算和存储。

Hadoop实现了Hadoop分布式文件系统,简称HDFS。 HDFS具有容错能力,旨在部署到成本较低的硬件上。 它还提供了高吞吐量(high throughput )以访问APP应用程序中的数据,非常适合具有大数据集(large data set )的APP应用程序。 HDFS降低了对POSIX(relax )的要求,以便能够以流方式访问文件系统中的数据。

一,Hadoop生态系统Hadoop是一个可以分布式处理大量数据的软件框架。 具有良好的可靠性、效率和伸缩性。

Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。

下图是hadoop的生态系统:

图1 HADOOP生态系统

Apache Ambari

Ambari是一个基于Web的系统,用于监视和管理Hadoop群集。 当前支持HDFS、MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig和Sqoop等组件。 详情请参阅http://ambari.apache.org/

Apache Cassandra

Cassandra是分布式NoSQL数据库。 它基于多主模式,无单点故障,具有可扩展性。 它最初由Facebook开发,用于存储格式简单的数据(如收件箱),它是开源的,并用于知名网站,如Twitter。 详情请参阅http://cassandra.apache.org/

Apache Hive

Hive是一个数据仓库工具,它将结构化数据文件映射到数据库表,并提供查询语言HiveQL (如SQL )来管理数据。 详情请参阅http://hive.apache.org/

Apache Pig

Pig是一个基于Hadoop的大数据分析平台,提供一种名为PigLatin的高级语言来描述大数据分析程序。 详情请参阅http://pig.apache.org/

Apache Avro

Avro是一个数据序列化系统。 提供丰富的数据结构类型、快速读取可压缩的二进制数据格式、存储永久数据的文件容器和远程过程调用。 详情请参阅http://avro.apache.org/

Apache Chukwa

Chukwa是用于监视大规模分布式系统的数据收集系统。 它构建在Hadoop的HDFS和Map/Reduce框架之上,提供灵活、强大的工具集来监视、分析和显示数据。 为日志系统提供一系列解决方案。 详情请参阅http://chukwa.apache.org/

Apache Flume

Flume是一个可靠的分布式大容量日志收集、聚合和传输系统。 这来源于Cloudera开发的日志收集系统。 详情请参阅http://flume.apache.org/

Apache HBase

HBase是一个分布式的面向列的数据库。 它基于Hadoop提供了类似于BigTable的功能。 详情请参阅http://hbase.apache.org/

Apache Mahout

Mahout是机器学习领域的经典算法库,提供聚类、分类、推荐过滤、频繁子挖掘等。 详情请参阅http://mahout.apache.org/

Apache Oozie

Oozie是管理Hadoop作业的工作流调度系统。 通过将多个Map/Reduce作业合并到一个逻辑工作区中,可以实现指定的目标。 详情请参阅http://oozie.apache.org/

Apache Sqoop

Sqoop是Hadoop和关系数据库之间的数据迁移工具。 您可以将关系数据库中的数据导入到Hadoop的HDFS中,也可以将HDFS中的数据导入到关系数据库中

中。详细参见:http://sqoop.apache.org/

Apache ZooKeeper

ZooKeeper是一个针对大型分布式系统的可靠协调系统,提供包括配置维护,名字服务,分布式同步和组服务等功能。Hadoop的管理就是用的ZooKeeper。详细参见:http://zookeeper.apache.org/

二,Hadoop核心

1,HDFS(Hadoop分布式文件系统)

源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。

图2  HDFS文件管理系统

client:切分文件;访问HDFS;与NameNode交互,获取文件位置信息;与DataNode交互,读取和写入数据。

NameNode:Master节点,在hadoop1.X中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户端请求。

DataNode:Slave节点,存储实际的数据,汇报存储信息给NameNode。

Secondary NameNode:辅助NameNode,分担其工作量;定期合并fsimage和fsedits,推送给NameNode;紧急情况下,可辅助恢复NameNode,但Secondary NameNode并非NameNode的热备。

2,MapReduce分布式计算

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

MapReduce的经典案例是统计文章中单词出现的次数(WordCount),原理图如图3、图4:

图片3, WordCount统计词频示意图

图片4, WordCount统计一篇文章词频示意图

3,Yarn资源管理框架

 

 

图片5, Hadoop 1 作业调度机制

 

图片6, Hadoop 2 作业调度机制

4,Hadoop 常用组件

 

三,Hadoop经典论文(云盘下载)

谷歌三大核心技术(一)Google File System

谷歌三大核心技术(二)Google MapReduce

谷歌三大核心技术(三)Google_BigTable

四,Hadoop与云计算

云计算由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。

Hadoop是一种分布式系统基础架构,可以作为通用的云计算平台, 其中HDFS分布式文件系统存储海量数据, MapReduce实现分布式计算,YARN负责资源管理和调度等。


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。