罗利
(湖南信息职业技术学院,湖南 长沙410299)
Hadoop 是开源的大数据平台,其分布式文件系统HDFS 进行数据存储,计算框架MapReduce 做数据计算。用户不需了解底层实现细节就可以实现海量数据存储计算。实际生产过程中Hadoop 平台搭建需要多个物理服务器,但是学生学习过程中并没有真实的服务器供学习。
Hadoop 完全分布式集群搭建环境需要至少3 台服务器,本实验选择在VMware WorkStation 15 中创建3 台虚拟机,各系统环境要求集群节点规划信息如表1 所示。
CentOS7 预装了OpenJDK,先删除OpenJDK。下载匹配环境的JDK jar 包,解压,将JDK 路径添加到/etc/profile 末尾:
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile 使文件生效。java -version 检查JDK 是否安装成功,如果成功,会出现java 版本号等信息。
本文采用的Hadoop 版本为Apache Hadoop2.7.2。下载匹配环境的Hadoop jar 包,解压,修改/etc/profile 文件:
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
source /etc/profile 使文件生效,hadoop version 检查Hadoop是否安装成功。
将上述已经安装好JDK 和Hadoop 的节点克隆2 个节点,对新节点的MAC 地址重新生成,保证唯一性。
编辑/etc/hostname 文件,修改3 个节点主机名分别为master、slave1、slave2,用hostname 查看是否修改成功。
修改文件vi /etc/hosts,建立IP 地址和主机名映射关系:
192.168.200.100 master
192.168.200.101 slave1
192.168.200.102 slave2
再 关 闭 防 火 墙 , 在 /etc/selinux/confi 中 设 置“SELINUX=disabled”,systemctl disable firewalld 永久关闭防火墙。

表1 集群环境规划信息
配置SSH 免密登录,实现多个节点之间不输入密码即可登录成功。
SSH 安全外壳协议,以master 节点免密登录slave1 为例,配置如下:
1.5.1 生成公钥和私钥。在master 节点的.ssh 目录(在用户家目录)下,执行ssh-keygen -t rsa,执行三个回车,生成公钥id_rsa.pub 和私钥id_rsa。
1.5.2 拷贝公钥到需要免密登录的目标节点。执行ssh-copy-id slave1 ,将公钥拷贝到slave1 节点上。
至此,在master 节点可以ssh slave1 直接免密登录。同理,在slave1 上需要配置免密登录maser、slave2,slave2 上需要配置免密登录maser、slave1。……