在迁移hdfs和hive之前我首先想到的是,是不是可以直接拷贝文件夹呢?毕竟hdfs文件实际都是存储在设定的dir中,hive的元数据也都在mysql里头,备份再恢复一下简直是so easy啊!好吧,这篇文章就是用来填上这个想法背后的各种坑的,也顺便回顾一下部分相关环境配置的过程。
一、 准备工作
首先需要在新的虚拟机上完成运行hadoop的必备工作,以下操作主机和从机都要执行。
1. 创建hadoop用户及相关配置
使用root用户登录vm,或使用su切换到root,执行下述命令
useradd -m hadoop #新建hadoop账户
passwd hadoop #设置密码
然后在/etc/sudoers中添加下面这句
%hadoop ALL=(ALL) NOPASSWD: ALL
使hadoop用户可以免密使用sudo命令提升权限,提示找不到sudo命令的话就使用yum install sudo来安装(centos中)。
2. SSH配置
为了让hadoop运行起来时不用频繁的输入密码,所以需要为主机和从机分别生成对称密钥,并添加到公钥名单中。
su - hadoop # 切换到hadoop账户并切换到其home目录
ssh-keygen -t dsa #dsa生成方式安全性更高,选择默认的目录即可,如果要免密就不要填写密码短语
cat id_rsa.pub >> authorized_keys # 将本机公钥写入公钥名单,hdfs启动时会ssh登录本机
sudo chmod 700 ~/.ssh # 修改文件权限,否则免密无法生效
接下来使用下述命令将主机的公钥依次远程复制到从机的公钥名单中