二、 virtual box 虛擬機(jī)配置靜態(tài)IP 和上網(wǎng)
本篇是繼上篇之后的第二篇,在這一節(jié)中將介紹虛擬機(jī)靜態(tài)IP配置及為了搭建Spark集群的其他設(shè)置。
1. 設(shè)置機(jī)器名字
為了方便集群中集群相互訪問(wèn)及辨識(shí)捡遍,我們把當(dāng)前的機(jī)器名字修改為master,其他機(jī)器命名為slave1陨享,slave2。
sudo hostnamectl -sethostname "master" // 設(shè)置主機(jī)名字
hostnamectl status --transient // 查看臨時(shí)主機(jī)名字
hostnamectl status --static
此時(shí)已經(jīng)完成了主機(jī)名字的修改钝腺。
2. 網(wǎng)絡(luò)設(shè)置
如果你是跟隨著上一節(jié)內(nèi)容而來(lái)霉咨,那么此時(shí)你已經(jīng)完成了一個(gè)虛擬機(jī)的安裝,接下來(lái)我們將要進(jìn)行其他其他必要的設(shè)置拍屑。
2.1 關(guān)閉防火墻
打開(kāi)剛才新建的虛擬機(jī),查看防火墻狀態(tài)坑傅,具體操作如下
systemctl status firewalld.service // 查看防火墻狀態(tài)
看到綠色的 active(running) 表示防火墻已打開(kāi)僵驰,通過(guò)下面的步驟關(guān)閉防火墻
systemctl stop firewalld.service // 關(guān)閉防火墻
systemctl disable firewalld.service //永久停用防火墻
systemctl status firewalld.service // 再次查看防火墻狀態(tài)
備注:如果修改不生效,嘗試重啟機(jī)器唁毒。
3. 系統(tǒng)更新并安裝工具
首先確定機(jī)器是否成功連接互聯(lián)網(wǎng)
ping www.baidu.com
如果系統(tǒng)未聯(lián)網(wǎng)蒜茴,則上條命令會(huì)執(zhí)行出錯(cuò)。
更新系統(tǒng)浆西、安裝工具
sudo yum update
sudo yum install -y net-tools // 安裝ifconfig 工具
sudo yum install -y vim
4. IP配置
利用ifconfig命令查看當(dāng)前網(wǎng)卡狀態(tài)
你看到的應(yīng)該和我的不一樣粉私,因?yàn)槲业氖且呀?jīng)配置過(guò)得。左邊的enp0s3 和 enp0s8是我們?cè)賱?chuàng)建虛擬機(jī)時(shí)添加的網(wǎng)卡近零,前面是NAT連接用來(lái)連接互聯(lián)網(wǎng)诺核,后面是HOST ONLY連接用來(lái)指定靜態(tài)IP,有可能你的只有前面網(wǎng)卡久信,而沒(méi)有后面的網(wǎng)卡窖杀,不過(guò)不要緊,我們可以手動(dòng)創(chuàng)建裙士。進(jìn)入到網(wǎng)卡配置網(wǎng)卡的位置
cd /etc/sysconfig/network-scripts/
接下來(lái)我們要在第二個(gè)網(wǎng)卡也就是enp0s8中配置固定IP入客,如果該文件不存在,那么執(zhí)行如下命令(最好在安裝虛擬機(jī)時(shí)就添加該網(wǎng)卡)
sudo cp ifcfg-enp0s3 ifcfg-enp0s8
網(wǎng)卡默認(rèn)配置如下
HWADDR="08:00:27:13:32:7F"
TYPE="Ethernet"
BOOTPROTO="dhcp" // 需要修改,啟動(dòng)方式桌硫,dhcp是動(dòng)態(tài)生成夭咬,static 是靜態(tài)
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" // 是否開(kāi)機(jī)啟動(dòng)
修改后的配置如下:
TYPE=Ethernet
BOOTPROTO=static // 靜態(tài)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 // 開(kāi)機(jī)啟動(dòng)
ADDR=192.168.56.112 // 新添加的ip地址,與ifconfig查看時(shí)一致铆隘,也可以設(shè)置成其他
NETMASK=255.255.255.0 // 新添加網(wǎng)關(guān)
之后修改hosts內(nèi)容卓舵,將機(jī)器名字與IP地址進(jìn)行綁定,這樣通過(guò)機(jī)器名字就可登錄
sudo vim /etc/hosts
看到的內(nèi)容如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.112 master // 新添加咖驮,機(jī)器IP 機(jī)器名字
192.168.56.108 slave1 // 新添加边器, ip地址可以在所有機(jī)器修改完之后再進(jìn)行修改
192.168.56.109 slave2 // 新添加, ip地址可以在所有機(jī)器修改完之后再進(jìn)行修改
master 192.168.56.112 // 新添加托修,
之后重啟機(jī)器忘巧。
5. ssh 設(shè)置
前面的步驟基本完成了一臺(tái)機(jī)器的配置,但ssh還沒(méi)有安裝睦刃,所以還沒(méi)發(fā)測(cè)試能ssh登錄砚嘴,安裝ssh秘鑰
ssh-keygen -t rsa // 一直回車(chē),直到結(jié)束為止
cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys // 記錄機(jī)器key的文件涩拙,下次免認(rèn)證
修改sshd config文件际长,無(wú)密碼ssh 登錄
sudo vim /etc/ssh/sshd_config
確保以下內(nèi)容可用(去掉注釋#)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重啟服務(wù)
service sshd restart
測(cè)試驗(yàn)證,
ssh localhost // 第一次登錄兴泥,會(huì)提示是否記錄秘鑰工育,輸入yes即可,以后免密碼登錄
exit
ssh master
備注:以后再集群中就可以ssh無(wú)密碼登錄到其他機(jī)器了搓彻,此步為止如绸,我們所有的操作只是針對(duì)一臺(tái)機(jī)器,另外兩臺(tái)機(jī)器我們稍后會(huì)virtual box的clone 工具進(jìn)行創(chuàng)建旭贬。
6. jdk 安裝
因?yàn)镠adoop和spark都運(yùn)行在java7以上版本怔接,所有最好按照較新版本的jdk這里選擇安裝java8
下載鏈接為 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
這里選擇下載的是 jdk-8u91-linux-x64.tar.gz
這種類(lèi)型的jdk只需解壓,并配置環(huán)境變量即可稀轨,由于java的一般安裝路徑在/usr/java下面扼脐,所以將解壓之后的文件拷貝到/usr/java,如果沒(méi)有java目錄奋刽,則新建即可瓦侮。
tar zxvf jdk-8u91-linux-x64.tar.gz
sudo cp -r jdk1.8.0_91 /usr/java/
在/etc/profile配置環(huán)境變量
sudo vim /etc/profile
添加一下內(nèi)容
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
測(cè)試jdk是否安裝成功
java --version
如果正確顯示java版本信息,則說(shuō)明安裝成功杨名。
測(cè)試java是否能正常運(yùn)行脏榆,建立測(cè)試用例
vim test.java
添加測(cè)試內(nèi)容
class Test {
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
運(yùn)行結(jié)果
javac test.java
java Test // 不需要帶.class
如果成功輸出結(jié)果,這說(shuō)明java功能正常台谍。
通過(guò)以上所有的設(shè)置须喂,已經(jīng)完成了在機(jī)器上搭建spark集群的所有準(zhǔn)備工作吁断,目前所有配置都是針對(duì)一臺(tái)機(jī)器,本測(cè)試集群采用一個(gè)master和兩個(gè)slave的結(jié)構(gòu)坞生,另外兩臺(tái)機(jī)器在安裝完Hadoop和spark之后進(jìn)行創(chuàng)建仔役。