Hadoop是一个用于分布式大数据处理的编程框架。同时它也是个大数据处理完整的生态系统,围绕着Hadoop,这个生态系统还包括但不限于:HBase、Hive、Pig、Spark、Zookeeper。Hadoop是一个适合大数据的分布式存储与计算平台。
一、HDFS(分布式文件系统)
1)主从结构:主节点 只有一个 namenode;从节点 有很多个 datanodes
2)namenode负责管理
接收用户操作请求,可以实现对文件系统的操作(一般的操作方式有两种:命令行方式和Java API方式);
维护文件系统的目录结构(用来对文件进行分类管理);
管理文件与block之间的关系(文件被划分成了block,block属于哪个文件,Block的顺序),block与datanode之间的关系。
3)datanode负责存储
存储文件;
文件被分成block(block一般是以64M来划分,但每个block块所占用的空间是文件实际的空间)存储在磁盘上,将大数据划分成相对较小的block块,这样可以充分利用磁盘空间,方便管理;
为保证数据安全,文件会有多个副本,这些副本会一块一块复制,分别存储在不同的DataNode上。
二、MapReduce(并行计算框架)
1)主从结构:主节点 只有一个 JobTracker;从节点 有很多个 TaskTracker
2)JobTracker
接收客户提交的计算任务;
把计算任务分给TaskTracker执行;
监控TaskTracker的执行情况。
3)TaskTracker
执行JobTracker分配的计算任务。
三、Hadoop的特点
1)扩容能力:能可靠地存储和处理千兆字节数据;
2)成本低:可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千节点;
3)高效率:通过分发数据,hadoop可以在数据所在的节点上并行地处理他们,这使得处理非常的快速;
4)可靠性:hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署计算任务。