hadoop相关介绍

      hadoop的组成是由hdfs,mapreduce和hbase组成。

       1.hdfs是google file system(GFS)的开源实现。HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的。这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。

       2.MapReduce是Google MapReduce的开源实现。主要使用了Map函数和Reduce函数。Map 函数接受一组数据并将其转换为一个键/值对列表,输入域中的每个元素对应一个键/值对。Reduce 函数接受 Map 函数生成的列表,然后根据它们的键(为每个键生成一个键/值对)缩小键/值对列表。

      3.Hbase是Google BigTable的开源实现。BigTable数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格,用来存储结构化的数据。

 

       Hadoop实现了HDFS文件系统和MapRecue。用户只要继承MapReduceBase,提供分别实现Map和Reduce的两个类,并注册Job即可自动分布式运行。

       HDFS把节点分成两类:NameNode和DataNode。NameNode是唯一的,程序与之通信,然后从DataNode上存取文件。这些操作是透明的,与普通的文件系统API没有区别。

       MapReduce则是JobTracker节点为主,分配工作以及负责和用户程序通信。

 
     HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算

       HDFS通信部分使用org.apache.hadoop.ipc,可以很快使用RPC.Server.start()构造一个节点,具体业务功能还需自己实现。针对HDFS的业务则为数据流的读写,NameNode/DataNode的通信等。

      MapReduce主要在org.apache.hadoop.mapred,实现提供的接口类,并完成节点通信(可以不是hadoop通信接口),就能进行MapReduce运算。

你可能感兴趣的:(hadoop介绍)