我爱编程

hadoop图解

2018-05-15  本文已影响0人  Yobhel

gateway机器是跳板机,提交job到云梯的,在gateway机器上只要配置hadoop-site.xml即可,配置文件中主要是指定jobtracker的地址和hdfs的地址。


ouz43i40hj.png

gateway机器(相当于job client)提交job和对应的jar包到jobtracker机器上,jobtracker会对提交的作业进行相应的校验,校验通过就初始化这个job,然后jobtracker把对应的job放入调度队列,同时taskTracker会不停的发送心跳信号给jobtracker,如果taskTracker空闲,那么jobtracker会根据调度策略把它分给相应的taskTracker,然后taskTracker就启动一个jvm进程来处理。然后一般taskTracker启动的选择都和datanode的距离有关,一般是先考虑同一服务器的机器,其次是同一机架的,主要是为了减少网络的开销(因为不在同一服务器上的话,还要dataNode的数据传输就需要网路)。

然后taskTracker在跑mapreduce的时候,会请求namenode,由它来告知datanode一系列的信息,比如存储地址,大小等信息。

hdfs的架构图:

qdn63b6l6f.png

hdfs读取数据:

19t048juc5.png

dfs客户端先建立hdfs文件系统的连接,然后从namenode中获取对应data的地址等信息,然后通过inputFormat方法去切割和读取datanode中的文件,这样就完成了数据的读取。 hdfs写入数据:

image

dfs客户端首先建立hdfs文件系统的连接,然后通过create方法告知它要创建一个文件,然后namenode开始创建一个文件名称,通过hdfs的写入流类进行对datanode数据的写入,它的写入是以包的形式写入的,然后每次写入会有一个ack的包确认信号返回,也就是途中datanode中的两个相互箭头的表示。

上一篇下一篇

猜你喜欢

热点阅读