Hadoop小结

来源:互联网 发布:sqlserver已停止 编辑:程序博客网 时间:2024/06/06 02:10

1、Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。

 

2、Hadoop框架中最核心设计就是:HDFS和MapReduce.

HDFS:Hadoop Distributed File System,Hadoop的分布式文件系统,提供了海量数据的存储,大文件被分成默认64M一块的数据块分布存储在集群机器中。

MapReduce:Hadoop为每一个input split创建一个task调用Map计算,在此task中依次处理此split中的一个个记录(record),map会将结果以key--value的形式输出,hadoop负责按key值将map的输出整理后作为Reduce的输入,Reduce Task的输出为整个job的输出,保存在HDFS上,提供了对数据的计算。

 

3、Hadoop的集群主要由 NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker组成。

NameNode中记录了文件是如何被拆分成block以及这些block都存储到了那些DateNode节点。

NameNode同时保存了文件系统运行的状态信息。

DataNode中存储的是被拆分的blocks。

Secondary NameNode帮助NameNode收集文件系统运行的状态信息。

JobTracker当有任务提交到Hadoop集群的时候负责Job的运行,负责调度多个TaskTracker。

TaskTracker负责某一个map或者reduce任务。

 

4、Hadoop是一个能够让用户轻松架构和使用的分布式计算平台,主要有以下优点:

1)高可靠性;2)高扩展性;3)高效性;4)高容错性;5)低成本。

 

5、Hadoop相关主要工具:

1)Hadoop:Apache的Hadoop项目已几乎与大数据划上了等号。它不断壮大起来,已成为一个完整的生态系统,众多开源工具面向高度扩展的分布式计算。

2)Ambari:作为Hadoop生态系统的一部分,这个Apache项目提供了基于Web的直观界面,可用于配置、管理和监控Hadoop集群。有些开发人员想把Ambari的功能整合到自己的应用程序当中,Ambari也为他们提供了充分利用REST(代表性状态传输协议)的API。

3)Avro:这个Apache项目提供了数据序列化系统,拥有丰富的数据结构和紧凑格式。模式用JSON来定义,它很容易与动态语言整合起来。

4)Hbase:hbase是为有数十亿行和数百万列的超大表设计的,这是一种分布式数据库,可以对大数据进行随机性的实时读取/写入访问。它有点类似谷歌的Bigtable,不过基于Hadoop和Hadoop分布式文件系统(HDFS)而建。

5)Hadoop分布式文件系统(HDFS):HDFS是面向Hadoop的文件系统,不过它也可以用作一种独立的分布式文件系统。它基于Java,具有容错性、高度扩展性和高度配置性。

6)MapReduce:作为Hadoop一个不可或缺的部分,MapReduce这种编程模型为处理大型分布式数据集提供了一种方法。它最初是由谷歌开发的,但现在也被本文介绍的另外几个大数据工具所使用,包括CouchDB、MongoDB和Riak。

原创粉丝点击