![尚學(xué)堂hadoop大數(shù)據(jù)培訓(xùn)Hadoop安裝配置(每一小步都寫得非常清楚)_第1頁](http://file4.renrendoc.com/view11/M00/31/14/wKhkGWWnL86Ae1SiAALbM8TYUJo844.jpg)
![尚學(xué)堂hadoop大數(shù)據(jù)培訓(xùn)Hadoop安裝配置(每一小步都寫得非常清楚)_第2頁](http://file4.renrendoc.com/view11/M00/31/14/wKhkGWWnL86Ae1SiAALbM8TYUJo8442.jpg)
![尚學(xué)堂hadoop大數(shù)據(jù)培訓(xùn)Hadoop安裝配置(每一小步都寫得非常清楚)_第3頁](http://file4.renrendoc.com/view11/M00/31/14/wKhkGWWnL86Ae1SiAALbM8TYUJo8443.jpg)
![尚學(xué)堂hadoop大數(shù)據(jù)培訓(xùn)Hadoop安裝配置(每一小步都寫得非常清楚)_第4頁](http://file4.renrendoc.com/view11/M00/31/14/wKhkGWWnL86Ae1SiAALbM8TYUJo8444.jpg)
![尚學(xué)堂hadoop大數(shù)據(jù)培訓(xùn)Hadoop安裝配置(每一小步都寫得非常清楚)_第5頁](http://file4.renrendoc.com/view11/M00/31/14/wKhkGWWnL86Ae1SiAALbM8TYUJo8445.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
北京尚學(xué)堂提供1、集群部署介紹1.1Hadoop簡介Hadoop是Apache軟件基金會旗下的一個開源分布式計算平臺。以Hadoop分布式文件系統(tǒng)〔HDFS,HadoopDistributedFilesystem〕和MapReduce〔GoogleMapReduce的開源實現(xiàn)〕為核心的Hadoop為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式根底架構(gòu)。對于Hadoop的集群來講,可以分成兩大類角色:Master和Salve。一個HDFS集群是由一個NameNode和假設(shè)干個DataNode組成的。其中NameNode作為主效勞器,管理文件系統(tǒng)的命名空間和客戶端對文件系統(tǒng)的訪問操作;集群中的DataNode管理存儲的數(shù)據(jù)。MapReduce框架是由一個單獨運(yùn)行在主節(jié)點上的JobTracker和運(yùn)行在每個集群從節(jié)點的TaskTracker共同組成的。主節(jié)點負(fù)責(zé)調(diào)度構(gòu)成一個作業(yè)的所有任務(wù),這些任務(wù)分布在不同的從節(jié)點上。主節(jié)點監(jiān)控它們的執(zhí)行情況,并且重新執(zhí)行之前的失敗任務(wù);從節(jié)點僅負(fù)責(zé)由主節(jié)點指派的任務(wù)。當(dāng)一個Job被提交時,JobTracker接收到提交作業(yè)和配置信息之后,就會將配置信息等分發(fā)給從節(jié)點,同時調(diào)度任務(wù)并監(jiān)控TaskTracker的執(zhí)行。從上面的介紹可以看出,HDFS和MapReduce共同組成了Hadoop分布式系統(tǒng)體系結(jié)構(gòu)的核心。HDFS在集群上實現(xiàn)分布式文件系統(tǒng),MapReduce在集群上實現(xiàn)了分布式計算和任務(wù)處理。HDFS在MapReduce任務(wù)處理過程中提供了文件操作和存儲等支持,MapReduce在HDFS的根底上實現(xiàn)了任務(wù)的分發(fā)、跟蹤、執(zhí)行等工作,并收集結(jié)果,二者相互作用,完成了Hadoop分布式集群的主要任務(wù)。1.2環(huán)境說明集群中包括4個節(jié)點:1個Master,3個Salve,節(jié)點之間局域網(wǎng)連接,可以相互ping通,具體集群信息可以查看"Hadoop集群〔第2期〕"。節(jié)點IP地址分布如下:
機(jī)器名稱IP地址Master.Hadoop192Salve1.Hadoop
Salve2.Hadoop
Salve3.Hadoop
四個節(jié)點上均是CentOS6.0系統(tǒng),并且有一個相同的用戶hadoop。Master機(jī)器主要配置NameNode和JobTracker的角色,負(fù)責(zé)總管分布式數(shù)據(jù)和分解任務(wù)的執(zhí)行;3個Salve機(jī)器配置DataNode和TaskTracker的角色,負(fù)責(zé)分布式數(shù)據(jù)存儲以及任務(wù)的執(zhí)行。其實應(yīng)該還應(yīng)該有1個Master機(jī)器,用來作為備用,以防止Master效勞器宕機(jī),還有一個備用馬上啟用。后續(xù)經(jīng)驗積累一定階段后補(bǔ)上一臺備用Master機(jī)器。1.3網(wǎng)絡(luò)配置Hadoop集群要按照1.2小節(jié)表格所示進(jìn)行配置,我們在"Hadoop集群〔第1期〕"的CentOS6.0安裝過程就按照提前規(guī)劃好的主機(jī)名進(jìn)行安裝和配置。如果實驗室后來人在安裝系統(tǒng)時,沒有配置好,不要緊,沒有必要重新安裝,在安裝完系統(tǒng)之后仍然可以根據(jù)后來的規(guī)劃對機(jī)器的主機(jī)名進(jìn)行修改。下面的例子我們將以Master機(jī)器為例,即主機(jī)名為"Master.Hadoop",IP為""進(jìn)行一些主機(jī)名配置的相關(guān)操作。其他的Slave機(jī)器以此為依據(jù)進(jìn)行修改。1〕查看當(dāng)前機(jī)器名稱用下面命令進(jìn)行顯示機(jī)器名稱,如果跟規(guī)劃的不一致,要按照下面進(jìn)行修改。hostname上圖中,用"hostname"查"Master"機(jī)器的名字為"Master.Hadoop",與我們預(yù)先規(guī)劃的一致。2〕修改當(dāng)前機(jī)器名稱假定我們發(fā)現(xiàn)我們的機(jī)器的主機(jī)名不是我們想要的,通過對"/etc/sysconfig/network"文件修改其中"HOSTNAME"后面的值,改成我們規(guī)劃的名稱。這個"/etc/sysconfig/network"文件是定義hostname和是否利用網(wǎng)絡(luò)的不接觸網(wǎng)絡(luò)設(shè)備的對系統(tǒng)全體定義的文件。設(shè)定形式:設(shè)定值=值"/etc/sysconfig/network"的設(shè)定工程如下:NETWORKING是否利用網(wǎng)絡(luò)GATEWAY默認(rèn)網(wǎng)關(guān)IPGATEWAYDEV默認(rèn)網(wǎng)關(guān)的接口名HOSTNAME主機(jī)名DOMAIN域名用下面命令進(jìn)行修改當(dāng)前機(jī)器的主機(jī)名〔備注:修改系統(tǒng)文件一般用root用戶〕vim/etc/sysconfig/network通過上面的命令我們從"/etc/sysconfig/network"中找到"HOSTNAME"進(jìn)行修改,查看內(nèi)容如下:3〕修改當(dāng)前機(jī)器IP假定我們的機(jī)器連IP在當(dāng)時安裝機(jī)器時都沒有配置好,那此時我們需要對"ifcfg-eth0"文件進(jìn)行配置,該文件位于"/etc/sysconfig/network-scripts"文件夾下。在這個目錄下面,存放的是網(wǎng)絡(luò)接口〔網(wǎng)卡〕的制御腳本文件〔控制文件〕,ifcfg-eth0是默認(rèn)的第一個網(wǎng)絡(luò)接口,如果機(jī)器中有多個網(wǎng)絡(luò)接口,那么名字就將依此類推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3,……。這里面的文件是相當(dāng)重要的,涉及到網(wǎng)絡(luò)能否正常工作。設(shè)定形式:設(shè)定值=值設(shè)定工程工程如下:DEVICE接口名〔設(shè)備,網(wǎng)卡〕BOOTPROTOIP的配置方法〔static:固定IP,dhcpHCP,none:手動〕HWADDRMAC地址ONBOOT系統(tǒng)啟動的時候網(wǎng)絡(luò)接口是否有效〔yes/no〕TYPE網(wǎng)絡(luò)類型〔通常是Ethemet〕NETMASK網(wǎng)絡(luò)掩碼IPADDR
IP地址IPV6INITIPV6是否有效〔yes/no〕GATEWAY默認(rèn)網(wǎng)關(guān)IP地址查看"/etc/sysconfig/network-scripts/ifcfg-eth0"內(nèi)容,如果IP不復(fù)核,就行修改。如果上圖中IP與規(guī)劃不相符,用下面命令進(jìn)行修改:vim/etc/sysconfig/network-scripts/ifcgf-eth0修改完之后可以用"ifconfig"進(jìn)行查看。4〕配置hosts文件〔必須〕"/etc/hosts"這個文件是用來配置主機(jī)將用的DNS效勞器信息,是記載LAN內(nèi)接續(xù)的各主機(jī)的對應(yīng)[HostName和IP]用的。當(dāng)用戶在進(jìn)行網(wǎng)絡(luò)連接時,首先查找該文件,尋找對應(yīng)主機(jī)名〔或域名〕對應(yīng)的IP地址。我們要測試兩臺機(jī)器之間知否連通,一般用"ping機(jī)器的IP",如果想用"ping機(jī)器的主機(jī)名"發(fā)現(xiàn)找不見該名稱的機(jī)器,解決的方法就是修改"/etc/hosts"這個文件,通過把LAN內(nèi)的各主機(jī)的IP地址和HostName的一一對應(yīng)寫入這個文件的時候,就可以解決問題。例如:機(jī)器為"Master.Hadoop:"對機(jī)器為"Salve1.Hadoop:"用命令"ping"記性連接測試。測試結(jié)果如下:從上圖中的值,直接對IP地址進(jìn)行測試,能夠ping通,但是對主機(jī)名進(jìn)行測試,發(fā)現(xiàn)沒有ping通,提示"unknownhost——未知主機(jī)",這時查看"Master.Hadoop"的"/etc/hosts"文件內(nèi)容。發(fā)現(xiàn)里面沒有"Slave1.Hadoop"內(nèi)容,故而本機(jī)器是無法對機(jī)器的主機(jī)名為"Slave1.Hadoop"解析。在進(jìn)行Hadoop集群配置中,需要在"/etc/hosts"文件中添加集群中所有機(jī)器的IP與主機(jī)名,這樣Master與所有的Slave機(jī)器之間不僅可以通過IP進(jìn)行通信,而且還可以通過主機(jī)名進(jìn)行通信。所以在所有的機(jī)器上的"/etc/hosts"文件末尾中都要添加如下內(nèi)容:Master.HadoopSlave1.HadoopSlave2.HadoopSlave3.Hadoop用以下命令進(jìn)行添加:vim/etc/hosts添加結(jié)果如下:現(xiàn)在我們在進(jìn)行對機(jī)器為"Slave1.Hadoop"的主機(jī)名進(jìn)行ping通測試,看是否能測試成功。從上圖中我們已經(jīng)能用主機(jī)名進(jìn)行ping通了,說明我們剛剛添加的內(nèi)容,在局域網(wǎng)內(nèi)能進(jìn)行DNS解析了,那么現(xiàn)在剩下的事兒就是在其余的Slave機(jī)器上進(jìn)行相同的配置。然后進(jìn)行測試?!矀渥ⅲ寒?dāng)設(shè)置SSH無密碼驗證后,可以"scp"進(jìn)行復(fù)制,然后把原來的"hosts"文件執(zhí)行覆蓋即可?!?.4所需軟件1〕JDK軟件
下載地址:rk/java/javase/index.html
JDK版本:jdk-6u31-linux-i586.bin2〕Hadoop軟件
下載地址:
Hadoop版本:hadoop-.tar.gz1.5VSFTP上傳在"Hadoop集群〔第3期〕"講了VSFTP的安裝及配置,如果沒有安裝VSFTP可以按照該文檔進(jìn)行安裝。如果安裝好了,就可以通過FlashFXP.exe軟件把我們下載的JDK6.0和Hadoop1.0軟件上傳到""效勞器上。剛剛我們用一般用戶〔hadoop〕通過FlashFXP軟件把所需的兩個軟件上傳了跟目下,我們通過命令查看下一下是否已經(jīng)上傳了。
從圖中,我們的所需軟件已經(jīng)準(zhǔn)備好了。2、SSH無密碼驗證配置Hadoop運(yùn)行過程中需要管理遠(yuǎn)端Hadoop守護(hù)進(jìn)程,在Hadoop啟動以后,NameNode是通過SSH〔SecureShell〕來啟動和停止各個DataNode上的各種守護(hù)進(jìn)程的。這就必須在節(jié)點之間執(zhí)行指令的時候是不需要輸入密碼的形式,故我們需要配置SSH運(yùn)用無密碼公鑰認(rèn)證的形式,這樣NameNode使用SSH無密碼登錄并啟動DataName進(jìn)程,同樣原理,DataNode上也能使用SSH無密碼登錄到NameNode。2.1安裝和啟動SSH協(xié)議在"Hadoop集群〔第1期〕"安裝CentOS6.0時,我們選擇了一些根本安裝包,所以我們需要兩個效勞:ssh和rsync已經(jīng)安裝了。可以通過下面命令查看結(jié)果顯示如下:rpm–qa|grepopensshrpm–qa|greprsync假設(shè)沒有安裝ssh和rsync,可以通過下面命令進(jìn)行安裝。yuminstallssh安裝SSH協(xié)議yuminstallrsync〔rsync是一個遠(yuǎn)程數(shù)據(jù)同步工具,可通過LAN/WAN快速同步多臺主機(jī)間的文件〕servicesshdrestart啟動效勞確保所有的效勞器都安裝,上面命令執(zhí)行完畢,各臺機(jī)器之間可以通過密碼驗證相互登。2.2配置Master無密碼登錄所有Salve1〕SSH無密碼原理Master〔NameNode|JobTracker〕作為客戶端,要實現(xiàn)無密碼公鑰認(rèn)證,連接到效勞器Salve〔DataNode|Tasktracker〕上時,需要在Master上生成一個密鑰對,包括一個公鑰和一個私鑰,而后將公鑰復(fù)制到所有的Slave上。當(dāng)Master通過SSH連接Salve時,Salve就會生成一個隨機(jī)數(shù)并用Master的公鑰對隨機(jī)數(shù)進(jìn)行加密,并發(fā)送給Master。Master收到加密數(shù)之后再用私鑰解密,并將解密數(shù)回傳給Slave,Slave確認(rèn)解密數(shù)無誤之后就允許Master進(jìn)行連接了。這就是一個公鑰認(rèn)證過程,其間不需要用戶手工輸入密碼。重要過程是將客戶端Master復(fù)制到Slave上。2〕Master機(jī)器上生成密碼對
在Master節(jié)點上執(zhí)行以下命令:ssh-keygen–trsa–P''這條命是生成其無密碼密鑰對,詢問其保存路徑時直接回車采用默認(rèn)路徑。生成的密鑰對:id_rsa和id_rsa.pub,默認(rèn)存儲在"/home/hadoop/.ssh"目錄下。查看"/home/hadoop/"下是否有".ssh"文件夾,且".ssh"文件下是否有兩個剛生產(chǎn)的無密碼密鑰對。接著在Master節(jié)點上做如下配置,把id_rsa.pub追加到授權(quán)的key里面去。cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys在驗證前,需要做兩件事兒。第一件事兒是修改文件"authorized_keys"權(quán)限〔權(quán)限的設(shè)置非常重要,因為不平安的設(shè)置平安設(shè)置,會讓你不能使用RSA功能〕,另一件事兒是用root用戶設(shè)置"/etc/ssh/sshd_config"的內(nèi)容。使其無密碼登錄有效。1〕修改文件"authorized_keys"chmod600~/.ssh/authorized_keys備注:如果不進(jìn)行設(shè)置,在驗證時,扔提示你輸入密碼,在這里花費了將近半天時間來查找原因。在網(wǎng)上查到了幾篇不錯的文章,把作為"Hadoop集群_第5期副刊_JDK和SSH無密碼配置"來幫助額外學(xué)習(xí)之用。2〕設(shè)置SSH配置用root用戶登錄效勞器修改SSH配置文件"/etc/ssh/sshd_config"的以下內(nèi)容。RSAAuthenticationyes#啟用RSA認(rèn)證PubkeyAuthenticationyes#啟用公鑰私鑰配對認(rèn)證方式AuthorizedKeysFile.ssh/authorized_keys#公鑰文件路徑〔和上面生成的文件同〕設(shè)置完之后記得重啟SSH效勞,才能使剛剛設(shè)置有效。servicesshdrestart退出root登錄,使用hadoop普通用戶驗證是否成功。sshlocalhost從上圖中得知無密碼登錄本級已經(jīng)設(shè)置完畢,接下來的事兒是把公鑰復(fù)制所有的Slave機(jī)器上。使用下面的命令格式進(jìn)行復(fù)制公鑰:scp~/.ssh/id_rsa.pub遠(yuǎn)程用戶名@遠(yuǎn)程效勞器IP:~/例如:scp~/.ssh/id_rsa.pubhadoop@:~/上面的命令是復(fù)制文件"id_rsa.pub"到效勞器IP為"192"的用戶為"hadoop"的"/home/hadoop/"下面。下面就針對IP為""的Slave1.Hadoop的節(jié)點進(jìn)行配置。1〕把Master.Hadoop上的公鑰復(fù)制到Slave1.Hadoop上從上圖中我們得知,已經(jīng)把文件"id_rsa.pub"傳過去了,因為并沒有建立起無密碼連接,所以在連接時,仍然要提示輸入輸入Slave1.Hadoop效勞器用戶hadoop的密碼。為了確保確實已經(jīng)把文件傳過去了,用SecureCRT登錄Slave1.Hadoop:效勞器,查看"/home/hadoop/"下是否存在這個文件。從上面得知我們已經(jīng)成功把公鑰復(fù)制過去了。2〕在"/home/hadoop/"下創(chuàng)立".ssh"文件夾這一步并不是必須的,如果在Slave1.Hadoop的"/home/hadoop"已經(jīng)存在就不需要創(chuàng)立了,因為我們之前并沒有對Slave機(jī)器做過無密碼登錄配置,所以該文件是不存在的。用下面命令進(jìn)行創(chuàng)立。〔備注:用hadoop登錄系統(tǒng),如果不涉及系統(tǒng)文件修改,一般情況下都是用我們之前建立的普通用戶hadoop進(jìn)行執(zhí)行命令。〕mkdir~/.ssh然后是修改文件夾".ssh"的用戶權(quán)限,把他的權(quán)限修改為"700",用下面命令執(zhí)行:chmod700~/.ssh備注:如果不進(jìn)行,即使你按照前面的操作設(shè)置了"authorized_keys"權(quán)限,并配置了"/etc/ssh/sshd_config",還重啟了sshd效勞,在Master能用"sshlocalhost"進(jìn)行無密碼登錄,但是對Slave1.Hadoop進(jìn)行登錄仍然需要輸入密碼,就是因為".ssh"文件夾的權(quán)限設(shè)置不對。這個文件夾".ssh"在配置SSH無密碼登錄時系統(tǒng)自動生成時,權(quán)限自動為"700",如果是自己手動創(chuàng)立,它的組權(quán)限和其他權(quán)限都有,這樣就會導(dǎo)致RSA無密碼遠(yuǎn)程登錄失敗。比照上面兩張圖,發(fā)現(xiàn)文件夾".ssh"權(quán)限已經(jīng)變了。3〕追加到授權(quán)文件"authorized_keys"到目前為止Master.Hadoop的公鑰也有了,文件夾".ssh"也有了,且權(quán)限也修改了。這一步就是把Master.Hadoop的公鑰追加到Slave1.Hadoop的授權(quán)文件"authorized_keys"中去。使用下面命令進(jìn)行追加并修改"authorized_keys"文件權(quán)限:cat~/id_rsa.pub>>~/.ssh/authorized_keyschmod600~/.ssh/authorized_keys4〕用root用戶修改"/etc/ssh/sshd_config"具體步驟參考前面Master.Hadoop的"設(shè)置SSH配置",具體分為兩步:第1是修改配置文件;第2是重啟SSH效勞。5〕用Master.Hadoop使用SSH無密碼登錄Slave1.Hadoop當(dāng)前面的步驟設(shè)置完畢,就可以使用下面命令格式進(jìn)行SSH無密碼登錄了。ssh遠(yuǎn)程效勞器IP從上圖我們主要3個地方,第1個就是SSH無密碼登錄命令,第2、3個就是登錄前后"@"后面的機(jī)器名變了,由"Master"變?yōu)榱?Slave1",這就說明我們已經(jīng)成功實現(xiàn)了SSH無密碼登錄了。最后記得把"/home/hadoop/"目錄下的"id_rsa.pub"文件刪除掉。rm–r~/id_rsa.pub到此為止,我們經(jīng)過前5步已經(jīng)實現(xiàn)了從"Master.Hadoop"到"Slave1.Hadoop"SSH無密碼登錄,下面就是重復(fù)上面的步驟把剩余的兩臺〔Slave2.Hadoop和Slave3.Hadoop〕Slave效勞器進(jìn)行配置。這樣,我們就完成了"配置Master無密碼登錄所有的Slave效勞器"。2.3配置所有Slave無密碼登錄Master和Master無密碼登錄所有Slave原理一樣,就是把Slave的公鑰追加到Master的".ssh"文件夾下的"authorized_keys"中,記得是追加〔>>〕。為了說明情況,我們現(xiàn)在就以"Slave1.Hadoop"無密碼登錄"Master.Hadoop"為例,進(jìn)行一遍操作,也算是穩(wěn)固一下前面所學(xué)知識,剩余的"Slave2.Hadoop"和"Slave3.Hadoop"就按照這個例如進(jìn)行就可以了。首先創(chuàng)立"Slave1.Hadoop"自己的公鑰和私鑰,并把自己的公鑰追加到"authorized_keys"文件中。用到的命令如下:ssh-keygen–trsa–P''cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys接著是用命令"scp"復(fù)制"Slave1.Hadoop"的公鑰"id_rsa.pub"到"Master.Hadoop"的"/home/hadoop/"目錄下,并追加到"Master.Hadoop"的"authorized_keys"中。1〕在"Slave1.Hadoop"效勞器的操作用到的命令如下:scp~/.ssh/id_rsa.pub
hadoop@:~/2〕在"Master.Hadoop"效勞器的操作用到的命令如下:cat~/id_rsa.pub>>~/.ssh/authorized_keys然后刪除掉剛剛復(fù)制過來的"id_rsa.pub"文件。最后是測試從"Slave1.Hadoop"到"Master.Hadoop"無密碼登錄。從上面結(jié)果中可以看到已經(jīng)成功實現(xiàn)了,再試下從"Master.Hadoop"到"Slave1.Hadoop"無密碼登錄。至此"Master.Hadoop"與"Slave1.Hadoop"之間可以互相無密碼登錄了,剩下的就是按照上面的步驟把剩余的"Slave2.Hadoop"和"Slave3.Hadoop"與"Master.Hadoop"之間建立起無密碼登錄。這樣,Master能無密碼驗證登錄每個Slave,每個Slave也能無密碼驗證登錄到Master。3、Java環(huán)境安裝所有的機(jī)器上都要安裝JDK,現(xiàn)在就先在Master效勞器安裝,然后其他效勞器按照步驟重復(fù)進(jìn)行即可。安裝JDK以及配置環(huán)境變量,需要以"root"的身份進(jìn)行。3.1安裝JDK首先用root身份登錄"Master.Hadoop"后在"/usr"下創(chuàng)立"java"文件夾,再把用FTP上傳到"/home/hadoop/"下的"jdk-6u31-linux-i586.bin"復(fù)制到"/usr/java"文件夾中。mkdir/usr/javacp/home/hadoop/jdk-6u31-linux-i586.bin/usr/java接著進(jìn)入"/usr/java"目錄下通過下面命令使其JDK獲得可執(zhí)行權(quán)限,并安裝JDK。chmod
+x
jdk-6u31-linux-i586.bin./jdk-6u31-linux-i586.bin按照上面幾步進(jìn)行操作,最后點擊"Enter"鍵開始安裝,安裝完會提示你按"Enter"鍵退出,然后查看"/usr/java"下面會發(fā)現(xiàn)多了一個名為"jdk_31"文件夾,說明我們的JDK安裝結(jié)束,刪除"jdk-6u31-linux-i586.bin"文件,進(jìn)入下一個"配置環(huán)境變量"環(huán)節(jié)。3.2配置環(huán)境變量編輯"/etc/profile"文件,在后面添加Java的"JAVA_HOME"、"CLASSPATH"以及"PATH"內(nèi)容。1〕編輯"/etc/profile"文件vim
/etc/profile2〕添加Java環(huán)境變量在"/etc/profile"文件的尾部添加以下內(nèi)容:#setjavaenvironmentexportJAVA_HOME=/usr/java/jdk_31/exportJRE_HOME=/usr/java/jdk_31/jreexportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin或者#setjavaenvironmentexportJAVA_HOME=/usr/java/jdk_31exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexportPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
以上兩種意思一樣,那么我們就選擇第2種來進(jìn)行設(shè)置。3〕使配置生效保存并退出,執(zhí)行下面命令使其配置立即生效。source/etc/profile3.3驗證安裝成功配置完畢并生效后,用下面命令判斷是否成功。java-version從上圖中得知,我們以確定JDK已經(jīng)安裝成功。3.4安裝剩余機(jī)器這時用普通用戶hadoop通過下面命令格式把"Master.Hadoop"文件夾"/home/hadoop/"的JDK復(fù)制到其他Slave的"/home/hadoop/"下面,剩下的事兒就是在其余的Slave效勞器上按照上圖的步驟安裝JDK。scp/home/hadoop/jdk-6u31-linux-i586.bin遠(yuǎn)程用戶名@遠(yuǎn)程效勞器IP:~/或者scp~/jdk-6u31-linux-i586.bin遠(yuǎn)程用戶名@遠(yuǎn)程效勞器IP:~/備注:"~"代表當(dāng)前用戶的主目錄,當(dāng)前用戶為hadoop,所以"~"代表"/home/hadoop"。例如:把JDK從"Master.Hadoop"復(fù)制到"Slave1.Hadoop"的命令如下。scp~/jdk-6u31-linux-i586hadoop@:~/然后查看"Slave1.Hadoop"的"/home/hadoop"查看是否已經(jīng)復(fù)制成功了。從上圖中得知,我們已經(jīng)成功復(fù)制了,現(xiàn)在我們就用最高權(quán)限用戶root進(jìn)行安裝了。其他的與這個一樣。4、Hadoop集群安裝所有的機(jī)器上都要安裝hadoop,現(xiàn)在就先在Master效勞器安裝,然后其他效勞器按照步驟重復(fù)進(jìn)行即可。安裝和配置hadoop需要以"root"的身份進(jìn)行。4.1安裝hadoop首先用root用戶登錄"Master.Hadoop"機(jī)器,查看我們之前用FTP上傳至"/home/Hadoop"上傳的"hadoop-.tar.gz"。接著把"hadoop-.tar.gz"復(fù)制到"/usr"目錄下面。cp/home/hadoop/hadoop-.tar.gz/usr下一步進(jìn)入"/usr"目錄下,用下面命令把"hadoop-.tar.gz"進(jìn)行解壓,并將其命名為"hadoop",把該文件夾的讀權(quán)限分配給普通用戶hadoop,然后刪除""安裝包。cd/usr#進(jìn)入"/usr"目錄tar–zxvfhadoop-.tar.gz#解壓""安裝包mvhadoop-hadoop#將"hadoop-1.0.0"文件夾重命名"hadoop"chown
–R
hadoop:hadoophadoop#將文件夾"hadoop"讀權(quán)限分配給hadoop用戶rm–rfhadoop-.tar.gz
#刪除""安裝包解壓后,并重命名。把"/usr/hadoop"讀權(quán)限分配給hadoop用戶〔非常重要〕刪除"hadoop-.tar.gz"安裝包最后在"/usr/hadoop"下面創(chuàng)立tmp文件夾,把Hadoop的安裝路徑添加到"/etc/profile"中,修改"/etc/profile"文件〔配置java環(huán)境變量的文件〕,將以下語句添加到末尾,并使其有效:#sethadooppathexportHADOOP_HOME=/usr/hadoopexportPATH=$PATH:$HADOOP_HOME/bin1〕在"/usr/hadoop"創(chuàng)立"tmp"文件夾mkdir/usr/hadoop/tmp2〕配置"/etc/profile"vim/etc/profile配置后的文件如下:3〕重啟"/etc/profile"source/etc/profile4.2配置hadoop1〕配置hadoop-env.sh該"hadoop-env.sh"文件位于"/usr/hadoop/conf"目錄下。在文件的末尾添加下面內(nèi)容。#setjavaenvironmentexportJAVA_HOME=/usr/java/jdk_31Hadoop配置文件在conf目錄下,之前的版本的配置文件主要是Hadoop-default.xml和Hadoop-site.xml。由于Hadoop開展迅速,代碼量急劇增加,代碼開發(fā)分為了core,hdfs和map/reduce三局部,配置文件也被分成了三個core-site.xml、hdfs-site.xml、mapred-site.xml。core-site.xml和hdfs-site.xml是站在HDFS角度上配置文件;core-site.xml和mapred-site.xml是站在MapReduce角度上配置文件。2〕配置core-site.xml文件修改Hadoop核心配置文件core-site.xml,這里配置的是HDFS的地址和端口號。<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
〔備注:請先在/usr/hadoop目錄下建立tmp文件夾〕
<description>Abaseforothertemporarydirectories.</description>
</property><!--filesystemproperties-->
<property>
<name></name>
<value>hdfs://:9000</value>
</property></configuration>備注:如沒有配置hadoop.tmp.dir參數(shù),此時系統(tǒng)默認(rèn)的臨時目錄為:/tmp/hadoo-hadoop。而這個目錄在每次重啟后都會被干掉,必須重新執(zhí)行format才行,否那么會出錯。
用下面命令進(jìn)行編輯:
編輯結(jié)果顯示如下:3〕配置hdfs-site.xml文件修改Hadoop中HDFS的配置,配置的備份方式默認(rèn)為3。<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
(備注:replication是數(shù)據(jù)副本數(shù)量,默認(rèn)為3,salve少于3臺就會報錯)
</property><configuration>用下面命令進(jìn)行編輯:編輯結(jié)果顯示如下:4〕配置mapred-site.xml文件修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。<configuration>
<property>
<name>mapred.job.tracker</name>
<value>://:9001</value>
</property></configuration>用下面命令進(jìn)行編輯:編輯結(jié)果顯示如下:5〕配置masters文件有兩種方案:
〔1〕第一種
修改localhost為Master.Hadoop
〔2〕第二種為保險起見,啟用第二種,因為萬一忘記配置"/etc/hosts"局域網(wǎng)的DNS失效,這樣就會出現(xiàn)意想不到的錯誤,但是一旦IP配對,網(wǎng)絡(luò)暢通,就能通過IP找到相應(yīng)主機(jī)。用下面命令進(jìn)行修改:編輯結(jié)果顯示如下:6〕配置slaves文件〔Master主機(jī)特有〕
有兩種方案:
〔1〕第一種去掉"localhost",每行只添加一個主機(jī)名,把剩余的Slave主機(jī)名都填上。
例如:添加形式如下Slave1.HadoopSlave2.HadoopSlave3.Hadoop
〔2〕第二種
去掉"localhost",參加集群中所有Slave機(jī)器的IP,也是每行一個。
例如:添加形式如下原因和添加"masters"文件一樣,選擇第二種方式。用下面命令進(jìn)行修改:編輯結(jié)果如下:現(xiàn)在在Master機(jī)器上的Hadoop配置就結(jié)束了,剩下的就是配置Slave機(jī)器上的Hadoop。一種方式是按照上面的步驟,把Hadoop的安裝包在用普通用戶hadoop通過"scp"復(fù)制到其他機(jī)器的"/home/hadoop"目錄下,然后根據(jù)實際情況進(jìn)行安裝配置,除了第6步,那是Master特有的。用下面命令格式進(jìn)行?!矀渥ⅲ捍藭r切換到普通用戶hadoop〕scp~/hadoop-.tar.gzhadoop@效勞器IP:~/
例如:從"Master.Hadoop"到"Slave1.Hadoop"復(fù)制Hadoop的安裝包。另一種方式是將Master上配置好的hadoop所在文件夾"/usr/hadoop"復(fù)制到所有的Slave的"/usr"目錄下〔實際上Slave機(jī)器上的slavers文件是不必要的,復(fù)制了也沒問題〕。用下面命令格式進(jìn)行?!矀渥ⅲ捍藭r用戶可以為hadoop也可以為root〕scp
-r
/usr/hadoop
root@效勞器IP:/usr/
例如:從"Master.Hadoop"到"Slave1.Hadoop"復(fù)制配置Hadoop的文件。
上圖中以root用戶進(jìn)行復(fù)制,當(dāng)然不管是用戶root還是hadoop,雖然Master機(jī)器上的"/usr/hadoop"文件夾用戶hadoop有權(quán)限,但是Slave1上的hadoop用戶卻沒有"/usr"權(quán)限,所以沒有創(chuàng)立文件夾的權(quán)限。所以無論是哪個用戶進(jìn)行拷貝,右面都是"root@機(jī)器IP"格式。因為我們只是建立起了hadoop用戶的SSH無密碼連接,所以用root進(jìn)行"scp"時,扔提示讓你輸入"Slave1.Hadoop"效勞器用戶root的密碼。
查看"Slave1.Hadoop"效勞器的"/usr"目錄下是否已經(jīng)存在"hadoop"文件夾,確認(rèn)已經(jīng)復(fù)制成功。查看結(jié)果如下:從上圖中知道,hadoop文件夾確實已經(jīng)復(fù)制了,但是我們發(fā)現(xiàn)hadoop權(quán)限是root,所以我們現(xiàn)在要給"Slave1.Hadoop"效勞器上的用戶hadoop添加對"/usr/hadoop"讀權(quán)限。以root用戶登錄"Slave1.Hadoop",執(zhí)行下面命令。chown
-R
hadoop:hadoop〔用戶名:用戶組〕hadoop〔文件夾〕接著在"Slave1.Hadoop"上修改"/etc/profile"文件〔配置java環(huán)境變量的文件〕,將以下語句添加到末尾,并使其有效〔source/etc/profile〕:#sethadoopenvironmentexportHADOOP_HOME=/usr/hadoopexportPATH=$PATH:$HADOOP_HOME/bin如果不知道怎么設(shè)置,可以查看前面"Master.Hadoop"機(jī)器的"/etc/profile"文件的配置,到此為此在一臺Slave機(jī)器上的Hadoop配置就結(jié)束了。剩下的事兒就是照葫蘆畫瓢把剩余的幾臺Slave機(jī)器按照《從"Master.Hadoop"到"Slave1.Hadoop"復(fù)制Hadoop的安裝包?!愤@個例子進(jìn)行部署Hadoop。4.3啟動及驗證1〕格式化HDFS文件系統(tǒng)在"Master.Hadoop"上使用普通用戶hadoop進(jìn)行操作?!矀渥ⅲ褐恍枰淮?,下次啟動不再需要格式化,只需start-all.sh〕hadoopnamenode-format某些書上和網(wǎng)上的某些資料中用下面命令執(zhí)行。我們在看好多文檔包括有些書上,按照他們的hadoop環(huán)境變量進(jìn)行配置后,并立即使其生效,但是執(zhí)行發(fā)現(xiàn)沒有找見"bin/hadoop"這個命令。其實我們會發(fā)現(xiàn)我們的環(huán)境變量配置的是"$HADOOP_HOME/bin",我們已經(jīng)把bin包含進(jìn)入了,所以執(zhí)行時,加上"bin"反而找不到該命令,除非我們的hadoop壞境變量如下設(shè)置。#sethadooppathexportHADOOP_HOME=/usr/hadoopexportPATH=$PATH:
$HADOOP_HOME
:$HADOOP_HOME/bin這樣就能直接使用"bin/hadoop"也可以直接使用"hadoop",現(xiàn)在不管哪種情況,hadoop命令都能找見了。我們也沒有必要重新在設(shè)置hadoop環(huán)境變量了,只需要記住執(zhí)行Hadoop命令時不需要在前面加"bin"就可以了。從上圖中知道我們已經(jīng)成功格式話了,但是美中缺乏就是出現(xiàn)了一個警告,從網(wǎng)上的得知這個警告并不影響hadoop執(zhí)行,但是也有方法解決,詳情看后面的"常見問題FAQ"。2〕啟動hadoop在啟動前關(guān)閉集群中所有機(jī)器的防火墻,不然會出現(xiàn)datanode開后又自動關(guān)閉。serviceiptablesstop使用下面命令啟動。start-all.sh執(zhí)行結(jié)果如下:可以通過以下啟動日志看出,首先啟動namenode接著啟動datanode1,datanode2,…,然后啟動secondarynamenode。再啟動jobtracker,然后啟動tasktracker1,tasktracker2,…。啟動hadoop成功后,在Master中的tmp文件夾中生成了dfs文件夾,在Slave中的tmp文件夾中均生成了dfs文件夾和mapred文件夾。查看Master中"/usr/hadoop/tmp"文件夾內(nèi)容查看Slave1中"/usr/hadoop/tmp"文件夾內(nèi)容。3〕驗證hadoop〔1〕驗證方法一:用"jps"命令在Master上用java自帶的小工具jps查看進(jìn)程。在Slave1上用jps查看進(jìn)程。如果在查看Slave機(jī)器中發(fā)現(xiàn)"DataNode"和"TaskTracker"沒有起來時,先查看一下日志的,如果是"namespaceID"不一致問題,采用"常見問題FAQ6.2"進(jìn)行解決,如果是"Noroutetohost"問題,采用"常見問題FAQ6.3"進(jìn)行解決。〔2〕驗證方式二:用"hadoopdfsadmin-report"用這個命令可以查看Hadoop集群的狀態(tài)。Master效勞器的狀態(tài):Slave效勞器的狀態(tài)4.4網(wǎng)頁查看集群1〕訪問"::50030"2〕訪問"::50070"5、常見問題FAQ5.1關(guān)于Warning:$HADOOP_HOMEisdeprecated.hadoo版本,安裝完之后敲入hadoop命令時,老是提示這個警告:Warning:$HADOOP_HOMEisdeprecated.經(jīng)查hadoop-/bin/hadoop腳本和"hadoop-config.sh"腳本,發(fā)現(xiàn)腳本中對HADOOP_HOME的環(huán)境變量設(shè)置做了判斷,筆者的環(huán)境根本不需要設(shè)置HADOOP_HOME環(huán)境變量。解決方案一:編輯"/etc/profile"文件,去掉HADOOP_HOME的變量設(shè)定,重新輸入hadoopfs命令,警告消失。解決方案二:編輯"/etc/profile"文件,添加一個環(huán)境變量,之后警告消失:exportHADOOP_HOME_WARN_SUPPRESS=1解決方案三:編輯"hadoop-config.sh"文件,把下面的"if-fi"功能注釋掉。我們這里本著不動Hadoop原配置文件的前提下,采用"方案二",在"/etc/profile"文件添加上面內(nèi)容,并用命令"source/etc/profile"使之有效。1〕切換至root用戶2〕添加內(nèi)容3〕重新生效5.2解決"nodatanodetostop"問題當(dāng)我停止Hadoop時發(fā)現(xiàn)如下信息:原因:每次namenodeformat會重新創(chuàng)立一個namenodeId,而tmp/dfs/data下包含了上次format下的id,namenodeformat清空了namenode下的數(shù)據(jù),但是沒有清空datanode下的數(shù)據(jù),導(dǎo)致啟動時失敗,所要做的就是每次fotmat前,清空tmp一下的所有目錄。第一種解決方案如下:1〕先刪除"/usr/hadoop/tmp"rm-rf/usr/hadoop/tmp2〕創(chuàng)立"/usr/hadoop/tmp"文件夾mkdir/usr/hadoop/tmp3〕刪除"/tmp"下以"hadoop"開頭文件rm-rf/tmp/hadoop*4〕重新格式化hadoophadoopnamenode-format5〕啟動hadoopstart-all.sh使用第一種方案,有種不好處就是原來集群上的重要數(shù)據(jù)全沒有了。假設(shè)說Hadoop集群已經(jīng)運(yùn)行了一段時間。建議采用第二種。第二種方案如下:1〕修改每個Slave的namespaceID使其與Master的namespaceID一致?;蛘?〕修改Master的namespaceID使其與Slave的namespaceID一致。該"namespaceID"位于"/usr/hadoop/tmp/dfs/data/current/VERSION"文件中,前面藍(lán)色的可能根據(jù)實際情況變化,但后面紅色是不變的。例如:查看"Master"下的"VERSION"文件本人建議采用第二種,這樣方便快捷,而且還能防止誤刪。5.3Slave效勞器中datanode啟動后又自動關(guān)閉查看日志發(fā)下如下錯誤。ERROR
org.apache.hadoop.hdfs.server.datanode.DataNode:java.io.IOException:Callto...failedonlocalexception:.NoRouteToHostException:
Noroutetohost解決方案是:關(guān)閉防火墻serviceiptablesstop5.4從本地往hdfs文件系統(tǒng)上傳文件出現(xiàn)如下錯誤:INFOhdfs.DFSClient:ExceptionincreateBlockOutputStreamjava.io.IOException:
BadconnectackwithfirstBadLinkWARNhdfs.DFSClient:DataStreamerException:java.io.IOException:
Unabletocreatenewblock.解決方案是:1〕關(guān)閉防火墻serviceiptablesstop2〕禁用selinux
編輯"/etc/selinux/config"文件,設(shè)置"SELINUX=disabled"5.5平安模式導(dǎo)致的錯誤出現(xiàn)如下錯誤:org.apache.hadoop.dfs.SafeModeException:
Cannotdelete...,Namenodeisinsafemode在分布式文件系統(tǒng)啟動的時候,開始的時候會有平安模式,當(dāng)分布式文件系統(tǒng)處于平安模式的情況下,文件系統(tǒng)中的內(nèi)容不允許修改也不允許刪除,直到平安模式結(jié)束。平安模式主要是為了系統(tǒng)啟動的時候檢查各個DataNode上數(shù)據(jù)塊的有效性,同時根據(jù)策略必要的復(fù)制或者刪除局部數(shù)據(jù)塊。運(yùn)行期通過命令也可以進(jìn)入平安模式。在實踐過程中,系統(tǒng)啟動的時候去修改和刪除文件也會有平安模式不允許修改的出錯提示,只需要等待一會兒即可。解決方案是:關(guān)閉平安模式hadoopdfsadmin-safemodeleave5.6解決ExceededMAX_FAILED_UNIQUE_FETCHES出現(xiàn)錯誤如下:ShuffleError:ExceededMAX_FAILED_UNIQUE_FETCHES;bailing-out程序里面需要翻開多個文件,進(jìn)行分析,系統(tǒng)一般默認(rèn)數(shù)量是1024,〔用ulimit-a可以看到〕對于正常使用是夠了,但是對于程序來講,就太少了。解決方案是:修改2個文件。1〕"/etc/security/limits.conf"vim/etc/security/limits.conf加上:softnofile102400hardnofile4096002〕"/etc/pam.d/login"vim/etc/pam.d/login添加:sessionrequired/lib/security/pam_limits.so針對第一個問題我糾正下答案:這是reduce預(yù)處理階段shuffle時獲取已完成的map的輸出失敗次數(shù)超過上限造成的,上限默認(rèn)為5。引起此問題的方式可能會有很多種,比方網(wǎng)絡(luò)連接不正常,連接超時,帶寬較差以及端口阻塞等。通常框架內(nèi)網(wǎng)絡(luò)情況較好是不會出現(xiàn)此錯誤的。5.7解決"Toomanyfetch-failures"出現(xiàn)這個問題主要是結(jié)點間的連通不夠全面。解決方案是:1〕檢查"/etc/hosts"要求本機(jī)ip對應(yīng)效勞器名要求要包含所有的效勞器ip+效勞器名2〕檢查".ssh/authorized_keys"要求包含所有效勞器〔包括其自身〕的publickey5.8處理速度特別的慢出現(xiàn)map很快,但是reduce很慢,而且反復(fù)出現(xiàn)"reduce=0%"。解決方案如下:結(jié)合解決方案5.7,然后修改"conf/hadoop-env.sh"中的"exportHADOOP_HEAPSIZE=4000"5.9解決hadoopOutOfMemoryError問題出現(xiàn)這種異常,明顯是jvm內(nèi)存不夠得原因。解決方案如下:要修改所有的datanode的jvm內(nèi)存大小。Java–Xms1024m-Xmx4096m一般jvm的最大內(nèi)存使用應(yīng)該為總內(nèi)存大小的一半,我們使用的8G內(nèi)存,所以設(shè)置為4096m,這一值可能依舊不是最優(yōu)的值。5.10Namenodeinsafemode解決方案如下:bin/hadoopdfsadmin-safemodeleave5.11IO寫操作出現(xiàn)問題.SocketTimeoutException:480000millistimeoutwhilewaitingforchanneltobereadyforwrite.ch:java.nio.channels.SocketChannel[connectedlocal=/65:50010remote=/65:50930]at.SocketIOWithTimeout.waitForIO(SocketIOWithTimeout.java:185)at.SocketOutputStream.waitForWritable(SocketOutputStream.java:159)……Itseemstherearemanyreasonsthatitcantimeout,theexamplegiveninHADOOP-3831isaslowreadingclient.
解決方案如下:在hadoop-site.xml中設(shè)置dfs.datanode.socket.write.timeout=05.12statusof255error錯誤類型:java.io.IOException:Taskprocessexitwithnonzerostatusof255.atorg.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:424)錯誤原因:Setervalandmapred.userlog.retain.hourstohighervalue.Bydefault,theirvaluesare24hours.Thesemightbethereasonforfailure,thoughI'mnotsurerestart.解決方案如下:單個datanode如果一個datanode出現(xiàn)問題,解決之后需要重新參加cluster而不重啟cluster,方法如下:bin/hadoop-daemon.shstartdatanodebin/hadoop-daemon.shstartjobtracker6、用到的Linux命令6.1chmod命令詳解使用權(quán)限:所有使用者使用方式:chmod[-cfvR][--help][--version]modefile...說明:Linux/Unix的檔案存取權(quán)限分為三級:檔案擁有者、群組、其他。利用chmod可以藉以控制檔案如何被他人所存取。mode:權(quán)限設(shè)定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中u表示該檔案的擁有者,g表示與該檔案的擁有者屬于同一個群體(group)者,o表示其他以外的人,a表示這三者皆是。+表示增加權(quán)限、-表示取消權(quán)限、=表示唯一設(shè)定權(quán)限。r表示可讀取,w表示可寫入,x表示可執(zhí)行,X表示只有當(dāng)該檔案是個子目錄或者該檔案已經(jīng)被設(shè)定過為可執(zhí)行。-c:假設(shè)該檔案權(quán)限確實已經(jīng)更改,才顯示其更改動作-f:假設(shè)該檔案權(quán)限無法被更改也不要顯示錯誤訊息-v:顯示權(quán)限變更的詳細(xì)資料-R:對目前目錄下的所有檔案與子目錄進(jìn)行相同的權(quán)限變更(即以遞回的方式逐個變更)--help:顯示輔助說明--version:顯示版本
范例:將檔案file1.txt設(shè)為所有人皆可讀取chmodugo+rfile1.txt將檔案file1.txt設(shè)為所有人皆可讀取chmoda+rfile1.txt將檔案file1.txt與file2.txt設(shè)為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人那么不可寫入chmodug+w,o-wfile1.txtfile2.txt將ex1.py設(shè)定為只有該檔案擁有者可以執(zhí)行chmodu+xex1.py將目前目錄下的所有檔案與子目錄皆設(shè)為任何人可讀取chmod-Ra+r*此外chmod也可以用數(shù)字來表示權(quán)限如chmod777file語法為:chmodabcfile其中a,b,c各為一個數(shù)字,分別表示User、Group、及Other的權(quán)限。r=4,w=2,x=1假設(shè)要rwx屬性那么4+2+1=7;假設(shè)要rw-屬性那么4+2=6;假設(shè)要r-x屬性那么4+1=7。范例:chmoda=rwxfile和chmod777file效果相同chmodug=rwx,o=xfile和chmod771file效果相同假設(shè)用chmod4755filename可使此程式具有root的權(quán)限6.2chown命令詳解使用權(quán)限:root使用方式:chown[-cfhvR][--help][--version]user[:group]file...說明:Linux/Unix是多人多工作業(yè)系統(tǒng),所有的檔案皆有擁有者。利用chown可以將檔案的擁有者加以改變。一般來說,這個指令只有是由系統(tǒng)管理者(root)所使用,一般使用者沒有權(quán)限可以改變別人的檔案擁有者,也沒有權(quán)限可以自己的檔案擁有者改設(shè)為別人。只有系統(tǒng)管理者(root)才有這樣的權(quán)限。user:新的檔案擁有者的使用者IDgroup:新的檔案擁有者的使用者群體(group)-c:假設(shè)該檔案擁有者確實已經(jīng)更改,才顯示其更改動作-f:假設(shè)該檔案擁有者無法被更改也不要顯示錯誤訊息-h:只對于連結(jié)(link)進(jìn)行變更,而非該link真正指向的檔案-v:顯示擁有者變更的詳細(xì)資料-R:對目前目錄下的所有檔案與子目錄進(jìn)行相同的擁有者變更(即以遞回的方式逐個變更)--help:顯示輔助說明--version:顯示版本范例:將檔案file1.txt的擁有者設(shè)為users群體的使用者jessiechownjessie:usersfile1.txt將目前目錄下的所有檔案與子目錄的擁有者皆設(shè)為users群體的使用者lamportchown-Rlamport:users*-rw-------(600)--只有屬主有讀寫權(quán)限。-rw-r--r--(644)--只有屬主有讀寫權(quán)限;而屬組用戶和其他用戶只有讀權(quán)限。-rwx------(700)--只有屬主有讀、寫、執(zhí)行權(quán)限。-rwxr-xr-x(755)--屬主有讀、寫、執(zhí)行權(quán)限;而屬組用戶和其他用戶只有讀、執(zhí)行權(quán)限。-rwx--x--x(711)--屬主有讀、寫、執(zhí)行權(quán)限;而屬組用戶和其他用戶只有執(zhí)行權(quán)限。-rw-rw-rw-(666)--所有用戶都有文件讀、寫權(quán)限。這種做法不可取。-rwxrwxrwx(777)--所有用戶都有讀、寫、執(zhí)行權(quán)限。更不可取的做法。以下是對目錄的兩個普通設(shè)定:drwx------(700)-只有屬主可在目錄中讀、寫。drwxr-xr-x(755)-所有用戶可讀該目錄,但只有屬主才能改變目錄中的內(nèi)容sui
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度北京平面設(shè)計專員崗位勞動合同規(guī)范
- 二零二五年度智能辦公文件消毒與消毒劑供應(yīng)合同
- 2025年度辦公室移動空調(diào)租賃及智能化節(jié)能服務(wù)合同樣本
- 行業(yè)領(lǐng)先物流配送方案
- 企業(yè)借給個人借款合同
- 建設(shè)工程施工合同專用條款
- 委托平面設(shè)計合同
- 農(nóng)業(yè)生產(chǎn)資源循環(huán)利用方案
- 招投標(biāo)與合同管理試卷A
- 產(chǎn)品研發(fā)合同協(xié)議書
- 2025年上半年重慶三峽融資擔(dān)保集團(tuán)股份限公司招聘6人高頻重點提升(共500題)附帶答案詳解
- 安全閥拆除與回裝方案
- 文獻(xiàn)檢索教案
- 八年級上冊英語閱讀還原50題-含答案
- 網(wǎng)優(yōu)案例匯總
- 倉庫每日檢查記錄表倉庫每日檢查內(nèi)容及每日巡查事項
- 早產(chǎn)兒視網(wǎng)膜病變
- 矮小癥診治指南
- GB 10665-1997碳化鈣(電石)
- 《克雷洛夫寓言》專項測試題附答案
- 《中小學(xué)教育懲戒規(guī)則》重點內(nèi)容學(xué)習(xí)PPT課件(帶內(nèi)容)
評論
0/150
提交評論