1. 大數(shù)據(jù)和Hadoop
研究學習大數(shù)據(jù),自然要從Hadoop開始。 Hadoop不是一個簡單的軟件,而是有一些列軟件形成的生態(tài),其核心思想來自Google當初發(fā)布的三篇論文,后來做了開源的實現(xiàn), 谷歌的實現(xiàn)和Hadoop的實現(xiàn)大致可以做這樣的對應:
Google Map/Reduce <---> Hadoop MapReduce Google GFS <---> Hadoop HDFS Google BigTable <---> Hadoop HBase
Hadoop生態(tài)的所有組成部分,都是跑在linux環(huán)境下的,自然我們首先需要搭建linux環(huán)境。另外Hadoop之所以能處理“大”數(shù)據(jù),是因為其分布式的特性,可以利用分布式計算構(gòu)建服務器集群,并可根據(jù)需要擴展。為了學習,我們先在本地計算機上利用虛擬機搭建linux環(huán)境,要模型集群環(huán)境,就多創(chuàng)建幾個虛擬機就可以了。
為了玩兒這套東西,因為要創(chuàng)建幾個虛擬機,所以的你的電腦內(nèi)存最好不小于8G,因為跑Hadoop一般一個虛擬機需要2G,隨便開3臺虛擬機就占不少內(nèi)存了。 不過前期為了學習,我先只給每臺虛擬機分配1G內(nèi)存,后面不夠了在調(diào)整就行了。
2. 為什么選VirtualBox?
提起虛擬機,自然首先想到的就是大名鼎鼎的VMware。 VMware是老牌虛擬機軟件,網(wǎng)上教程也很多。我之所以選用VirtualBox,主要是因為license的問題。 我手頭只有一臺MacBook pro, 不想話太多時間在軟件license上折騰,所以選擇了免費的VirtualBox. VirtualBox的安裝過程乏善可陳,就是常規(guī)操作,不說了。
![](http://img.jbzj.com/file_images/article/201909/2019916104933096.jpg?201981610500)
3. 虛擬機中安裝CentOS
前面提到,我的主力計算機是一臺MacBook Pro. 之前為方面,利用Parallel Desktop虛擬了一臺Windows 出來,這里不提。
linux系統(tǒng)我選擇了CentOS,首先從CentOS官網(wǎng)下載系統(tǒng)的ISO文件。在VirtualBox里新建一個虛擬機,類型選Linux,版本隨便選一個就行了,因為里面沒有看到有CentOS,不過隨便選一個也沒問題。 注意最好選一下文件夾,也就是虛擬機文件存放的位置,因為隨著裝的東西越來越多,虛擬機文件可能會越來越大。我的電腦硬盤都快撐滿了,所以掛了個外接硬盤,把虛擬機文件放在了外接硬盤上,需要時插上用,雖然不方便,但也只好將就了。
![](/d/20211016/7fbec6a69001dffbd90917868fe04c3e.gif)
其他參數(shù)可以都按默認,虛擬機創(chuàng)建成功后,點設置,切換到存儲,在光驅(qū)那里選擇下載的CentOS系統(tǒng)的ISO文件,這樣虛擬機啟動后就可以進入CentOS的安裝了。
![](/d/20211016/e3acdb7adb0a9bb131478c3a974b23c2.gif)
安裝CentOS7 操作系統(tǒng)也不說了,都是圖形化界面,沒什么難度。
4. 網(wǎng)絡環(huán)境配置遇到的坑
Linux安裝成功后的網(wǎng)絡設置這里需要說一下,我在這上面踩了不少坑。我希望我的網(wǎng)絡環(huán)境是這樣的。首先我們希望Linux虛擬機能夠連接互聯(lián)網(wǎng),這樣以后需要下載什么組件時能方便些。其次希望能用Host機器也就是MacBook中訪問到Linux虛擬機,以便ssh登錄上去。VirtualBox默認的小窗口實在很小,看著眼花,雖然也可以調(diào)大,但畢竟在宿主下操作更方便些,所以還是需要從MacBook上ssh過去。但是請注意,CentOS剛剛安裝完成后是不能聯(lián)網(wǎng)的,還需要做相關的設置才行。
4.1 Linux虛擬機連接互聯(lián)網(wǎng)
虛擬機的網(wǎng)絡設置默認可選用“網(wǎng)絡地址轉(zhuǎn)換NAT” ,虛擬機會創(chuàng)建一個NAT網(wǎng)絡。
![](/d/20211016/dc1c9a5a4de46acc3231ad3b63da2e33.gif)
虛擬機安裝后默認沒有開啟網(wǎng)絡,所以不能聯(lián)網(wǎng),需要啟動虛擬機,登錄后更改網(wǎng)絡配置。
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
把ONBOOT修改為yes,以便讓linux 啟動后即啟動網(wǎng)絡。 更改后按ESC,然后 :wq 退出保存??梢圆挥弥貑?,通過下面的命令重啟網(wǎng)絡服務,以便使更改生效。
systemctl restart network
![](/d/20211016/089545b409cc43e8225e3884ce4d5778.gif)
這時候可以通過命令 ``` ip addr``` 查看,你會看到網(wǎng)絡已經(jīng)有了一個IP地址,比如我的是 10.0.2.15。如圖:
![](/d/20211016/941ab5711026e75e7e0a354e7aca2700.gif)
現(xiàn)在你如果 ping www.baidu.com
,應該發(fā)現(xiàn)已經(jīng)能夠聯(lián)網(wǎng)了。
![](/d/20211016/cf2ef150c25feda511c05952f7738b69.gif)
4.2 從宿主機Macbook訪問Linux虛擬機
另外,但從主機Macbook還是不能ping通這個地址,就是說主機還不能訪問虛擬機。要讓主機MacBook和虛擬機linux互通,就需要讓這兩個機器在同一個網(wǎng)段里。 VirtualBox里的“管理”菜單下,打開“主機網(wǎng)絡管理器”,創(chuàng)建一個,如圖,可以看到創(chuàng)建了一個192.168.56.1的虛擬網(wǎng)卡。
![](/d/20211016/ac9a09c1faa2d3a7ac4b42e285f16d79.gif)
![](/d/20211016/66bd74d1aa6cc3181bc882af1206dcab.gif)
這時候如果你在MacBook的終端中使用ifconfig命令查看,你會發(fā)現(xiàn),多出來一個vboxnet0的網(wǎng)卡,ip地址就是192.168.56.1
danieldu@daniels-MacBook-Pro-857 ~ ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP> inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201<PERFORMNUD,DAD> gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 stf0: flags=0<> mtu 1280 en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether ac:bc:32:c1:ed:dd inet6 fe80::1c82:47a:64f:460f%en0 prefixlen 64 secured scopeid 0x4 inet 192.168.31.46 netmask 0xffffff00 broadcast 192.168.31.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect status: active ....
vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 ether 0a:00:27:00:00:00 inet 192.168.56.1 netmask 0xffffff00 broadcast 192.168.56.255 utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380 inet6 fe80::f655:9c6f:ca10:240e%utun1 prefixlen 64 scopeid 0xc nd6 options=201<PERFORMNUD,DAD>
...
然后需要VirtualBox中對應的虛擬機設置中,增加一個網(wǎng)卡2. 選擇“僅主機(Host-Only)網(wǎng)絡”,界面名稱就是之前看到的vboxnet0.
![](/d/20211016/d24a91dcab265cbe74f2ce37482cfc3a.gif)
然后登錄到虛擬機, 利用“ip addr” 命令查看,你會發(fā)現(xiàn)多出來一個網(wǎng)卡enp0s8。 從enp0s3 復制一個,然后編輯這個文件,這次更改為固定IP地址。
cp /etc/sysconfig/network-scripts/ifcfg-enp0s3/etc/sysconfig/network-scripts/ifconfig-enp0s8
![](/d/20211016/c388d73dc3ca36ca2c735220f58c8bbb.gif)
然后 重啟網(wǎng)絡 "systemctl restart network". 這時候就可以從主機Macbook 訪問虛擬機了。
4.3關閉Linux防火墻
從上面的設置看到, 主機MacBook 的IP是 192.168.56.1, 虛擬機Linux設置了靜態(tài)地址為 192.168.56.100. 現(xiàn)在已經(jīng)在一個網(wǎng)段內(nèi)了,應該內(nèi)ping通。如果你ping不通,那很可能是防火墻的問題。 首先MacBook要關閉防火墻。
![](/d/20211016/bf2eeb06d779ebd4fed1acbc8c103c39.gif)
然后確保虛擬機Linux的也關閉防火墻,默認防火墻是開著的。
![](/d/20211016/231d8cf78d619c57f3208f07e8dac1f5.gif)
檢查一下ssh服務,默認應該是開著的
![](/d/20211016/f648aadd73b375dbd402bc2b58b7d64a.gif)
你現(xiàn)在應該能從mac的終端通過ssh登錄到linux了。
總結(jié)
以上所述是小編給大家介紹的在Mac上利用VirtualBox搭建本地虛擬機環(huán)境的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!