Hadoop学习,hadoop基本概念了解

项目中需要用到hadoop,恰好对数据处理特别感兴趣,所以就申请做hadoop相关的东西,现在还处于学习阶段。

hadoop是apache的一个项目,是一个能对BigFile、BigData进行分布式计算的框架,由Hadoop Common、HDFS、Hadoop MapReduce三个子项目构成,另外还有Avro、Pig等项目是和Hadoop相关的一些项目。

它有以下一些优点:
1) 可靠。因为它会为需要处理的数据创建多个副本,以应对数据计算或存储过程的失败,确保某些计算或存储结点发生问题时,能够重新处理。
2) 高效。hadoop是以并行的方式工作的,通过并行处理加快数据处理的速度。
3) 可伸缩的。能够处理PB级的数据。
此外,hadoop依赖集群运算,因此成本很低,任何人都可以用。
hadoop框架是用Java写的,所以很适合运行在Java平台上。但是支持python、C++、Java等语言的客户端调用。

Hadoop框架有很多模块构成,其底层是HDFS(Hadoop Distributed File System),它存储的是Hadoop计算书所有存储节点上的文件。HDFS上层是MapReduce引擎,该引擎由JobTracker上和TaskTracker上组成。


先看一些概念。
HDFS:是Hadoop应用的基本的分布式存储系统,一个HDFS集群包括一个管理文件系统内部元数据的namenode和若干个真实存储数据的DataNodes。
Namenode:是在hdfs实例中的单台机器上运行的,它负责管理文件系统名称空间和控制外部客户机的访问。Namenode决定是否将文件映射到DataNode上的复制块上。
DataNode:DataNode在HDFS中有若干个,它响应来自namenode的命令。同时dataNode会向namenode发送心跳,表示工作正常,namenode也可以根据心跳中的参数值验证块映射和其他文件系统的元数据。如果dataNode不发送心跳,NameNode认为该dataNode上的task运行不正常,需要运行副本块上的数据。
MapReduce:Map是把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。Map和Reduce操作分布在集群上运行,并把结果存储在HDFS上。


你可能感兴趣的:(hadoop)