大数据项目基础
创建虚拟机并配置虚拟机网络互通
创建虚拟机
按照VMWare的流程创建虚拟机,CentOS7,创建完成之后将其复制三份,使用复制出来的三份进行后续的开发,将主要机器的内存设置为4GB、次要的虚拟机内存设置为2GB。
IP地址、主机名设置
切换到特权用户,利用命令:
hostnamectl set-hostname xxxx
修改主机名
进入到网络配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改bootproto由dhcp自动改为static固定
新增属性IPADDR=“192.168.xx.101”,对于三个主机,设置为101、102、103
新增属性NETMASK=“255.255.255.0”
新增属性GATEWAY=“192.168.xx.1”
新增属性DNS1=“192.168.xx.1”
在本地电脑中配置映射:
修改下面Windows系统里目录中的hosts文件:C:\Windows\System32\drivers\etc
在hosts中添加ip与主机名的映射:
192.168.202.101 node1
192.168.202.102 node2
192.168.202.103 node3
在三个虚拟机里分别修改/etc/hosts文件:
添加文件内容:
192.168.202.101 node1
192.168.202.102 node2
192.168.202.103 node3
配置SSH免密登陆,由于我们后续不同主机之间登陆会非常频繁,故我们可以配置SSH免密登陆:
在每一台机器执行:
ssh-keygen -t rsa -b 4096
再在每一台机器都执行:
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
创建hadoop用户并配置免密登陆
由于我们不能一直使用root用户来进行通信,这样会带来极大的安全隐患,故我们一般会创建一个用户来进行通信:
对于每一个虚拟机都创建用户并设置密码:
useradd hadoop
passwd hadoop
并设置密码,注意密码可能会报错,我们多设置两次就行(root用户的特权)
切换到hadoop用户,对于每一个用户都新建ssh密码并配置免密登录的流程,流程同上对于root用户的免密登陆
其他环境部署
对三台虚拟机进行JDK环境部署
我们先在官网下载Linux x64 的以 .tar.gz 为结尾的JDK压缩文件
我们将我们的JDK安装到根目录下的/export/server文件夹下,将/export/server视为我们大数据项目所有软件的安装位置
创建文件夹:
mkdir -p /export/server
-p 的意思是验证这个文件夹是否存在,不存在的话则创建一个
使用rz命令上传jdk文件(或者直接进行拖动)
解压jdk压缩文件到指定文件夹:
tar -zxvf jdk-8u391-linux-x64.tar.gz -C /export/server/
之后我们就可以在对应的文件夹中找到我们解压的jdk了
我们为这个jdk文件创建一个软连接方便后续使用:
ln -s /export/server/jdk1.8.0_391 jdk
之后查看ls -l可以看到链接已经被创建出来了
之后我们需要配置环境变量,我们在使用以下命令进行修改(修改对应的文件)
vim /etc/profile
在文件的最末尾添加这样两行(JDK的环境)
第一行是jdk的路径(软连接)
第二行是真正的环境读取信息
export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin
之后我们需要source这个文件令其生效
source /etc/profile
由于我们系统中自带一个开源的Java,我们为了避免其与我们的Oracle Java冲突需要将其删除,
rm -f /usr/bin/java
之后我们把我们自己的Java链接到对应的文件夹中:
ln -s /export/server/jdk/bin/java /usr/bin/java
之后我们键入java -version
以及 javac -version
就可以得到对应的版本信息了
然后对node2 和 node3执行一样的操作
进入/export/server
文件夹中,将我们解压出来的java文件复制给node2
scp -r jdk1.8.0_391 node2:`pwd`/
创建软连接
再将我们的环境变量进行对饮的配置以及令配置生效
关闭防火墙、关闭SELinux、进行时间同步
关闭防火墙
关闭防火墙、关闭防火墙开机自启
systemctl stop firewalld
systemctl disable firewalld
关闭SELinux
SELinux是一个保护用户之间沟通的安全架构,这会影响到我们后期的组件之间的相互通信,我们需要关闭它
vim /etc/sysconfig/selinux
将文件中的SELINUX字段的value值改为 disabled
使用init 6 命令可以重启虚拟机
时间校准
我们使用ntp组件进行时间校准,这个组件会自动联网到阿里云的ntp组件中,每隔一段时间自动对时间进行校准
安装ntp:
yum install -y ntp
我们可以先使用date命令查看现在的时区信息:
我们会发现其时间信息是不准确的
将系统中原先的时区信息删除并将上海的时区信息更新为我们现在的时区信息
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
上面一条是删除现有的链接,下面一条是将现在的时区信息更新上去
之后令ntp联网到阿里云的服务器进行时间校准
ntpdate -u ntp.aliyun.com
启动ntp持续校准时间服务并设置其开机自启
systemctl start ntpd
systemctl enable ntpd
全部设置完成之后,对虚拟机拍一个快照,保存他的设置,方便以后出问题的话可以快速恢复