这一讲主要深入使用HDFS命令行工具操作Hadoop分布式集群,主要是通过实验的配置hdfs-site.xml文件的心跳来测试replication具体的工作和流程。
通过HDFS的心跳来测试replication具体的工作机制和流程的PDF版本请猛击这里。
王家林的“云计算分布式大数据Hadoop实战高手之路”之完整发布目录
在王家林 第六讲Hadoop图文训练课程:使用HDFS命令行工具操作Hadoop分布式集群初体验中,我们配置了hadoop.main这台主机的hdfs-site.xml这个配置文件的“dfs.replication”的值为2:
当我们上传文件时候文件会保存2份副本:
下面我们通过实验的方式探究replication属性配置的作用。
首先关闭集群:
然后修改hadoop.main这台机器上的hdfs-site.xml配置文件:
在这个配置文件中加入新的配置信息:
保存退出。
新加入的配置信息:
的具体含义是当DataNode和NameNode的心跳失去连接的时间超过15秒之后,Hadoop系统就会认为这个DataNode已经死亡,此时Hadoop会把这个DataNode标记为不能工作的状态,以后如果客户端去 访问数据的时候,Hadoop就不会尝试到这个DataNode去获取数据。
下面看一下其工作的具体方式:
首先启动HDFS:
进入HDFS的Web监控台的Node页面:
我们发现hadoop.main和hadoop.slave这两个DataNode均在正常的工作中。
我们观察到“Last Contact”选项的数据,该数据是表明DataNode和NameNode最近联系的心跳成功的时间,我们再次刷新页面看一下这个数据:
我们发现这个具体的数据时比较低的。
此时我们通过命令行工作查看datanode进程:
我们发现hadoop.main上运行的DataNode节点的进程是16228,我们把这个DataNode杀掉:
我们再次刷新HDFS的Node的控制台:
继续刷新:
继续刷新:
可以发现第一个DataNode的心跳时间不断的在增加,同时在第三次刷新的时候心跳间隔时间为25,这个数据超过我们配置文件中的15,再刷新一次:
此时发现只有一个正在服务的DataNode,因为我们的Hadoop.main中的DataNode心跳间隔时间超过了15秒,Hadoop此时把把该节点标记为无效节点。
我们返回文件系统页面看一下我们上传的文件存储信息:
此外发现文件的可访问信息只是存放在了hadoop.slave这个节点中了,当然,此时我们还是可以正常的访问文件,虽然只有一份可用副本,这就是replication节点的作用,我们在配置该节点的时候把值设置为2,表明同一个文件在HDFS中有两个副本,当一个运行DataNode的进程因为某些原因不能工作的时候,我们依旧可以使用剩余的一份副本工作,这不会影响客户端对数据的访问。