Hadoop学习笔记_初识Hadoop

Hadoop是适合大数据的分布式存储与计算平台,分布式存储即HDFS(Hadoop Distributed File System),计算平台即MapReduce。Hadoop是分布式存储数据,在存储过程中会有数据通过网路进行传输,会受到带宽等方面的限制,因此如果在小数据规模下使用Hadoop,很可能并不如当前的解决方法效率高,因此Hadoop适合大数据的规模。

当前额Hadoop存在各种版本,Apache,Cloudera,Yahoo等都有相关版本,在后续的学习过程中,均使用Apache版本1.1.2。

Hadoop的两大核心组成:HDFS和MapReduce。HDFS是分布式文件系统,用来存储文件,MapReduce是计算框架,通过并行计算来提高计算效率,MapReduce读取HDFS中数据进行计算,计算结果再保存到HDFS中。

HDFS是主从式架构,主节点只有一个,即NameNode,从节点可以有很多个,即多个DataNode。主节点namenode负责接收用户的操作请求,HDFS是分布式文件系统,用户可以在HDFS上创建文件夹,移动删除文件,上传文件等等,这一系列的操作请求都由NameNode进行接收。namenode还可以维护文件系统的目录结构,并且管理文件与block块之间的关系,block与datanode之间的关系。在HDFS中存储文件是以block块为单位的进行存储的,那么一个文件如果分成若干块,那么当我们需要读取这个文件时,我们又怎么知道这些快之间的顺序呢?所以datanode就在为我们记录着这些block块与文件之间的关系。从节点datanode负责存储文件,一个很大的文件被分成若干block块存储,这些block块就存储在datanode上,所以datanode上存储文件分成的block块在磁盘上,并且为了保证数据的安全性,通常文件会有很多个副本,即拷贝很多个文件备份来防止文件丢失。这就是主从式的HDFS。

MapReduce也是主从式架构,和HDFS一样,只有一个主节点,即JobTracker,同时有很多个从节点,即TaskTracker。与HDFS类似,主节点JobTracker接收用户提交的计算任务,并且把计算任务分配给TaskTracker去执行,同时监控TaskTracker的执行情况。而TaskTracker负责执行TaskTracker分配的计算任务。JobTracker和TaskTracker就相当于我们软件开发过程中的项目经理和程序员的关系,项目经理就相当于JobTracker,负责和用户商谈需求分析,将用户的需求收集起来,并且把任务分配给程序员去实现。而程序员就是TaskTracker,去完成JobTracker分配的任务,同时JobTracker(项目经理)会监控TaskTracker(程序员)的执行情况,当TaskTracker(程序员)完成一项任务时,以便及时的收回任务并分配新的任务。

下面来介绍Hadoop特点:1.扩容能力强。能够可靠地存储和处理PB级别数据。2.成本低。Hadoop通过分布式集群来处理数据,对于服务器集群中的机器要求不高,而且服务器集群的数量可以达到上千台,一般的计算机小型机即可,所以成本是很低的。3.高效率,Hadoop的高效率是通过分布式计算来体现的,在多个节点上并行的进行计算使得处理速度非常快。4.可靠性。Hadoop的存储过程中,会产生很多副本,这就保证了数据的安全性。并且Hadoop能够自动的维护这些副本,在任务失败后能够自动的重新部署计算任务。

无论是HDFS还是MapReduce中,主节点和从节点多的物理机器是没有什么区别的。之所以区分开朱从节点,是通过该机器上运行的进程来区分,如果在运行JobTracker和NameNode进程,那么这个机器就是主节点,反之如果运行的DataNode和TaskTracker,那么这个机器就是从节点。Hadoop的执行就是一个个的Java进程在执行。

猜你喜欢

转载自alex-lip.iteye.com/blog/2101521