1、Hadoop是什么
Hadoop是一个开源的分布式计算平台。
HDFS 和MapReduce是Hadoop的两大核心,整个Hadoop的体系结构主要是通过 HDFS来实现对分布式存储的底层支持的,并通过MapReduce来实现对分布式并行任务处理的程序支持。
2、为什么要用Hadoop?
1)高效地存储和管理数据
2)处理问题时,采用分布式存储方式(HDFS:hadoop distribution file system),提高了读写速度,并扩大了存储容量.
3)还采用存储冗余数据的方式保证数据的安全性。
3、Hadoop工作原理?
HDFS:采用主从结构模型。
一个HDFS集群有一个NameNode和若干个DataNode组成:其中NameNode为主,管理文件系统命名和文件的访问操作,DataNode为从,管理存储的数据。
MapReduce:一种并行编程模式,使用者可以基于该模式情动写出分布式并行程序。
由一个单独运行的主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上,由主节点监控任务的执行情况,并重新执行之前失败的任务;从节点负责执行主节点指派的任务。
4、Hadoop的数据管理?
包含分布式文件系统HDFS, 分布式数据库Hbase和数据仓库工具Hive的数据管理。
HDFS对数据的管理:
1)文件写入:client向NameNode发起文件写入请求---->NameNode根据文件大小和配置,返回DataNode信息---->Client把文件划分为多个Block,根据DataNode地址信息,按顺序写入到DataNode;
2)文件读取:client向NameNode发起文件读取请求---->NameNode根据文件存储返回DataNode信息---->Client读取文件信息;
3)文件块(Block)复制:NameNode发现不符合复制要求的Block或者存在DataNode失效---->通知DataNode相互复制Block---->DataNode开始直接相互复制;
PS: HDFS一个文件块有3个备份,一个放在NameNode指定的DataNode上,一个放在与指定DataNode不在同一台机器的DataNode上,还有一个放在与指定DataNode在通以Rack的DataNode上。一方面可以解决通以Rack失败的情况,另一方面可以解决不同Rack之间的数据拷贝提升性能。