对Hadoop分布式文件系统,我是这样理解不知道对不对,请高手帮我看看
Hadoop分布式文件系统有三种模式,单机模式,伪分布式,完全分布式,完全分布式是不是说和其他机器一起建立节点关系,分享资源,如A、B、C三台机器,建立了完全分布式,资源...
Hadoop分布式文件系统有三种模式,单机模式,伪分布式,完全分布式,完全分布式是不是说和其他机器一起建立节点关系,分享资源,如A 、B 、C 三台机器,建立了完全分布式,资源共享,三台机器构成了虚拟的文件系统,A 共享了一个文件file.txt,B共享了一个文件file1.txt,C共享了一个文件file2.txt,用户只需要登录到/serverroot目录下,就可以看到这三个文件;如果是这样,A\B\C分别共享了500G的资源,那serverroot目录下可以看到500*3的资源,而不需要远程到 每台机器上,是这样的吗?不怎么理解;不对的望辅导下;
展开
2个回答
展开全部
不对,应该说A、B、C是成为了一体,并不是共享。
文件可能存在A点,备份在B点;或者存在B点,备份在C点和A点各一份。
具体存在哪里,怎么存,备份在哪里都是hadoop自有的机制控制的,所以serverroot
目录下如果看到500G的资源,三台机器加起来估计得有(500*3)G的资源,算上备份。
文件可能存在A点,备份在B点;或者存在B点,备份在C点和A点各一份。
具体存在哪里,怎么存,备份在哪里都是hadoop自有的机制控制的,所以serverroot
目录下如果看到500G的资源,三台机器加起来估计得有(500*3)G的资源,算上备份。
追问
哦,那如果现在又有一个节点D进来,D是一个新的机器,D的本地上也没有file1\2\3这三个文件,但是D只要登录到serverroot目录下,就可以看到这三个文件,对吗?对于备份机制是不是由开发人员自定义的,听你说的备份在哪都是 hadoop自有的机制控制,这应该也可以由开发人员可控才是,是吗?谢谢你的回复~希望能得到你的帮助~
追答
你在D看到的是namenode给你看的目录,文件本身并不一定保存在D的本地。
hadoop有自己的机制分配资源,默认三个备份,第一份根据节点的资源随机,另两份一份在同一个集群内,一份在另一个集群,为了保证安全。原则是尽量保持平衡。
因为hadoop有自己的策略,所以他受欢迎,不用劳烦开发人员决定这个放在哪那个放在哪。调用的时候他也是有自己的策略,任务尽量分配给离拥有资源备份的节点近的节点。
展开全部
单机模式其实就是伪分布式,说白了就是在一台机器上安装一个hadoop,并且namenode和datanode等都在同一台机器上。
datanode也即数据节点,是用来存放数据的,namenode是用来管理每个datanode都存放了哪些数据(文件)。另外为了保证数据的安全性,你可以设置每个文件的副本数(不大于你的datanode数)
以你所说的ABC三台机器,每台1个datanode来说,如果你的文件副本数是3,那么实际上就是你在A上创建了一个文件,那么在b和c上都有一个该文件的副本。
至于在/serverroot查看文件,你可以看到该集群内的所有文件,而且文件大小也是文件的真实大小(不会因为你有3个副本,而乘以3)
datanode也即数据节点,是用来存放数据的,namenode是用来管理每个datanode都存放了哪些数据(文件)。另外为了保证数据的安全性,你可以设置每个文件的副本数(不大于你的datanode数)
以你所说的ABC三台机器,每台1个datanode来说,如果你的文件副本数是3,那么实际上就是你在A上创建了一个文件,那么在b和c上都有一个该文件的副本。
至于在/serverroot查看文件,你可以看到该集群内的所有文件,而且文件大小也是文件的真实大小(不会因为你有3个副本,而乘以3)
更多追问追答
追问
文件的副本数是由我自己定义的吧,我可以决定是否需要备份或者是需要在哪个地方备份吗?难道是所有集群的机器都备份有相同的文件?可以可控制的去备份和备份的数量吗?
追答
文件副本数可以自己调整,但是副本数不能大于datanode的数据量。因为副本都是存放在不同的datanode上的。
目前据我所知,副本放在哪个datanode上是由系统自动进行的,不能指定。
文件的副本数可以在上传时设置。后期去副本数,据我所知是不可以的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询