二、 virtual box 虚拟机配置静态IP 和上网
本篇是继上篇之后的第二篇,在这一节中将介绍虚拟机静态IP配置及为了搭建Spark集群的其他设置。
1. 设置机器名字
为了方便集群中集群相互访问及辨识,我们把当前的机器名字修改为master,其他机器命名为slave1,slave2。
sudo hostnamectl -sethostname "master" // 设置主机名字
hostnamectl status --transient // 查看临时主机名字
hostnamectl status --static
此时已经完成了主机名字的修改。
2. 网络设置
如果你是跟随着上一节内容而来,那么此时你已经完成了一个虚拟机的安装,接下来我们将要进行其他其他必要的设置。
2.1 关闭防火墙
打开刚才新建的虚拟机,查看防火墙状态,具体操作如下
systemctl status firewalld.service // 查看防火墙状态
看到绿色的 active(running) 表示防火墙已打开,通过下面的步骤关闭防火墙
systemctl stop firewalld.service // 关闭防火墙
systemctl disable firewalld.service //永久停用防火墙
systemctl status firewalld.service // 再次查看防火墙状态
备注:如果修改不生效,尝试重启机器。
3. 系统更新并安装工具
首先确定机器是否成功连接互联网
ping www.baidu.com
如果系统未联网,则上条命令会执行出错。
更新系统、安装工具
sudo yum update
sudo yum install -y net-tools // 安装ifconfig 工具
sudo yum install -y vim
4. IP配置
利用ifconfig命令查看当前网卡状态
你看到的应该和我的不一样,因为我的是已经配置过得。左边的 enp0s3 和 enp0s8是我们再创建虚拟机时添加的网卡,前面是 NAT连接用来连接互联网,后面是 HOST ONLY连接用来指定静态IP,有可能你的只有前面网卡,而没有后面的网卡,不过不要紧,我们可以手动创建。进入到网卡配置网卡的位置
cd /etc/sysconfig/network-scripts/
接下来我们要在第二个网卡也就是 enp0s8中配置固定IP,如果该文件不存在,那么执行如下命令(最好在安装虚拟机时就添加该网卡)
sudo cp ifcfg-enp0s3 ifcfg-enp0s8
网卡默认配置如下
HWADDR="08:00:27:13:32:7F"
TYPE="Ethernet"
BOOTPROTO="dhcp" // 需要修改,启动方式,dhcp是动态生成,static 是静态
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="4fc4d4b5-bf4a-44d1-b929-2dbfabd50b8d"
ONBOOT="yes" // 是否开机启动
修改后的配置如下:
TYPE=Ethernet
BOOTPROTO=static // 静态IP
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s8
UUID=3f19ccd2-06a3-4052-b370-37ad9178a6d4
ONBOOT=yes // 开机启动
ADDR=192.168.56.112 // 新添加的ip地址,与ifconfig查看时一致,也可以设置成其他
NETMASK=255.255.255.0 // 新添加网关
之后修改hosts内容,将机器名字与IP地址进行绑定,这样通过机器名字就可登录
sudo vim /etc/hosts
看到的内容如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.112 master // 新添加,机器IP 机器名字
192.168.56.108 slave1 // 新添加, ip地址可以在所有机器修改完之后再进行修改
192.168.56.109 slave2 // 新添加, ip地址可以在所有机器修改完之后再进行修改
master 192.168.56.112 // 新添加,
之后重启机器。
5. ssh 设置
前面的步骤基本完成了一台机器的配置,但ssh还没有安装,所以还没发测试能ssh登录,安装ssh秘钥
ssh-keygen -t rsa // 一直回车,直到结束为止
cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys // 记录机器key的文件,下次免认证
修改sshd config文件,无密码ssh 登录
sudo vim /etc/ssh/sshd_config
确保以下内容可用(去掉注释#)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启服务
service sshd restart
测试验证,
ssh localhost // 第一次登录,会提示是否记录秘钥,输入yes即可,以后免密码登录
exit
ssh master
备注:以后再集群中就可以ssh无密码登录到其他机器了,此步为止,我们所有的操作只是针对一台机器,另外两台机器我们稍后会virtual box的clone 工具进行创建。
6. jdk 安装
因为Hadoop和spark都运行在java7以上版本,所有最好按照较新版本的jdk这里选择安装java8
下载链接为 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
这里选择下载的是 jdk-8u91-linux-x64.tar.gz
这种类型的jdk只需解压,并配置环境变量即可,由于java的一般安装路径在/usr/java下面,所以将解压之后的文件拷贝到/usr/java,如果没有java目录,则新建即可。
tar zxvf jdk-8u91-linux-x64.tar.gz
sudo cp -r jdk1.8.0_91 /usr/java/
在/etc/profile配置环境变量
sudo vim /etc/profile
添加一下内容
export JAVA_HOME=/usr/java/jdk1.8.0_91
export JRE_HOME=/usr/java/jdk1.8.0_91/jre
export JAVA_BIN=/usr/java/jdk1.8.0_91/bin
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME JAVA_BIN PATH CLASSPATH
让修改立即生效:
source /etc/profile
测试jdk是否安装成功
java --version
如果正确显示java版本信息,则说明安装成功。
测试java是否能正常运行,建立测试用例
vim test.java
添加测试内容
class Test {
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
运行结果
javac test.java
java Test // 不需要带.class
如果成功输出结果,这说明java功能正常。
通过以上所有的设置,已经完成了在机器上搭建spark集群的所有准备工作,目前所有配置都是针对一台机器,本测试集群采用一个master和两个slave的结构,另外两台机器在安装完Hadoop和spark之后进行创建。