使用distcp命令
hadoop distcp -overwrite hdfs://namenode1:8020/tmp/T_PUBLIC_OPINIONS_INFO hdfs://namenode11.201/tmp/T_PUBLIC_OPINIONS_INFO
namenode切换
由于集群重启或者是维护等问题,集群可能会出现namenode切换等问题。导致数据无法复制等问题,所以我们应当首先判断namenode存活的节点,然后进行指定IP的数据转移切换。
#旧集群
active_node=''
NameNode1_new='192.200.1.207'
NameNode2_new='192.200.1.206'
if hadoop fs -test -e hdfs://${NameNode1_new}:8020/ ; then
active_node=$NameNode1_new
elif hadoop fs -test -e hdfs://${NameNode2_new}:8020/ ; then
active_node=$NameNode2_new
fi
echo "Active Dev Name node : $active_node"
#新集群
active_node=''
NameNode1_new='192.200.1.202'
NameNode2_new='192.200.1.201'
if hadoop fs -test -e hdfs://${NameNode1_new}:8020/ ; then
active_node=$NameNode1_new
elif hadoop fs -test -e hdfs://${NameNode2_new}:8020/ ; then
active_node=$NameNode2_new
fi
echo "Active Dev Name node : $active_node"
首先筛选出新旧集群上的namenode的存活的节点,然后进行存活数据进行编写。
hadoop distcp -overwrite hdfs://active_node:8020/tmp/T_PUBLIC_OPINIONS_INFO hdfs://active_node2/tmp/T_PUBLIC_OPINIONS_INFO