hadoop学习之HDFS原理

HDFS原理

 

HDFS包括三个组件:

NameNode、DataNode、SecondaryNameNode

 

  • NameNode的作用是存储元数据(文件名、创建时间、大小、权限、与block块映射关系等)
  • DataNode的作用是存储真实数据信息
  • SecondaryNameNode作用合并edits和fsimage文件

 

 

hadoop.tmp.dir  -> /tmp/hadoop-root

dfs.namenode.dfs.dir ->/dfs/name/current

 

see_txid  :操作事务id, 编号,用于显示操作次数,每次操作自增1

VERSION:显示namespaceID clusterID 

 

修改namenode的存储位置:

<configuration>

  <property>

    <name>dfs.replication</name>

    <value>1</value>

  <property>

  <property>

    <name>dfs.namenode.name.dir<name>

    <value>/opt/module/hadoop-2.6.0/data</value>

  </property>

</configuration>

 

 

dfs.datanode.data.dir -> /tmp/hadoop-root/dfs/data

 

修改datanode的存储目录

<configuration>

  <property>

    <name>dfs.replication</name>

    <value>1</value>

  <property>

  <property>

    <name>dfs.datanode.data.dir<name>

    <value>/opt/module/hadoop-2.6.0/data</value>

  </property>

</configuration>

 

 

修改secondarynamenode的目录

file://${hadoop.tmp.dir}/dfs/namesecondary

 

重新格式化

hdfs namenode -format -force

 

多次格式化namenode的问题解释

hdfs格式化会改变VERSION文件中的clusterID,首次格式化时datannode和namenode会产生相同的clusterID;

如果重新执行格式化,namenode的 clusterID会改变,就会与datanode的clusterID不一致,如果重新启动或读写hdfs就会挂掉

 

需要手动修改

 

上一篇:aaa


下一篇:namenode挂了的解决方案