hadoop 采用distcp命令进行导数据,解决namenode节点切换导致的异常

使用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

你可能感兴趣的:(大数据)