hadoop-搭建Hadoop虚拟机环境 Dec 26, 2024 · 大数据 hadoop · 分享到: VMware 虚拟网卡设置 创建基础虚拟机 克隆虚拟机 主机名、IP、SSH免密登录 主机名与IP设置 SSH免密登录 JDK环境部署 防火墙、SELinux、时间同步 关闭防火墙和SELinux 时间同步 设置虚拟机快照 Hadoop虚拟机集群的设置 本笔记主要记录黑马程序Hadoop课程对应的,在Windows 11上通过3台虚拟机搭建Hadoop平台的笔记。需要的软件如下: VMware workstation 17.6 Oracle JDK 8 [https://download.oracle.com/otn/java/jdk/8u421-b09/d8aa705069af427f9b83e66b34f5e380/jdk-8u421-linux-x64.tar.gz] Centos 7.6 [https://vault.centos.org/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso] 可能需要翻墙。 Hadoop 3.4 VMware 虚拟网卡设置 首先,点击编辑,打开虚拟网络编辑器,选择VMnet8按照如下网络设置虚拟网络网段和网关。 子网IP:192.168.88.0,子网掩码255.255.255.0 网关IP:192.168.88.2 创建基础虚拟机 由于VMware提供了虚拟机克隆功能,因此我们不必一个个创建虚拟机,而是通过先创建一个基础虚拟机,然后再克隆成多个虚拟机再微调的方式。 点击创建新的虚拟机->选择典型(推荐)->填入Centos 7.6光盘镜像所在位置,如下图 点击下一步,之后设置虚拟机的账号,密码,再点击下一步。并选择虚拟机存放位置(最好选一个空间比较大的磁盘)。 基础虚拟机磁盘可以先设置为20G,之后如果需要可以随时扩容,这也是使用虚拟机的好处。接下来,都直接点击下一步,不用更改什么,点击完成后,即开机了Centos系统的安装,其安装过程是自动化的。 等待系统安装好后,就完成了基础虚拟机的创建。 克隆虚拟机 我们目前一共需要3台虚拟机,来构建Hadoop集群。VMware可以直接通过现有的虚拟克隆出其他虚拟机,而不用重复创建。 克隆虚拟机之前,先用保证被克隆的虚拟机处于关闭状态。然后在已建立好的虚拟机上右键菜单->管理->克隆。 克隆选项分别是:克隆自虚拟机中的当前状态-->创建完整克隆-->虚拟机名称分别为node1,node2,node3,虚拟机位置分别为D:\VMware\bigdata\node1,D:\VMware\bigdata\node2,D:\VMware\bigdata\node3。 为了方便管理,我们可以在VMware资源管理栏添加一个文件夹叫大数据集群,把node1,node2,node3三个虚拟机移入文件夹中。 克隆好3台虚拟机后,我们设置以下3台虚拟机的内存。我们计划使用node1作为master节点,运行更多功能,所以将其内存大小设置为4GB,其他为2GB。如下表: 节点 CPU 内存 node1 1 core 4GB node2 1 core 2GB node3 1 core 2GB 下图中以node1为例,其他两个节点操作方法一样。 这样我们就设置好了Hadoop的虚拟机集群。 主机名、IP、SSH免密登录 为了方便Hadoop集群中虚拟机的通信,我们将修改主机名以及设置固定IP。同时将使用密钥登陆的方式实现主从之间的免密登录。 主机名与IP设置 开启node1,右键选择Open Terminal。修改主机名为node1,并修改固定IP为192.168.88.131,最后重启网卡。具体命令如下: 1# 切换到root(否则无权限) 2su - root 3 4# 修改主机名 5hostnamectl set-hostname node1 6 7# 设置IP地址 8vim /etc/sysconfig/network-scripts/ifcfg-ens33 9# 1. 修改IP获取方式为静态 10BOOTPROTO="static" 11# 2. 在文本末尾添加IP地址相关信息 12IPADDR="192.168.88.131" 13NETMASK="255.255.255.0" 14GATEWAY="192.168.88.2" 15DNS1="192.168.88.2" 16 17#重启网卡 18systemctl restart network 19 20# 设置hosts文件,方便DNS解析 21vim /etc/hosts 22 23# 添加以下内容 24192.168.88.131 node1 25192.168.88.132 node2 26192.168.88.133 node3 同样的操作启动node2和node3,对应的名称为node2,node3,IP为192.168.88.132,192.168.88.133。 黑马的教程中,还需要将windows实体机的hosts文件也添加上DNS解析项,不知道是不是必须的。 1# windows中C:\Windows\System32\drivers\etc\hosts 2# 在文本最后添加 3192.168.88.131 node1 4192.168.88.132 node2 5192.168.88.133 node3 SSH免密登录 后续安装的集群画软件,多数需要远程登录以及远程执行命令,为了方便起见,我们让3台虚拟机之间可以相互免密登录。我们不仅需要root节点的相互登录,同时创建了一个hadoop用户,让各个节点的hadoop用户也可以免密登录。下面是node1中的操作,其他两个节点也类似。 1# 生成密钥,一路回车 2ssh-keygen -t rsa -b 4096 3 4# 将密钥复制到各个节点上(包括自己) 5ssh-copy-id node1 6ssh-copy-id node2 7ssh-copy-id node3 8 9# 创建单独的hadoop用户,以备装以后的软件 10useradd hadoop 11# 设置密码 12passwd hadoop 13 14# 切换到hadoop用户,执行免密登录 15su - hadoop 16# 生成密钥,一路回车 17ssh-keygen -t rsa -b 4096 18ssh-copy-id node1 19ssh-copy-id node2 20ssh-copy-id node3 注意,免密需要退出后重新登录才能生效。另外,上述命令是使得各虚拟机root用户之前,hadoop用户之前可以相互免密登录。root用户登录其他hadoop用户,或者hadoop登录root用户还是需要密码的。 JDK环境部署 Hadoop很多软件是需要Java运行环境的,目前推荐使用JDK 8。首先将下载好的JDK 8版本压缩包(jdk-18.0.2.1_linux-x64_bin.tar.gz)上传到3台linux虚拟机。 注:Oracle的JDK下载很垃圾,首先要免费注册,还得清理cookies,不然容易发生400错误。我为了不清理cookies,是用了无痕模式才下载成功。 我们将JDK压缩包上传到/tmp文件夹下,上传好了后,分别在3台虚拟机上部署jdk,具体步骤如下: 1su - root 2# 1. 创建文件夹,用来部署jdk,将jdk,tomcat都安装部署到:/export/server内 3mkdir -p /export/server 4 5# 2. 解压缩jdk安装文件 6tar -zxvf /tmp/jdk-8u421-linux-x64.tar.gz -C /export/server 7 8# 3. 配置java环境 9vim /etc/profile 10# 文末添加 11export JAVA_HOME=/export/server/jdk1.8.0_421 12export PATH=$PATH:$JAVA_HOME/bin 13 14# 4. 使环境变量生效 15source /etc/profile 16 17# 5. 配置java执行程序, centos默认使用openjdk 18mv /usr/bin/java /usr/bin/openjava 19ln -s /export/server/jdk1.8.0_421/bin/java /usr/bin/java 20 21# 6. 执行验证展示 22[root@node1 ~]# java -version 23java version "1.8.0_421" 24Java(TM) SE Runtime Environment (build 1.8.0_421-b09) 25Java HotSpot(TM) 64-Bit Server VM (build 25.421-b09, mixed mode) 26javac -version 27[root@node1 ~]# javac -version 28javac 1.8.0_421 29 30# 7. 最后清理垃圾文件 31rm /tmp/jdk-8u421-linux-x64.tar.gz 防火墙、SELinux、时间同步 我们还需要在三台虚拟机上分别执行以下操作,来方便Hadoop程序的运行。 关闭防火墙和SELinux 集群化软件之间需要通过端口互相通讯,为了简单起见,我们直接关闭防火墙。 1# 关闭防火墙 2systemctl stop firewalld 3# 开机不再启动这个服务 4systemctl disable firewalld Linux有一个安全模块,叫SELinux,用以限制用户和程序的相关权限,来确保系统的安全稳定。在当前学习阶段,为了简单起见,我们也直接关闭SELinux功能。 1vim /etc/sysconfig/selinux 2 3# 将该行disabled 4SELINUX=disabled 5 6# 保存后退出,重启虚拟机生效 时间同步 修改时区并配置自动时间同步。集群的同步非常重要,否则会出现混乱。时间同步是通过ntp这个软件实现的。 1# 1. 安装ntp软件 2yum install -y ntp 3# 2. 更新时区在同一位置,这里设置为上海 4rm -f /etc/localtime; sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 5# 3. 同步时间,使用阿里云的时间同步服务器 6ntpdate -u ntp.aliyun.com 7# 4. 开启ntp服务并设置开机自启动 8systemctl start ntpd 9systemctl enable ntpd 注意,现在这个年代,yum install基本上很难直接安装成功。源大概率没了。因此,我们最后用阿里的Centos 7源更换下默认的yum源。 1# 下载源 2wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 3# 清空并生成缓存 4yum clean all 5yum makecache 然后就可以yum install了。(没必要先yum update) 设置虚拟机快照 经过以上设置,3台虚拟机的状态已经装备就绪,可以对当前来之不易的状态进行快照保存,以备后续恢复。 对3台虚拟机均执行拍摄快照。首先我们将3台虚拟机关机(保存的更快),然后菜单栏上虚拟机->快照->拍摄快照。就可拍摄快照进行备份了。 至此,Hadoop平台的虚拟机设置已经完成。