实验目标:部署一个小型的hadoop 分布式集群 ,用于教学演示
环境要求: 虚拟机VirtualBox 操作系统 Centos7 hadoop版本 hadoop-2.6.0-cdh5.7.0
主机ip | 主机名 | 集群中的角色 |
---|---|---|
192.168.56.10 | master | NameNode ResourceManager |
192.168.56.11 | slave1 | DataNode SecondaryNameNode NodeManager |
192.168.56.12 | slave2 | DataNode |
实验步骤:
1)先从伪分布式虚拟机Hadoop Pseudo复制一台虚拟机 ,必须关机才能复制, 完成后启动该虚拟机
2)先在虚拟机自己的界面登陆, 通过配置文件修改虚拟机IP地址为192.168.56.10
配置文件位置/etc/sysconfig/network-scripts/ifcfg-enp0s8,文件名和网络接口名称对应, 然后service network restart重启网络接口
3)用XSHELL远程登录,请注意VirtualBox主机网络管理器的虚拟网卡IP地址必须和CentOS一个网段
4)拷贝Hadoop安装包和JAVA JDK安装包到Linux
拷贝到/home目录
5)解两个压缩安装包到指定目录
cd /home
tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C /usr/local/
tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
说明:如果复制的伪分布式主机,之前已经完成了Hadoop和Java JDK压缩包的拷贝和解压,可以跳过4)5)两个步骤
6)修改hostname主机名
vi /etc/hostname 主机名修改为master,修改后把当前的XSHELL登录会话重新连接一下,终端显示的主机名才会改变
7)修改hosts文件
vi /etc/hosts 前两行必须保留,删除掉多余的行,新增加三行
192.168.56.10 master
192.168.56.11 slave1
192.168.56.12 slave2
执行ping master进行测试应该可以ping通, ctrl+c 退出ping命令
8)设置环境变量并使之生效
vi /etc/profile
增加以下内容:
#jdk
export JAVA_HOME=/usr/local/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
#hadoop
export HADOOP_HOME=/usr/local/hadoop-2.6.0-cdh5.7.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行命令source /etc/profile 让环境变量生效
执行 echo $JAVA_HOME 和 echo $HADOOP_HOME 两个命令,测试一下环境变量是否生效
9)设置master的SSH免密登录
执行 ssh master或 ssh 192.168.56.10(当前Linux的IP地址),测试能否免密登录本机Linux,如果必须输入密码才能登录,就必须进行SSH免密登录设置,免密登录成功后,必须输入exit退出并返回原会话,以免搞混
a)执行ssh-keygen命令,遇到提示直接回车,生成一个密钥对,使用RSA加密算法,生成一个公钥和一个私钥
b)执行ssh-copy-id master命令 , 把公钥发送到目标机
c)再次执行 ssh master,测试能否免密登录master主机,如果能不输入密码自动