Part 1 - 模板机制作

2021-07-01
7分钟阅读时长

【版本】

当前版本号v20230818

版本修改说明
v20230818修改了部分命令,优化了步骤
v20230414新增安装nc命令
v20230328新增了常见问题
v20220320增加了时间同步
v20220318优化部分步骤和说明
v20220119重新梳理结果,增加专业术语的解析
v20210630初始化版本

【实验目的】

  • 掌握搭建 CentOS 模板镜像
  • 熟练掌握 Linux命令(vi、tar、mv等等)的使用
  • 掌握 VirtualBox、FinalShell 等客户端的使用

【实验环境】

  • 内存:至少4G
  • 硬盘:至少空余40G
  • 操作系统: 64位 Windows系统。
  • 虚拟机操作系统:CentOS 7.9

【实验资源】

  • FinalShell
  • CentOS 7.9系统镜像
  • VirtualBox 6.5
  • Hadoop 3 安装包
链接:https://pan.baidu.com/s/1MoQ0iU0Qb1o8_o5JV6X6iw
提取码:3rno
复制

【实验内容】

  • 完成 Virtualbox 的安装
  • 完成 CentOS 系统的安装和配置
  • 完成 FinalShell 的安装
  • 完成 Hadoop 的解压

【实验步骤】

安装 VirtualBox 和 FinalShell

  1. 安装 VirtualBox 6,过程略。如果之前有安装旧版本的 VirtualBox,请先卸载。

  2. 安装 FinalShell,过程略。

VirtualBox 新建虚拟机

  1. 启动 VirtualBox,点击“新建”,新建1台虚拟机。

  2. 类型选择 Linux,版本选择 Red Hat(64-bit)。

  3. 分配 1024M 内存。

  4. 创建虚拟磁盘。

  5. 磁盘映像选择 VDI。

  6. 磁盘选择“动态分配”。

  7. 磁盘分配最大容量 30GB。点击“创建”。

  8. 设置虚拟机。

  9. 加载 CentOS 的安装镜像。

  10. 连接方式选择“仅主机(Host-Only)网络”,网卡选择“VirtualBox Host-Only Ethernet Adapter #2”。

设置虚拟机时间与宿主机时间同步

  1. 在 Windows 的命令行窗口输入以下命令。
  • 修改以下D:\"Program Files (x86)"\Oracle\VirtualBox路径为你的 Virtualbox 安装路径。
d:
cd D:\"Program Files (x86)"\Oracle\VirtualBox
复制

如果你安装在d盘,需要先输入 d: 切换到D盘,再运行 cd 命令 VirtualBox 的安装路径可以通过桌面的 VirtualBox 快捷方式打开

  1. CMD 执行以下命令启用与宿主机时间同步,以下"Tmpl"需要修改为你的虚拟机名称。
VBoxManage setextradata "HadoopTmpl" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "0"
复制

安装CentOS 7

  1. 启动“HadoopTmpl”虚拟机。

  2. 选择“Install CentOS 7”,进行 CentOS 安装。

  3. 虚拟机安装语言选择默认英语。

  4. 时区选择东8区,注意调整时间为你当前安装的实际时间。

  5. 语言支持勾选中文。

  6. 网口设置,启用网口,并设置 Host Name 为 hadooptmpl

  7. 设置网口信息。

地址:10.0.0.70
掩码:24
网关:10.0.0.254
DNS:223.5.5.5
复制
  1. 回到主界面,进入软件选择界面,选择最小化安装“Minima Install”。

  2. 回到主界面,进入系统安装位置菜单。

  3. 选择手动分区。

  4. 选择标准分区格式

  5. 新建3个分区(Partition)

swap分区:2048M
/boot 分区:300M
/ 根分区:剩余所有空间
复制

  1. 禁用KDUMP。

KDUMP 是 Linux 内核的一个功能,可在发生内核错误时创建核心转储。当被触发时,KDUMP 会导出一个内存映像,该映像可用于调试和确定崩溃的原因。

  1. 开始安装系统

  2. 设置 root 密码,密码设置为123456。此时可能会提示密码过短,但是再次按下Done按钮确认即可成功修改。

重要提示:这里设置的密码较为简单,仅为简化实验操作。在工作环境中切勿使用过于简单的密码。
  1. 创建 hadoop 用户,密码设置为123456。此时可能会提示密码过短,但是再次按下Done按钮确认即可成功修改。
重要提示:这里设置的密码较为简单,仅为简化实验操作。在工作环境中切勿使用过于简单的密码。
  1. 等待系统安装完毕以后,点击重启。

配置 CentOS 系统

  1. 重启以后,尝试使用 hadoop/123456 账户登录。
注意请不要使用 root 登录!!!。

  1. 进入当前Windows系统的网卡设置,修改虚拟网卡的配置。

  2. 打开FinalShell,使用 hadoop 用户SSH方式登录虚拟机。

IP:10.0.0.70
端口:22
用户名:hadoop
复制

  1. 使用su命令,输入root的密码123456,切换为root用户。
su
复制
  1. 执行以下命令,禁用防火墙。
systemctl stop firewalld
systemctl disable firewalld
复制
  1. 备份 SELinux 配置文件,并禁用 SELinux。
cp /etc/selinux/config{,.bak}
vi /etc/selinux/config
复制

在文件中修改

SELINUX=disabled
复制

注:此为实验安装,为了尽量方便访问 Hadoop 的服务,所以选择关闭防火墙和SELinux。真实生产部署 Hadoop 不应该禁用防火墙和SELinux,它们对于系统的安全性是至关重要的。

  1. 关闭图形化networkmanager,以后统一用network来管理
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
复制

把 hadoop 用户加入 wheel 组

注意此阶段命令需要在 root 用户下执行!
  1. 把 Hadoop 用户加入到wheel组里面。
usermod -aG wheel hadoop
复制

CentOS 下把用户加入wheel组可以让该用户通过 sudo 来运行高权限的命令。

配置 SSH

  1. 备份 SSH 配置文件,优化 SSH 的连接速度。
cp /etc/ssh/sshd_config{,.bak}
vi /etc/ssh/sshd_config
复制
  1. 找到UseDNS no,去掉前面的#号注释

  2. 找到GSSAPIAuthentication no这一行的yes,把yes改成no

  3. 改完重启sshd

systemctl restart sshd
复制

配置 CentOS yum源

yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。

起初是由 yellow dog 这一发行版的开发者 Terra Soft 研发,用 Python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。

yum 的宗旨是自动化地升级,安装/移除 rpm 包,收集 rpm 包的相关信息,检查rpm包的依赖性并自动提示用户解决。

yum 的关键之处是要有可靠的 repository,顾名思义,这是软件的仓库,它可以是 http 或 ftp 站点,也可以是本地软件池,但必须包含 rpm 的 header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。

注意此阶段命令需要在 root 用户下执行!
  1. 为了提升软件安装速度,我们选择使用本地安装镜像作为 yum 的源。首先确保虚拟机加载了 CentOS 的安装光盘镜像。

  2. 调整硬盘为启动的第一顺位。

  3. 解挂目录 /mnt 目录,准备把光盘挂载到此目录。

umount /mnt
复制
  1. 进入源目录,把原有源备份到test目录下。
cd /etc/yum.repos.d/
mkdir test -p
mv *.repo test
复制
  1. 配置本地源指向光盘镜像的挂载目录/mnt
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0'>local.repo
复制
  1. 挂载光盘内容到/mnt 目录下
mount /dev/cdrom /mnt
复制
  1. 清理源缓存
yum makecache
复制

正常清理源缓存以后,会看到以下结果提示:

Determining fastest mirrors
Metadata Cache Created
复制
  1. 执行以下命令,每次启动系统自动挂载光盘内容到/mnt目录下。
echo 'mount /dev/cdrom /mnt' >>/etc/rc.local
chmod +x /etc/rc.d/rc.local
复制

CentOS 安装通用软件

注意此阶段命令需要在 root 用户下执行!
  1. 安装 tab 补全
yum install -y bash-completion.noarch
复制
  1. 安装常用的命令
yum install -y net-tools vim lrzsz wget tree screen lsof chrony tcpdump rsync nc
复制

CentOS 安装 JDK

注意此阶段命令需要在 root 用户下执行!
53. 上传 JDK 安装包`jdk-8u291-linux-x64.tar.gz` 到 `/opt` 目录下。
  1. 解压安装JDK
cd /opt
tar -xvf jdk-8u291-linux-x64.tar.gz
mv jdk1.8.0_291 jdk8
复制
  1. 设置 JDK 相关的环境变量,并运行。
cp /etc/profile /etc/profile.bak
echo "export JAVA_HOME=/opt/jdk8
export CLASSPATH=\$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
export PATH=\$JAVA_HOME/bin:\$PATH:." >>/etc/profile
复制
source /etc/profile
复制
  1. 测试 JDK 是否正常安装,正常安装的运行以下命令以后可以返回 JDK 的版本。
java -version
复制
  1. 修改 hosts,在配置文件末尾加入3个节点配置。注意替换为你的学号。
  • 备份 hosts 文件,仅执行一次
cp /etc/hosts{,.bak}
复制
  • 写入内容到 hosts 文件
echo "10.0.0.71 nodea+你的学号后3位
10.0.0.72 nodeb+你的学号后3位
10.0.0.73 nodec+你的学号后3位">> /etc/hosts
复制

假如你的学号为123,则命令为

echo "10.0.0.71 nodea123
10.0.0.72 nodeb123
10.0.0.73 nodec123">> /etc/hosts
复制
  • 打开 hosts 文件查看是否有写入内容
cat /etc/hosts
复制

CentOS 配置 chrony

注意此阶段命令需要在 root 用户下执行!

Chrony是一个开源的软件,像CentOS 7或基于RHEL 7操作系统,已经是默认服务,默认配置文件在 /etc/chrony.conf 它能保持系统时间与时间服务器(NTP)同步,让时间始终保持同步。相对于NTP时间同步软件,占据很大优势。其用法也很简单。

  1. 安装和设置chrony。打开时间同步配置文件,在文件最后增加以下代码,保存退出。
vim /etc/chrony.conf
复制
server 10.0.0.71 iburst
复制
  1. 重启时间同步服务
systemctl restart chronyd
复制

CentOS 安装 Hadoop

注意此阶段命令需要在 hadoop 用户下执行!
  1. 切换为 hadoop 用户
su hadoop
复制
  1. 进入 hadoop 工作目录,上传 Hadoop 安装包hadoop-3.3.1.tar.gz
cd ~
复制
  1. 移动安装包hadoop-3.3.1.tar.gz 到/opt目录并解压。
sudo mv hadoop-3.3.1.tar.gz /opt
sudo tar -xvf hadoop-3.3.1.tar.gz
复制
  1. 修改 hadoop 存放目录,创建一个 tmp 目录用于存储HDFS文件内容。
cd /opt
sudo mv hadoop-3.3.1 hadoop
sudo mkdir /opt/hadoop/tmp
复制
  1. 设置 /opt/hadoop 的拥有者为 hadoop 用户·
sudo chown hadoop:wheel -R /opt/hadoop
复制
  1. 设置 Hadoop 的环境变量。
echo "export HADOOP_HOME=/opt/hadoop
export PATH=\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin:\$PATH:.
">>/etc/profile
复制
  1. 删除 Hadoop 下cmd后缀的脚本,这些脚本仅能在 Windows 下运行。
sudo rm /opt/hadoop/sbin/*.cmd -f
复制

【常见问题】

1. 运行命令提示“找不到命令XXX”

答:可能是由于在编辑/etc/profile的时候,PATH变量编辑错误导致的。可以运行以下命令使用 vi 进入编辑/etc/profile

/bin/vi /etc/profile
复制
  • 执行以下命令,应该能够恢复正常
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:.
复制

扫码或长按识别访问