hadoop图解

[size=medium]公司云梯的图解:
gateway机器是跳板机,提交job到云梯的,在gateway机器上只要配置hadoop-site.xml即可,配置文件中主要是指定jobtracker的地址和hdfs的地址。

[img]http://dl.iteye.com/upload/attachment/0070/1023/2e38e255-16b1-3224-ad12-c2d6ebecaa5b.png[/img]

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的架构图:
[img]http://dl.iteye.com/upload/attachment/0070/1030/4844ee07-57a9-3df8-8b58-91d31ee930f6.png[/img]

namenode主要是维护文件系统的树结构以及树内文件的目录、地址等信息,它负责管理datanode和数据的读写。它一般会由一个second namenode机器来防止单点故障。

hdfs读取数据:
[img]http://dl.iteye.com/upload/attachment/0070/1035/bc316e07-e922-301b-9fc0-3c77d2fca7e7.png[/img]
dfs客户端先建立hdfs文件系统的连接,然后从namenode中获取对应data的地址等信息,然后通过inputFormat方法去切割和读取datanode中的文件,这样就完成了数据的读取。

hdfs写入数据:
[img]http://dl.iteye.com/upload/attachment/0070/1037/77648bba-1cbb-3786-9220-04c8469f9568.png[/img]
dfs客户端首先建立hdfs文件系统的连接,然后通过create方法告知它要创建一个文件,然后namenode开始创建一个文件名称,通过hdfs的写入流类进行对datanode数据的写入,它的写入是以包的形式写入的,然后每次写入会有一个ack的包确认信号返回,也就是途中datanode中的两个相互箭头的表示。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值