环境准备(hadoop_02)
查看系统版本
cat /etc/redhat-release
设置静态ip
设置主机名
vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=hadoop1
注意:HOSTNAME=hadoop1 表示主机设置为hadoop1 ,修改主机名后,需要重启系统后永久生效。
架构和角色分配
我们先整理出三台虚拟机的ip和主机名
192.168.30.180 hadoop0
192.168.30.189 hadoop1
192.168.30.186 hadoop2
角色如下
192.168.30.180 hadoop0 作为master担任NameNode 和 JobTracker
192.168.30.189 hadoop1 作为slave担任DataNode 和 TaskTracker
192.168.30.186 hadoop2 作为slave担任DataNode 和 TaskTracker
其中NameNode/DataNode工作在HDFS层,JobTracker/TaskTracker工作在MapReduce层。
设备列表中hadoop0是master,担任NameNode 和JobTracker,hadoop1 ,hadoop2为slave,担任DataNode和TaskTracker。
配置hosts(主机-ip映射)
vim /etc/hosts
192.168.30.180 hadoop0
192.168.30.189 hadoop1
192.168.30.186 hadoop2
配置ssh无密码访问
ssh 用于登录远程主机, 并且在远程主机上执行命令. 它的目的是替换 rlogin 和 rsh, 同时在不安全的网络之上, 两个互不信任的主机之间, 提供加密的, 安全的通信连接. X11 连接和任意 TCP/IP 端口均可以通过此安全通道转发(forward).当用户通过连接并登录主机 hostname 后, 根据所用的协议版本, 用户必须通过钥匙的方法向远程主机证明他/她的身份。
- 生成密钥文件
ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa
- 把密钥内容写到授权文件中
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
并且把所有节点的authorized_keys的内容相互拷贝加入到每一个节点的authorized_keys中,配置完成后每一个节点的authorized_keys文件的内容应该是一样的。
-密钥文件授权
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
-把密钥添加到缓存中
ssh-add
出现Could not open a connection to your authentication agent
先执行ssh-agent bash再执行ssh-add
测试ssh功能
ssh hadoop1
成功无密码连接之后 ~/.ssh/路径下会生成一个know hosts文件记录 成功连接过的密钥。
我们依次检查几台机器的~/.ssh/know hosts,如果都成功互联了对方,则ssh无密码登录设置成功。
cat ~/.ssh/know hosts