而VMware作为一款强大的虚拟化软件,能够轻松创建和管理多个虚拟机,为搭建Hadoop集群提供了理想的测试和生产环境
本文将详细介绍如何在VMware中搭建Hadoop集群,包括系统镜像安装、网络配置、JDK及Hadoop安装、集群规划、SSH免密登录、时间同步以及HDFS和YARN集群启动等关键步骤
一、准备工作 在开始搭建Hadoop集群之前,需要做好以下准备工作: 1.下载相关软件: - VMware Workstation Pro(或其他版本)
- CentOS-7系统镜像(本文使用CentOS-7-x86_64-DVD-1810)
- Sun JDK(如jdk-8u221-linux-x64)
- Hadoop安装包(如hadoop-2.7.7)
2.VMware网络配置: - 将Vmware中的VMnet8网络设置成“NAT模式”
- 设置子网IP、子网掩码和网关,确保虚拟机能够访问外部网络
3.集群规划: - 根据实际需求,规划Hadoop集群中的各个组件服务器,如NameNode、DataNode、ResourceManager、NodeManager等
- 规划各虚拟机的IP地址和主机名,以便后续配置
二、安装CentOS-7系统 1.创建虚拟机: - 打开VMware Workstation Pro,选择“新建虚拟机”
- 选择“典型”安装类型,然后点击“下一步”
- 选择“安装程序光盘映像文件”,浏览并选择下载的CentOS-7系统镜像
- 输入虚拟机名称和安装位置,设置磁盘大小(建议至少20GB)
- 根据需要配置虚拟机的内存和CPU等硬件参数(建议至少2GB内存和2个CPU核心)
2.安装系统: - 完成虚拟机创建后,点击“开启此虚拟机”
- 进入系统安装界面,选择“Install CentOS 7”并回车
- 按照屏幕提示完成系统安装,包括选择语言、时区、键盘布局等
- 在“软件安装”界面选择“Server with GUI”,以便后续操作
- 设置root密码并创建普通用户(注意用户名必须全部小写)
3.基本配置: - 安装完成后,进入Linux系统
- 安装VmwareTools,以便调整分辨率和共享文件夹等功能
- 配置网卡名(可选)和静态IP地址
- 修改主机名,可以通过编辑/etc/sysconfig/network文件或使用hostnamectl命令
- 配置/etc/hosts文件,添加集群中各个主机IP地址与主机名的映射关系
三、安装和配置JDK 1.卸载现有JDK: - 使用yum命令查看是否安装有JDK:`sudo yum list installed | grep java`
- 卸载OpenJDK或其他版本的JDK:`sudo yum remove <包名>`
2.安装Sun JDK: - 将下载的Sun JDK包(如jdk-8u221-linux-x64.tar.gz)上传到虚拟机中
- 解压JDK包到指定目录(如/opt/module/):`tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/module/`
- 配置环境变量:使用sudo+vi命令修改/etc/profile文件,在末尾添加`export JAVA_HOME=/opt/module/jdk1.8.0_221`和`export PATH=$PATH:$JAVA_HOME/bin`
- 重新加载/etc/profile文件使其生效:`source /etc/profile`
- 检查环境变量是否配置成功:`java -version`
四、安装和配置Hadoop 1.安装Hadoop: - 将下载的Hadoop包(如hadoop-2.7.7.tar.gz)上传到虚拟机中
- 解压Hadoop包到指定目录(如/opt/module/):`tar -xzvf hadoop-2.7.7.tar.gz -C /opt/module/`
- 配置环境变量:同样修改/etc/profile文件,在末尾添加`export HADOOP_HOME=/opt/module/hadoop-2.7.7`和`export PATH=$PATH:$HADOOP_HOME/bin`
- 重新加载/etc/profile文件使其生效:`source /etc/profile`
- 检查Hadoop是否安装成功:`hadoopversion`
2.配置Hadoop: - 进入Hadoop配置目录(如/opt/module/hadoop-2.7.7/etc/hadoop)
- 配置core-site.xml文件,设置Hadoop的临时文件目录和NameNode的地址
- 配置hdfs-site.xml文件,设置HDFS的副本因子等参数
- 配置mapred-site.xml文件(如果mapred-site.xml.template存在,先重命名为mapred-site.xml),设置MapReduce的JobTracker地址
- 配置yarn-site.xml文件,设置YARN的ResourceManager地址和其他相关参数
- 配置hadoop-env.sh文件,设置JAVA_HOME环境变量
- 编辑slaves文件,将所有DataNode的主机名添加进去
- 配置masters文件(如果需要使用多个ResourceManager,则添加多个主机名)
五、搭建Hadoop集群 1.克隆虚拟机: - 完全拷贝已配置好的虚拟机(如hadoop101),生成其他虚拟机(如hadoop102和hadoop103)
- 在新生成的虚拟机中,更改主机名和IP地址,确保与集群规划一致
2.设置SSH免密登录: - 在每台虚拟机上生成SSH密钥对:`ssh-keygen`
- 将公钥复制到其他虚拟机上:`ssh-copy-id <主机名`
- 测试SSH免密登录是否成功
3.时间同步: - 选择一台虚拟机作为NTP服务器(如hadoop101)
- 在NTP服务器上安装ntpd服务,并配置ntp.conf文件
- 在其他虚拟机上配置定时任务,定期从NTP服务器同步时间
4.启动Hadoop集群: - 在主节点(如hadoop101)上启动Hadoop集群:`start-all.sh`
- 检查Hadoop NameNode、YARN ResourceManager、MapReduce JobHistory等是否正常启动
- 在所有从节点(如hadoop102和hadoop103)上检查Hadoop DataNode和NodeManager是否正常启动
5.验证集群状态: - 在浏览器中访问NameNode的Web界面(如http://hadoop101:50070/),查看HDFS的状态
- 在浏览器中访问ResourceManager的Web界面(如http://hadoop101:8088/),查看YARN的状态
- 运行Hadoop示例程序(如wordcount),验证集群的计算能力
六、注意事项与故障排除 1.版本兼容性:确保JDK和Hadoop的版本兼容,避免出现不必要的错误
2.网络连通性:确保虚拟机之间的网络连通性,以便节点之间的通信正常
3.防火墙设置:在搭建Hadoop集群时,建议关闭防火墙或配置相应的防火墙规则,以确保节点之间的通信不受阻碍
4.时间同步:保持集群