Hadoop(HDFS)
HDFS:
1.定义: Hadoop分布式文件系统(HDFS)被设计成设计成适合运行在通用 硬件上的分布式文件系统;是根据谷歌发表的三篇论文之一:GFS(Google File System)文件系统
2.特点:
容错性保存多个副本,副本丢失或跌宕自动恢复,默认block3份
并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序,
HDFS默认会将文件分割block, (hadoop 1.x: 64M, hadoop 2.x: 128M)
3.节点:
主节点: NameNode (a.管理和维护HDFS b.接收客户端的请求 c.维护文件的元信息(fsimage)和日志(edits))
从节点:DateNode(保存数据)
SecondaryNameNode(进行日志信息合并)
JobTracker和 TaskTracker 是MapReducer执行而言
NameNode和DateNode是针对数据存放而言
JobTracker 对应于 NameNode
TaskTracker 对应于 DataNo
hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slave有多个SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。
1、JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker创建每一个Task(即MapTask和ReduceTask)并将它们分发到各个TaskTracker服务中去执行。
2、JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。
3、TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker都需要运行在HDFS的DataNode上。