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就会挂掉
需要手动修改