每天早上醒来,看见你和阳光都在,这便是我要的未来。

hadoop小结

上一篇 / 下一篇  2012-12-20 10:54:54 / 个人分类:hadoop

验证分布式文件系统设置非dfs磁盘空间:
操作步骤
停掉hadoop进程
1.cd /usr/local/hadoop-0.20.2/bin
2.sh ./stop-all.sh
修改配置文件
3.cd ../conf
4. 编辑$HADOOP_HOME/conf/hdfs-site.xml(配置在datanode上才能生效)
vi hdfs-site.xml
<property> 
  <name>dfs.datanode.du.reserved</name> 
  <value>1024</value>  表示磁盘写入点预留1K的空间
</property>
启动hadoop
5.cd ../bin
6.sh ./start_dfs.sh
测试上传文件是否成功(当磁盘空间不足时,应该不能保存文件)
7.sh hadoop fs -put 本地文件路径 /U01
dfs.datanode.du.reserved :表示在datanode对磁盘写时候,保留多少非dfs的磁盘空间,从而避免dfs将所在的磁盘写满

Master– NameNode
Namenode是Master的核心:是一个中心服务器,负责管理文件系统的namespace和客户端对文件的访问。Namenode执行文件系统的namespace操作,例如打开、关闭、重命名文件和目录,同时决定block到具体Datanode节点的映射。 Datanode在Namenode的指挥下进行block的创建、删除和复制。
Secondnamenode
协助NameNode日志处理
Slaves–DataNode s
Datanode在集群中一般是一个节点,负责管理节点上它们附带的存储,默认任何上传的文件保留 3 个备份(可设置)。
Client –DFSClient
磁盘数据错误,心跳检测和重新复制
每个Datanode节点周期性地向Namenode发送心跳信号。网络割裂可能导致一部分Datanode跟Namenode失去联系。Namenode通过心跳信号的缺失来检测这一情况,并将这些近期不再发送心跳信号Datanode标记为宕机,不会再将新的IO请求发给它们。任何存储在宕机Datanode上的数据将不再有效。Datanode的宕机可能会引起一些数据块的副本系数低于指定值,Namenode不断地检测这些需要复制的数据块,一旦发现就启动复制操作。在下列情况下,可能需要重新复制:某个Datanode节点失效,某个副本遭到损坏,Datanode上的硬盘错误,或者文件的副本系数增大。
当宕机的Datanode重启,namenode会将冗余的副本清除
HDFS负载均衡
HDFS的数据也许并不是非常均匀的分布在各个DataNode中。一个常见的原因是在现有的集群上经常会增添新的DataNode节点。当新增一个数据块(一个文件的数据被保存在一系列的块中)时,NameNode在选择DataNode接收这个数据块之前,会考虑到很多因素。其中的一些考虑的是:
•将数据块的一个副本放在正在写这个数据块的节点上。
•尽量将数据块的不同副本分布在不同的DataNode上,这样集群可在完全失去某一DataNode的情况下还能存活。
•一个副本通常被放置在和写文件的节点同一DataNode的某个节点上,这样可以减少跨越DataNode的网络I/O。
•尽量均匀地将HDFS数据分布在集群的DataNode中。

Hadoop安全模式
NameNode在启动的时候首先进入安全模式,开始时系统会处于安全模式,是为了系统启动时检查各个DataNode上数据块的有效性,当处于安全模式下,文件系统中的内容不允许修改,直到安全模式结束,当然在运行时也可通过命令进入安全模式。
安全模式时,如果datanode丢失的block达到一定的比例,则系统会一直处于安全模式状态即只读状态。dfs.safemode.threshold.pct(缺省值0.999f)表示HDFS启动的时候,如果DataNode上报的block个数达到了元数据记录的block个数的0.999倍才可以离开安全模式,否则一直是这种只读模式。如果设为1则HDFS永远是处于SafeMode。
有两个方法离开这种安全模式
(1)修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999。
(2)hadoop dfsadmin -safemode leave命令强制离开
 
用户可以通过dfsadmin -safemode $value来操作安全模式,参数$value的说明如下:
 
enter – 进入安全模式
leave – 强制NameNode离开安全模式
get – 返回安全模式是否开启的信息
wait – 等待,一直到安全模式结束
文件以(block文件块)保存
hdfs上文件被分割成多个block(文件块),每个文件块被分配存储到DataNode数据节点上,可通过命令:hadoop dfsadmin Creport查看各个节点的存储情况,也可直接去某一DataNode的hadoop/data/current查看那些block。NameNode是hdfs的管理者,管理系统的命名空间,集群的配置信息,存储块的复制,负责总管分布式的数据和分解任务的执行,它会在内存中存储文件系统的mete-data,包括文件信息,每个文件对应的文件块的信息,以及每个文件块在DataNode上的信息。DataNode在本地文件系统中存储Block,保存了Block的mete-data,同时周期性的发送所有的Block的报告给NameNode,负责分布式的数据存储和任务的执行。数据存储在哪一台计算机上,就有这台计算机进行部分数据的计算,这样可以减少数据在网络上的传输,Moving computation is cheaper than moving data即移动计算比移动数据更经济。
查看存储的block数量http://10.20.11.207:9100/dfsnodelist.jsp?whatNodes=LIVE
 

TAG:

 

评分:0

我来说两句

Open Toolbar