由于集群中namenode节点的资源太小,想将其中一个datanode跟namenode互换。集群中还安装有hive,impala,主要修改三个地方:
1. namenode元数据
2. hive数据库
3. 将hadoop和hive的配置文件同步到impala
一、namenode元数据
NameNode主要被用来管理整个分布式文件系统的命名空间(是目录和文件)的元数据信息,同时为了保证数据的可靠性,还加入了操作日志,所以,NameNode会持久化这些数据(保存到本地的文件系统中),操作日志保存在edits中。当NameNode启动时,会从镜像文件 fsimage 中读取HDFS的状态,并且把edits文件中记录的操作应用到fsimage,也就是合并到fsimage中去。合并后更新fsimage的HDFS状态,创建一个新的edits文件来记录文件系统的变化。fsimage和 edits就是namenode的元数据。这些数据datanode是没有的,所以迁移的时候要把这些文件copy过去。
看下hafs-site.xml中的配置.
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/name</value>
<final>ture</final>
</property>
配置edits和fsimage的存储路径,edits.dir这里没有配置,默认路径在哪可以看 http://master:50070