hadoop集群中动态增加新的DataNode节点,hadoopdatanode


集群中现有的计算能力不足,需要另外添加新的节点时,使用如下方法就能动态增加新的节点:

1、在新的节点上安装hadoop程序,一定要控制好版本,可以从集群上其他机器cp一份修改也行

2、把namenode的相关配置文件复制到该节点

3、修改masters和slavers文件,增加节点

4、设置ssh免密码登录该节点

5、单独启动该节点上的datanode和tasktracker守护进程,启动命令如下:

hadoop -daemon.sh start datanode\tasktracker

6、下次操作hdfs时,就可将数据写到该机器上,如果想使得节点间的负载均衡,可使用一下命令:

start-balancer.sh ,备注:负载均衡视集群规模大小耗时,如果正在运行较重的任务或者任务队列等待任务较多时不宜使用。

以上命令均在/hadoop/bin 目录下执行。


hadoop中节点(DataNode与NameNode)故障的处理

这部分资料我也懂得不多,我说一些我知道供楼主参考,就当是抛砖引玉了。
相信楼主知道,hadoop的文件系统叫做hdfs,就是hadoop分布式分布式文件系统的中文简写。这个系统是对google的gfs的开源实现。下面来回答问题。
首先是节点故障:
google在他们那篇gfs的论文中说,google在使用gfs曾说过,google在使用gfs时遇到过各种各样的问题,主要有:应用程序bug、操作系统的bug、人为失误,甚至还有硬盘、内存、连接器、网络以及电源失效。在一个大型的系统中,硬盘内存等等组件的老化,过度使用(因为数据读写非常频繁)等问题也是不容忽视的。hadoop的hdfs是需要考虑这些问题的。
然后是备份恢复的处理:
备份恢复因为我没有做过,不过我可以提供给楼主一个方法实验。
楼主可以先搭建一个只有3台datanode的小集群,设置数据备份为2。首先清空已有数据,然后在其中一台datanode上上传数据,默认时,hadoop是会在上传数据的datanode存入一个数据备份的。然后在down掉这台datanode,这样,你就少了一个数据备份,之后,你在另一台机器上读取数据,这时,你可以查看剩下的两台datanode中的dfs文件夹(也就是你存储hdfs数据的文件夹),打开其中block开头的文件看,这时应该就可以看到两台机器都有备份了。(推测)
根据gfs的论文,hadoop应该在数据被再次使用时进行检查,如果发现少了一个备份,会进行数据恢复工作。另一个时间是,机器空闲时会在后台监测数据备份情况。也就是说,数据恢复是自动,这也是hadoop的强大之处嘛。
至于namenode的恢复,没有处理过类似的问题,不过猜想和secondary namenode 有关,应该是将secondary namenode 存储的数据copy到namenode上,或是直接将secondary namenode 变成namenode 。
至于节点问题,down的节点经过恢复后,可以直接链接进入hadoop集群,而不用重新启动集群。命令是
bin/hadoop-daemon.sh start datanode
 

对于云计算开源平台Hadoop的Datanode,只启动一个的问题

我遇到过类似问题,只启动了一个datenode,我的做法是先检查conf/masters 和conf/slaves 文件,确保配置没错。然后试着把所有节点的tmp文件夹都删掉了,hadoop/log文件夹里面的日志也都删掉了,重新启动集群,执行hadoop namenode –format,就可以了。但是我也是菜鸟,所以不知道原理是什么,也不知道对你有没有用
 

相关内容