1、我緣何選擇CentOS7.0vim
14年7月7日17:39:42發佈了CentOS 7.0.1406正式版,我曾使用過多款Linux,對於Hadoop2.X/YARN的環境配置緣何選擇CentOS7.0,其緣由有:centos
一、界面採用RHEL7.0新的GNOME界面風,這可不是CentOS6.5/RHEL6.5所能比的!(固然,Fedora早就採用這種風格的了,可是如今的Fedora缺包已然不成樣子了)服務器
二、曾經,我也用了RHEL7.0,它最大的問題就是YUM無法用,並且總會有Warning提示註冊購買!爲此,必須去修改YUM源,還有修改其餘的文件使之不提示才能用,看了這麼麻煩,想必有不少童鞋滴心就已經涼了4/7了吧!網絡
三、固然,Ubuntu系列我用過Ubuntu14.04/12.04和elementaryOS,不知爲什麼,一用Ubuntu14.04就以爲好醜呀!!可是有不少人都說CentOS和RHEL更醜,但卻不知哪一個纔是企業級的,那個纔是霸主。oop
另外一方面,要求視覺效果的話,建議去裝個elementaryOS試試,固然,elementaryOS也有缺陷:它已經許久沒有提供更新了,12年推出的,已逾2年不曾發佈新版本的系統,也不曾更新網站,與此同時,elementaryOS的模型Ubuntu早就更新換代了,因此,暴露了很多問題,其中麻煩的是不要隨意更新系統,不然黑屏,那就真的純命令行了,漂亮的系統忽然被打回原型,那心鐵定疤涼疤涼的,並且它更新後的apt-get是沒法安裝某些匹配某些,因此elementaryOS只供欣賞把玩!學習
四、也有人用過openSUSE,聽說是最華麗的系統,在我看來,花哨的KDE打開文件/軟件時顯示的一跳一跳的,我內心就癢癢的,沒事兒你弄個沒用又難看的東東干嗎??幹嗎??另外,最新的openSUSE對中文的設計的確沒法使人滿意。另外,就是openSUSE的環境不怎麼熟悉,歐洲人設計的GNU/Linux還有些難適應,固然,我也不打算改旗易幟向歐洲SUSE倒戈。測試
其實,GNU/Linux版本衆多,選擇一個適合本身的一款一直玩下去、用下去就足夠了,Linux版本衆多,設計各有千秋,但使用大同小異,瞭解「異」點便可!固然,仍是奉勸一句:初學者僅僅跑跑虛擬機看看效果就好,莫要將每款都用會了!畢竟,體驗也是學習的動力之一!網站
2、體驗CentOS7與以前版本的「異」spa
初次啓動命令行
裝完機後,開機進系統的界面換了,乍一看覺得是兩個內核,原來有一個是rescue選擇,並且按e後,會發現全部的grub.conf的信息全出來了,好不容易找到內核啓動的地方,寫了個 1(要進單用戶模式),而後進了rescue模式。
字符界面
進系統後,是圖形界面,想進字符界面,結果找到/etc/inittab,發現幾乎是個空文件,文件中提示想改runlevel的話,能夠把/lib/systemd/system/runlevel*.target 軟連到 /etc/systemd/system/default.target下(固然考過來,覆蓋也行),試了一下還行,能改到字符界面runlevel3。
配置網絡和主機名
而後,想配置網絡,進/etc/sysconfig/network-script/一看,我靠,網卡更名了enp1s5,好有趣,配置完網絡後改主機名, 到/etc/sysconfig/network去更名字,發現這個文件也是空的,按原6版本的去修改,重啓後沒效果,man了一下hostname, 發現7中更名要到/etc/hostname去更名字。
本地yum源和掛載
接着,想配置一個本地yum源,配上後要掛光盤,手動掛上了,而後直接echo「mount ......」到rc.local中,畢竟是啓動執行腳本,重啓以後居然沒掛上,進去rc.local中看了一下,7中居然要手動的把chmod +x rc.local, 是的,要手動加執行權限,難道我以前裝的6之前的系統中這個都要手動加執行權限,我不記得啊!!!! 固然,加了權限後,開機後啓動執行了rc.local的mount命令。
LVM和xfs
後來,想着裝一個lvm玩玩,因而啊就分區,格式化(特地格式化爲了xfs),pv,vg,lv一步一步,都沒問題,而後想着放大,縮小,這時出問題了,執行resize2fs時,怎麼一直報superblock什麼的出錯,這是怎麼回事,而後man resize2fs一下,發現這命令只支持ext的文件系統,我艹,那我裝系統是怎麼是lvm的,這個問題我還沒解決,應該有解決方法。
dhcp和服務
接着,想着裝一個dhcp玩玩,驚奇的發現全部dhcp的包裝上以後,不能service dhcpd start,而後發現/etc/init.d/中居然沒一個dhcp相似的東西,畢竟6以前有dhcpd,dhcpd6,dhcrelay的,而後發現 /sbin/dhcpd有啓動文件,難道,難道,之後的服務想service啓,都要手動本身編?錯了,是在/usr/lib/systemd/system/dhcpd.service,還要修改好多,而後加權限,執行service 服務 restart/stop。。。。。。能夠,可是指向了systemctl restart/start/stop 服務.service
iptables
又發現iptables此次也不是做爲一個服務在/etc/init.d/下面了,/sbin下有;
防火牆由iptables更換成了firewalld
3、系統配置之關閉防火牆
systemctl stop firewalld.service #中止firewall
systemctl disable firewalld.service #禁止firewall開機啓動
systemctl命令的基本操做格式是:
systemctl 動做 服務名.service
動做:start,stop,restart,status,enable,disable,is-enabled
4、配置Linux網絡
一、修改hostname
CentOS 7.0的hostname在/etc/hostname中用root用戶修改:
[root@hadoop1 ~]# vim /etc/hostname #編輯/etc/hostname [root@hadoop1 ~]# cat /etc/hostname #查看/etc/hostname hadoop1 [root@hadoop1 ~]#
之前版本的CentOS在/etc/sysconfig/network中用root用戶修改:
[root@hadoop1 ~]# vim /etcsysconfig/network
"/etc/sysconfig/network"的設定項目以下:
NETWORKING 是否利用網絡
GATEWAY 默認網關與接下來配置IP的屬性文件中默認網關一致
IPGATEWAYDEV 默認網關的接口名
HOSTNAME 主機名
DOMAIN 域名
reboot後hostname生效
二、修改當前機器的IP
Step1:進入配置文件目錄
如今已是root權限了,咱們cd到網絡配置文件的目錄,並列出目錄下的文件。
Step2:修改配置文件
該目錄下,文件名「ifcfg-ens192」文件就是網絡配置的主文件。vi它!
修改或添加一下:
ONBOOT=yes BOOTPROTO=static IPADDR=IP地址 NETMASK=255.255.255.0 #子網掩碼 GATEWAY=192.168.30.1 #網關地址
Step3:重啓網絡服務
修改完配置文件後,:wq!保存退出!而後重啓網絡。
Step4:測試
經過ifconfig命令查看ip是否設置成功,而後ping一下網絡。這個時候應該成功了!
三、修改DNS(看狀況,非必選)
若網絡環境有DNS要求,則配置,不然,勿配!
格式:
nameserver DNS地址
[root@hadoop1 ~]# vi /etc/resolv.conf nameserver 202.131.80.1 #依需求而定 nameserver 202.131.80.5 #依需求而定
四、配置hosts文件
"/etc/hosts"這個文件是用來配置主機將用的DNS服務器信息,是記載LAN內接續的各主機的對應[HostName和IP]用的。當用戶在進行網絡鏈接時,首先查找該文件,尋找對應主機名(或域名)對應的IP地址。
咱們要測試兩臺機器之間知否連通,通常用"ping 機器的IP",若是想用"ping 機器的主機名"發現找不見該名稱的機器,解決的辦法就是修改"/etc/hosts"這個文件,經過把LAN內的各主機的IP地址和HostName的一一對應寫入這個文件的時候,就能夠解決問題。
例如:機器爲"hadoop1:59.67.107.80"對機器爲"hadoop2:59.67.107.79"用命令"ping"記性鏈接測試。測試結果以下:
從上圖中的值,直接對IP地址進行測試,可以ping通,可是對主機名進行測試,若沒有ping通,提示"unknown host——未知主機",這時查看"hadoop1"的"/etc/hosts"文件內容。
若ping hadoop1不通則顯示:
若ping hadoop1通則顯示:
若發現裏面沒有"59.67.107.79 hadoop2"內容,故而本機器是沒法對機器的主機名爲"hadoop2" 解析。
在進行Hadoop集羣配置中,須要在"/etc/hosts"文件中添加集羣中全部機器的IP與主機名,這樣Master與全部的Slave機器之間不只能夠經過IP進行通訊,並且還能夠經過主機名進行通訊。因此在全部的機器上的"/etc/hosts"文件末尾中都要添加以下內容:
由於本文以已經配置好的環境說明,因此個人/etc/hosts顯示:
通常處於內網下,照此添加(192.168.1.1爲網關):
192.168.1.2 hadoop1 192.168.1.3 hadoop2 192.168.1.4 hadoop3 192.168.1.5 hadoop4
用如下命令進行添加:
vim /etc/hosts
如今咱們在進行對機器爲"hadoop2"的主機名進行ping通測試,看是否能測試成功。
從上圖中咱們已經能用主機名進行ping通了,說明咱們剛纔添加的內容,在局域網內能進行DNS解析了,那麼如今剩下的事兒就是在其他的Slave機器上進行相同的配置。而後進行測試。