http://zhidao.baidu.com/link?url=OagzJhsy7zJm5FeNGXhNBuxkXXk2SAgjs2UjqhxDsSGNLmJbU2rrdMX21xNEJ8GJ90h5zONMYeDPQgAGfsSS_K
,就当是抛砖引玉了。 相信楼主知道,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
Install:
1.
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
# Extra Java CLASSPATH elements. Automatically insert capacity-scheduler.
for f in $HADOOP_HOME/contrib/capacity-scheduler/*.jar; do
if [ "$HADOOP_CLASSPATH" ]; then
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f
else
export HADOOP_CLASSPATH=$f
fi
done
flume收集日志的
http://flume.apache.org/FlumeUserGuide.html