1.模板虚拟机环境准备
相关视频:
相关资源:
https://pan.baidu.com/s/1jSWf9JafMsxx0LXlRmW-2w?pwd=jaha
提取码:jaha
打开VMware软件,创建操作系统centos7操作系统,配置静态网卡和主机名、hosts文件
双击 打开软件
由于创建操作系统centos7,需要单机创建新的虚拟机按钮
VMware是虚拟化软件,能够模拟计算机硬件,下面是模拟计算机硬件,给操作系统centos7分配多少资源
选择典型,是按照常规VMware分配操作系统的硬件资源
如果需要更多,或特别规定,选择自定义按钮,进行配置
点击下一步按钮,进行下一步操作
选择安装程序光盘映像文件单选按钮,点击浏览按钮,选择物理机(就是真实的主机)上提前下载好的操作系统镜像文件,点击确定按钮,把镜像文件选择到虚拟机中
点击下一步按钮,进行下一步操作
安装系统过后需要账号登陆,这里需要创建一个用户ljc1,密码l (ljc1和root都用使用此密码)
建立虚拟机操作系统需要虚拟机名称,名称CentOS7_LJC_100,简单易懂
你能给这个虚拟机操作系统多大的存储空间,默认20G,需要修改也可以
一些基础的硬件设备已经定义好了,其他的系统会默认帮你选择;如果还需要其他自定义硬件的话,单击自定义硬件按钮,在里面设置
创建完成后,会自动打开此操作系统,因为上一步勾选了创建后开启此虚拟机的复选框,打开会一点慢,稍等一会就好
不要点击任何按钮,因为之前已经创建好用户ljc1,密码为l,root账号密码为l
系统第一次加载过程有点慢,稍等一会
系统加载太慢了,那么先确定网卡是否已启动,我这里是没有启动的
右击网卡,在出现的快捷菜单中选择启用命令,把VMnet1和VMnet8都启动
设置VMnet8的网卡地址,因为虚拟机操作系统需要设置静态地址,需要和外网进行链接
就需要设置网卡地址
网卡地址设置好了,但需虚拟机和网卡不接触是不行的,就需要设置虚拟网络编辑器,在虚拟机中单击编辑菜单,选择虚拟网络编辑器命令
进入发现什么都改变不了,需要点击更改设置按钮
按照下面图中的设置进行勾选,勾选将主机适配器连接此网络复选框
安装Xshell软件,并使用此软件
点击是按钮,后面如何会继续提示出安装失败,再点击是按钮,会安装插件
下面图片中显示xshell正在安装
点击ok按钮,如果不行的话,点击关闭按钮,
再点击右上角的关闭按钮,继续安装(不要点击其他按钮,否则需要重新来一遍)
这就和常规的软件安装一样了,点击下一步按钮,继续操作
显示到这一步,xshell就安装完成了
在虚拟机中以root账号登陆操作系统
点击not listed?按钮,输入root用户名和密码l进行登录
登录成功会进入以下界面
修改操作系统的网卡地址输入以下命令进行执行(在虚拟中必须手写,除非安装VMware tools)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改以下几个配置,修改成如下界面 输入以下命令,并执行
BOOTPROTO="static"
IPADDR=192.168.10.100
GATEWAY=192.168.10.2
DNS1=192.168.10.2
如果不修改主机名,主机名会默认,不是我们想要的主机名,修改主机名
vim /etc/hostname
修改hosts文件,建立映射关系
vim /etc/hosts
在后面追加映射关系
192.168.10.100 ljc100
192.168.10.101 ljc101
192.168.10.102 ljc102
192.168.10.103 ljc103
192.168.10.104 ljc104
以上一些配置需要重启才能生效,重启虚拟机中的系统
修改物理机上的hosts的文件,建立hosts主机上的映射关系
在Windows中打开路径为C:\Windows\System32\drivers\etc
192.168.10.100 ljc100
192.168.10.101 ljc101
192.168.10.102 ljc102
192.168.10.103 ljc103
192.168.10.104 ljc104
安装过后xshell软件,点击文件菜单,选择新建命令,弹出新建会话属性对话框
单击连接选项卡,在名称的文本框中输入ljc100,会看到主机的文本框会自动填充ljc100
单击用户身份验证选项卡,在用户名的文本框中输入ljc100,在密码的文本框中输入l
输入完成后,点击连接按钮进行连接
连接成功后,会弹出下面的对话框,如果没成功,不会提出,代表你的速度很快,虚拟中的操作系统没有重启好,等待操作系统重启好,点击文件菜单,选择重新连接命令
点击接受并保存按钮
以上配置成功后,会进入以下界面
以root账号安装epel-release(EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。) 输入以下命令,并执行
[root@ljc100 ~]# yum install -y epel-release
关闭防火墙,关闭防火墙开机自启 输入以下命令,并执行
[root@ljc100 ~]# systemctl stop firewalld
[root@ljc100 ~]# systemctl disable firewalld.service
配置ljc1用户具有root权限
[root@ljc100 ~]# vim /etc/sudoers
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
ljc1 ALL=(ALL) NOPASSWD:ALL
在/opt/下创建2个目录,并修改所有者和所在组
[root@ljc100 ljc1]# cd /opt
[root@ljc100 opt]# mkdir module/ software/
[root@ljc100 opt]# chown ljc1:ljc1 module/ software/
卸载虚拟机自带JDK
[root@ljc100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e –nodeps
配置模板完成后,重启操作系统
2. 克隆虚拟机并配置网络
关闭虚拟机中的操作系统,进行克隆
以CentOS_LJC_100为模板虚拟机,克隆三台虚拟机,分别为:
CentOS_LJC_102、CentOS_LJC_103、CentOS_LJC_104
克隆完成后,可以看到以下界面,虚拟机一共有四个操作系统
CentOS_LJC_100为模板虚拟机,就不需要开启了,开启CentOS_LJC_102操作系统
点击CentOS_LJC_102操作系统,点击开启此虚拟机按钮进行开启
开启CentOS_LJC_103 CentOS_LJC_104操作系统
点击CentOS_LJC_103 CentOS_LJC_104操作系统,点击开启此虚拟机按钮进行开启
以root账户登陆 配置CentOS_LJC_102的IP
[root@ljc102 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改:
IPADDR=192.168.10.102
修改CentOS_LJC_102的主机名称
[root@ljc102 ~]# vim /etc/hostname
由ljc100改为:
ljc102
重启虚拟机
[root@ljc102 ~]# reboot
CentOS_LJC_103、CentOS_LJC_104操作步骤同上
完成操作后,使用xshell远程连接ljc102、ljc103、ljc104
复制执行如下命令在各个操作系统上
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3. JDK、Hadoop安装
以普通用户ljc1账户登陆
使用lrzsz上传Hadoop和JDK至ljc102下的/opt/software/目录下
[root@ljc102 ~]$ exit
[ljc1@ljc102 ~]$ cd /opt/software/
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的jdk文件,点击打开按钮,上传)
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的hadoop文件,点击打开按钮,上传)
上传成功会出现以下界面
解压JDK和解压Hadoop并指定目录
[ljc1@ljc102 software]$ tar -zxvf jdk-8u321-linux-x64.tar.gz -C /opt/module/
[ljc1@ljc102 software]$ tar -zxvf hadoop-3.2.2.tar.gz -C /opt/module/
配置JDK和hadoop环境变量
[ljc1@ljc102 ~]$ sudo vim /etc/profile.d/my_env.sh
添加
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_321
export PATH=$PATH:$JAVA_HOME/bin
在末尾添加
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.2.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
使修改后的文件生效
[ljc1@ljc102 ~]$ source /etc/profile
测试JDK是否安装成功
[ljc1@ljc102 ~]$ java -version
测试Hadoop是否安装成功
[ljc1@ljc102 ~]$ hadoop version
4. Hadoop完全分布式配置
在ljc102上以普通用户ljc1登陆
在ljc102把ljc102的/opt/module/jdk1.8.0_321目录拷贝到ljc103
[ljc1@ljc102 software]$ scp -r /opt/module/jdk1.8.0_321 ljc1@ljc103:/opt/module
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
在ljc103上以普通用户ljc1登陆
在ljc103把ljc102的/opt/module/hadoop-3.2.2目录拷贝到ljc103
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
[ljc1@ljc103 ~]$ scp -r ljc1@ljc102:/opt/module/hadoop-3.2.2 /opt/module/
在ljc103把ljc102的/opt/module目录下的所有目录拷贝到ljc104
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
[ljc1@ljc103 ~]$ scp -r ljc1@ljc102:/opt/module/* ljc1@ljc104:/opt/module
上传集群分发脚本xsync
在ljc102上以普通用户ljc1 登陆新建目录bin
[ljc1@ljc102 software]$ cd
[ljc1@ljc102 ~]$ mkdir bin
[ljc1@ljc102 ~]$ cd bin/
[ljc1@ljc102 bin]$ cd
上传文件脚本文件jpsall myhadoop.sh xsync到bin文件夹中
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的jpsall文件,点击打开按钮,上传)
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的myhadoop.sh文件,点击打开按钮,上传)
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的xsync文件,点击打开按钮,上传)
以上配置成功,就会显示以下界面
使脚本 xsync 具有执行权限
[ljc1@ljc102 bin]$ chmod +x xsync myhadoop.sh jpsall
同步分发/home/ljc1/bin至ljc103、ljc104
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
[ljc1@ljc102 bin]$ cd ..
[ljc1@ljc102 ~]$ xsync bin/
可以在ljc103、ljc104上查看运行结果
[ljc1@ljc103 ~]$ cd
[ljc1@ljc103 ~]$ ll bin/
可以在ljc103、ljc104上查看运行结果
[root@ljc104 ljc1]# su ljc1
[ljc1@ljc104 ~]$ cd
[ljc1@ljc104 ~]$ ll bin/
在ljc102上以普通用户ljc1登陆
分发环境变量
[ljc1@ljc102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
在ljc103、ljc104上分别使修改后的文件生效
[ljc1@ljc103 ~]$ source /etc/profile
[ljc1@ljc104 ~]$ source /etc/profile
在ljc103上分别查看java软件安装
测试JDK是否安装成功
[ljc1@ljc103 ~]$ java -version
在ljc104上分别查看hadoop软件安装
测试Hadoop是否安装成功
[ljc1@ljc104 ~]$ hadoop version
5.SSH免密登录配置
在ljc102上以普通用户ljc1登陆
cd 回到家目录
在ljc102上生成私钥和公钥
生成公钥,不要任何配置,回车、回车、回车即可
[ljc1@ljc102 ~]$ ssh-keygen -t rsa
在ljc102上将公钥拷贝到要免密登录的目标机器
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
[ljc1@ljc102 ~]$ ssh-copy-id ljc102
[ljc1@ljc102 ~]$ ssh-copy-id ljc103
[ljc1@ljc102 ~]$ ssh-copy-id ljc104
生成公钥,不要任何配置,回车、回车、回车即可
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
生成公钥,不要任何配置,回车、回车、回车即可
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
生成公钥,不要任何配置,回车、回车、回车即可
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
生成公钥,不要任何配置,回车、回车、回车即可
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
6.集群配置
在ljc102上以普通用户ljc1登陆
exit 退出root账户
进入hadoop目录
[root@ljc102 ljc1]# exit
[ljc1@ljc102 ~]$ cd /opt/module/hadoop-3.2.2/etc/hadoop/
删除配置文件core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml
rm -rf core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml
上传配置文件core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml到此文件夹下
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的core-site.xml文件,点击打开按钮,上传)
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的hdfs-site.xml文件,点击打开按钮,上传)
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的yarn-site.xml文件,点击打开按钮,上传)
上传文件(输入rz命令,执行(enter键)弹出窗口,选择已安装好的mapred-site.xml文件,点击打开按钮,上传)
分发配置文件
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
[ljc1@ljc102 hadoop]$ cd ..
[ljc1@ljc102 etc]$ xsync hadoop/
7.编写Hadoop集群脚本
在ljc102上以普通用户ljc1登陆
配置workers
[ljc1@ljc102 ~]$ vim /opt/module/hadoop-3.2.2/etc/hadoop/workers
清除原有内容,写入:
ljc102
ljc103
ljc104
同步所有节点配置文件
如果出现yes/no 就输入yes
需要输入密码就输入密码l(root和普通用户帐户的密码一样的是l)
[ljc1@ljc102 ~]$ xsync /opt/module/hadoop-3.2.2/etc
8.启动集群
在ljc102上以普通用户ljc1登陆
集群第一次启动前,需要在ljc102节点格式化NameNode
[ljc1@ljc102 ~]$ hdfs namenode -format
启动集群(三台虚拟机任意一台都可以运行)
[ljc1@ljc102 ~]$ myhadoop.sh start
查看三台服务器Java进程
[ljc1@ljc102 ~]$ jpsall
输入ljc102:9870 查看集群信息
输入ljc103:8088/cluster查看集群的配置