HDFS datanode 文件块下载?
最近有幸参与了个项目,可以说对目前的需求来说使用hadoop不是必须的,使用hadoop也没太多经验,也是为了技术而技术吧,先研究研究对以后打下基础。目前设计使用hadoop hdfs文件分布式存储文件,每个文件1G的大小,
因为HDFS 文件分布式需要网络传输带宽的,HDFS文件系统部署在局域网作为大文件分布式存储,文件是以块的形式
存储在不同的Datanode之上。但是我们系统之间的通信和文件的读取是需要经过internet 外网的。对于这样想使用这样的设计:
通过net UDP或者TCP的方式,从HDFS读取文件下载,下载策略是创建多个线程去对HDFS文件系统存储分布在不同datanode的block分布进行下载,
然后对所下载完成的block进行合并成最终的文件。
目前不知道如何使用HDFS提供的FileSystem API指定一个数据块block读取,大家认为这样是否可行,希望给些建议谢谢!! 挺好的设计,不过是否有计算过本地的带宽是否足够,应用一起来,不仅仅是一个文件就会把带宽打满,多个文件同时下载更是常事,而且带宽可能是饱和状态,所以并行下载block的利用率并没有起来。
举例:你的本机带宽上限120m/s(前兆网卡),你并行拉去10个block,每个block的拉取速度打比方有30-60m,至少你本机要有300m的带宽才能跑,否则以平摊就是每个block只有12m的带宽利用。这个速度只能说比原来直接下载快了2-3倍,但一旦你有2-3个文件同时下载,你的速度就跟并行拉去block是一模一样的速度。你自己估算下,文件下载并发率是否达到这个值了吗? 请问一下,您的远程下载是什么意思呢吗?不太明白您的系统之间的通信指的是什么,是从一个远程的集群上下载数据,还是说你所有的datanode根本就不是在一个局域网下,你的datanode是通过Internet相互通信的吗? 回复 3# liwenhoho
你不是要通过并行下载block的方式下载HDFS么吗?你的下载机应该是web server吧,直接与外网通,你的下载机与内网的Hadoop集群应该是通的对吧吗? 回复 2# alexanderdai
非常感谢版主您的热情帮助,文件下载并发需要进行排队,一次处理一个文件,在本机的带宽上限1G/s。 另外想请教版主根据您的经验给我说说以下:
1.对于上面讨论的设计您有怎样的建议或者有更好的方法来处理此,对internet上的分布式大文件传输吗?
2.另外想请教您,使用hadoopJobTracker/namenode 单点故障的解决方案吗? 回复 3# liwenhoho
就是hadoop部署在内网,经过外网下载Hadoop HDFS文件。
images/smilies/default/victory.gif
哦,那就比较清楚了,我也没啥好的建议给你了,因为版主说的很好了。 回复 7# liwenhoho
呵 ,大家一起学习! 可以加群 102044174 回复 2# alexanderdai
版主QQ在线吗吗?想请教几个小 在
页:
[1]