centos安裝配置hadoop超詳細過程
1、叢集部署介紹
1.1 Hadoop簡介
Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的開源實現)為核心的Hadoop為使用者提供了系統底層細節透明的分散式基礎架構。
對於Hadoop的叢集來講,可以分成兩大類角色:Master和Salve。一個HDFS叢集是由一個NameNode和若干個DataNode組成的。其中NameNode作為主伺服器,管理檔案系統的名稱空間和客戶端對檔案系統的訪問操作;叢集中的DataNode管理儲存的資料。MapReduce框架是由一個單獨執行在主節點上的JobTracker和執行在每個叢集從節點的TaskTracker共同組成的。主節點負責排程構成一個作業的所有任務,這些任務分佈在不同的從節點上。主節點監控它們的執行情況,並且重新執行之前的失敗任務;從節點僅負責由主節點指派的任務。當一個Job被提交時,JobTracker接收到提交作業和配置資訊之後,就會將配置資訊等分發給從節點,同時排程任務並監控TaskTracker的執行。
從上面的介紹可以看出,HDFS和MapReduce共同組成了Hadoop分散式系統體系結構的核心。HDFS在叢集上實現分散式檔案系統,MapReduce在叢集上實現了分散式計算和任務處理。HDFS在MapReduce任務處理過程中提供了檔案操作和儲存等支援,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工作,並收集結果,二者相互作用,完成了Hadoop分散式叢集的主要任務。
1.2 環境說明
叢集中包括4個節點:1個Master,3個Salve,節點之間區域網連線,可以相互ping通,具體叢集資訊可以檢視"Hadoop叢集(第2期)"。節點IP地址分佈如下:
機器名稱 |
IP地址 |
Master.Hadoop |
192.168.1.2 |
Salve1.Hadoop |
192.168.1.3 |
Salve2.Hadoop |
192.168.1.4 |
Salve3.Hadoop |
192.168.1.5 |
四個節點上均是CentOS6.0系統,並且有一個相同的使用者hadoop。Master機器主要配置NameNode和JobTracker的角色,負責總管分散式資料和分解任務的執行;3個Salve機器配置DataNode和TaskTracker的角色,負責分散式資料儲存以及任務的執行。其實應該還應該有1個Master機器,用來作為備用
1.3 網路配置
Hadoop叢集要按照1.2小節表格所示進行配置,我們在"Hadoop叢集(第1期)"的CentOS6.0安裝過程就按照提前規劃好的主機名進行安裝和配置。如果實驗室後來人在安裝系統時,沒有配置好,不要緊,沒有必要重新安裝,在安裝完系統之後仍然可以根據後來的規劃對機器的主機名進行修改。
下面的例子我們將以Master機器為例,即主機名為"Master.Hadoop",IP為"192.168.1.2"進行一些主機名配置的相關操作。其他的Slave機器以此為依據進行修改。
1)檢視當前機器名稱
用下面命令進行顯示機器名稱,如果跟規劃的不一致,要按照下面進行修改。
hostname
上圖中,用"hostname"查"Master"機器的名字為"Master.Hadoop",與我們預先規劃的一致。
2)修改當前機器名稱
假定我們發現我們的機器的主機名不是我們想要的,通過對"/etc/sysconfig/network"檔案修改其中"HOSTNAME"後面的值,改成我們規劃的名稱。
這個"/etc/sysconfig/network"檔案是定義hostname和是否利用網路的不接觸網路裝置的對系統全體定義的檔案。
設定形式:設定值=值
"/etc/sysconfig/network"的設定專案如下:
NETWORKING 是否利用網路
GATEWAY 預設閘道器
IPGATEWAYDEV 預設閘道器的介面名
HOSTNAME 主機名
DOMAIN 域名
用下面命令進行修改當前機器的主機名(備註:修改系統檔案一般用root使用者)
vim /etc/sysconfig/network
通過上面的命令我們從"/etc/sysconfig/network"中找到"HOSTNAME"進行修改,檢視內容如下:
3)修改當前機器IP
假定我們的機器連IP在當時安裝機器時都沒有配置好,那此時我們需要對"ifcfg-eth0"檔案進行配置,該檔案位於"/etc/sysconfig/network-scripts"資料夾下。
在這個目錄下面,存放的是網路介面(網絡卡)的制御指令碼檔案(控制檔案),ifcfg- eth0是預設的第一個網路介面,如果機器中有多個網路介面,那麼名字就將依此類推ifcfg-eth1,ifcfg-eth2,ifcfg- eth3,……。
這裡面的檔案是相當重要的,涉及到網路能否正常工作。
設定形式:設定值=值
設定專案專案如下:
DEVICE 介面名(裝置,網絡卡)
BOOTPROTO IP的配置方法(static:固定IP, dhcpHCP, none:手動)
HWADDR MAC地址
ONBOOT 系統啟動的時候網路介面是否有效(yes/no)
TYPE 網路型別(通常是Ethemet)
NETMASK 網路掩碼
IPADDR IP地址
IPV6INIT IPV6是否有效(yes/no)
GATEWAY 預設閘道器IP地址
檢視"/etc/sysconfig/network-scripts/ifcfg-eth0"內容,如果IP不復核,就行修改。
如果上圖中IP與規劃不相符,用下面命令進行修改:
vim /etc/sysconfig/network-scripts/ifcgf-eth0
修改完之後可以用"ifconfig"進行檢視。
4)配置hosts檔案(必須)
"/etc/hosts"這個檔案是用來配置主機將用的DNS伺服器資訊,是記載LAN內接續的各主機的對應[HostName和IP]用的。當用戶在進行網路連線時,首先查詢該檔案,尋找對應主機名(或域名)對應的IP地址。
我們要測試兩臺機器之間知否連通,一般用"ping 機器的IP",如果想用"ping 機器的主機名"發現找不見該名稱的機器,解決的辦法就是修改"/etc/hosts"這個檔案,通過把LAN內的各主機的IP地址和HostName的一一對應寫入這個檔案的時候,就可以解決問題。
例如:機器為"Master.Hadoop:192.168.1.2"對機器為"Salve1.Hadoop:192.168.1.3"用命令"ping"記性連線測試。測試結果如下:
從上圖中的值,直接對IP地址進行測試,能夠ping通,但是對主機名進行測試,發現沒有ping通,提示"unknown host——未知主機",這時檢視"Master.Hadoop"的"/etc/hosts"檔案內容。
發現裡面沒有"192.168.1.3 Slave1.Hadoop"內容,故而本機器是無法對機器的主機名為"Slave1.Hadoop" 解析。
在進行Hadoop叢集配置中,需要在"/etc/hosts"檔案中新增叢集中所有機器的IP與主機名,這樣Master與所有的Slave機器之間不僅可以通過IP進行通訊,而且還可以通過主機名進行通訊。所以在所有的機器上的"/etc/hosts"檔案末尾中都要新增如下內容:
192.168.1.2 Master.Hadoop
192.168.1.3 Slave1.Hadoop
192.168.1.4 Slave2.Hadoop
192.168.1.5 Slave3.Hadoop
用以下命令進行新增:
vim /etc/hosts
新增結果如下:
現在我們在進行對機器為"Slave1.Hadoop"的主機名進行ping通測試,看是否能測試成功。
從上圖中我們已經能用主機名進行ping通了,說明我們剛才新增的內容,在區域網內能進行DNS解析了,那麼現在剩下的事兒就是在其餘的Slave機器上進行相同的配置。然後進行測試。(備註:當設定SSH無密碼驗證後,可以"scp"進行復制,然後把原來的"hosts"檔案執行覆蓋即可。)
1.4 所需軟體
1)JDK軟體
JDK版本:jdk-6u31-linux-i586.bin
2)Hadoop軟體
Hadoop版本:hadoop-1.0.0.tar.gz
1.5 VSFTP上傳
在"Hadoop叢集(第3期)"講了VSFTP的安裝及配置,如果沒有安裝VSFTP可以按照該文件進行安裝。如果安裝好了,就可以通過FlashFXP.exe軟體把我們下載的JDK6.0和Hadoop1.0軟體上傳到"Master.Hadoop:192.168.1.2"伺服器上。
剛才我們用一般使用者(hadoop)通過FlashFXP軟體把所需的兩個軟體上傳了跟目下,我們通過命令檢視下一下是否已經上傳了。
從圖中,我們的所需軟體已經準備好了。
2、SSH無密碼驗證配置
Hadoop執行過程中需要管理遠端Hadoop守護程序,在Hadoop啟動以後,NameNode是通過SSH(Secure Shell)來啟動和停止各個DataNode上的各種守護程序的。這就必須在節點之間執行指令的時候是不需要輸入密碼的形式,故我們需要配置SSH運用無密碼公鑰認證的形式,這樣NameNode使用SSH無密碼登入並啟動DataName程序,同樣原理,DataNode上也能使用SSH無密碼登入到NameNode。
2.1 安裝和啟動SSH協議
在"Hadoop叢集(第1期)"安裝CentOS6.0時,我們選擇了一些基本安裝包,所以我們需要兩個服務:ssh和rsync已經安裝了。可以通過下面命令檢視結果顯示如下:
rpm –qa | grep openssh
rpm –qa | grep rsync
假設沒有安裝ssh和rsync,可以通過下面命令進行安裝。
yum install ssh 安裝SSH協議
yum install rsync (rsync是一個遠端資料同步工具,可通過LAN/WAN快速同步多臺主機間的檔案)
service sshd restart 啟動服務
確保所有的伺服器都安裝,上面命令執行完畢,各臺機器之間可以通過密碼驗證相互登。
2.2 配置Master無密碼登入所有Salve
1)SSH無密碼原理
Master(NameNode | JobTracker)作為客戶端,要實現無密碼公鑰認證,連線到伺服器Salve(DataNode | Tasktracker)上時,需要在Master上生成一個金鑰對,包括一個公鑰和一個私鑰,而後將公鑰複製到所有的Slave上。當Master通過SSH連線Salve時,Salve就會生成一個隨機數並用Master的公鑰對隨機數進行加密,併發送給Master。Master收到加密數之後再用私鑰解密,並將解密數回傳給Slave,Slave確認解密數無誤之後就允許Master進行連線了。這就是一個公鑰認證過程,其間不需要使用者手工輸入密碼。重要過程是將客戶端Master複製到Slave上。
2)Master機器上生成密碼對
在Master節點上執行以下命令:
ssh-keygen –t rsa –P ''
這條命是生成其無密碼金鑰對,詢問其儲存路徑時直接回車採用預設路徑。生成的金鑰對:id_rsa和id_rsa.pub,預設儲存在"/home/hadoop/.ssh"目錄下。
檢視"/home/hadoop/"下是否有".ssh"資料夾,且".ssh"檔案下是否有兩個剛生產的無密碼金鑰對。
接著在Master節點上做如下配置,把id_rsa.pub追加到授權的key裡面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在驗證前,需要做兩件事兒。第一件事兒是修改檔案"authorized_keys"許可權(許可權的設定非常重要,因為不安全的設定安全設定,會讓你不能使用RSA功能),另一件事兒是用root使用者設定"/etc/ssh/sshd_config"的內容。使其無密碼登入有效。
1)修改檔案"authorized_keys"
chmod 600 ~/.ssh/authorized_keys
備註:如果不進行設定,在驗證時,扔提示你輸入密碼,在這裡花費了將近半天時間來查詢原因。在網上查到了幾篇不錯的文章,把作為"Hadoop叢集_第5期副刊_JDK和SSH無密碼配置"來幫助額外學習之用。
2)設定SSH配置
用root使用者登入伺服器修改SSH配置檔案"/etc/ssh/sshd_config"的下列內容。
RSAAuthentication yes # 啟用 RSA 認證
PubkeyAuthentication yes # 啟用公鑰私鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys # 公鑰檔案路徑(和上面生成的檔案同)
設定完之後記得重啟SSH服務,才能使剛才設定有效。
service sshd restart
退出root登入,使用hadoop普通使用者驗證是否成功。
ssh localhost
從上圖中得知無密碼登入本級已經設定完畢,接下來的事兒是把公鑰複製所有的Slave機器上。使用下面的命令格式進行復制公鑰:
scp ~/.ssh/id_rsa.pub 遠端使用者名稱@遠端伺服器IP:~/
例如:
scp ~/.ssh/id_rsa.pub [email protected]:~/
上面的命令是複製檔案"id_rsa.pub"到伺服器IP為"192.168.1.3"的使用者為"hadoop"的"/home/hadoop/"下面。
下面就針對IP為"192.168.1.3"的Slave1.Hadoop的節點進行配置。
1)把Master.Hadoop上的公鑰複製到Slave1.Hadoop上
從上圖中我們得知,已經把檔案"id_rsa.pub"傳過去了,因為並沒有建立起無密碼連線,所以在連線時,仍然要提示輸入輸入Slave1.Hadoop伺服器使用者hadoop的密碼。為了確保確實已經把檔案傳過去了,用SecureCRT登入Slave1.Hadoop:192.168.1.3伺服器,檢視"/home/hadoop/"下是否存在這個檔案。
從上面得知我們已經成功把公鑰複製過去了。
2)在"/home/hadoop/"下建立".ssh"資料夾
這一步並不是必須的,如果在Slave1.Hadoop的"/home/hadoop"已經存在就不需要建立了,因為我們之前並沒有對Slave機器做過無密碼登入配置,所以該檔案是不存在的。用下面命令進行建立。(備註:用hadoop登入系統,如果不涉及系統檔案修改,一般情況下都是用我們之前建立的普通使用者hadoop進行執行命令。)
mkdir ~/.ssh
然後是修改資料夾".ssh"的使用者許可權,把他的許可權修改為"700",用下面命令執行:
chmod 700 ~/.ssh
備註:如果不進行,即使你按照前面的操作設定了"authorized_keys"許可權,並配置了"/etc/ssh/sshd_config",還重啟了sshd服務,在Master能用"ssh localhost"進行無密碼登入,但是對Slave1.Hadoop進行登入仍然需要輸入密碼,就是因為".ssh"資料夾的許可權設定不對。這個資料夾".ssh"在配置SSH無密碼登入時系統自動生成時,許可權自動為"700",如果是自己手動建立,它的組許可權和其他許可權都有,這樣就會導致RSA無密碼遠端登入失敗。
對比上面兩張圖,發現資料夾".ssh"許可權已經變了。
3)追加到授權檔案"authorized_keys"
到目前為止Master.Hadoop的公鑰也有了,資料夾".ssh"也有了,且許可權也修改了。這一步就是把Master.Hadoop的公鑰追加到Slave1.Hadoop的授權檔案"authorized_keys"中去。使用下面命令進行追加並修改"authorized_keys"檔案許可權:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
4)用root使用者修改"/etc/ssh/sshd_config"
具體步驟參考前面Master.Hadoop的"設定SSH配置",具體分為兩步:第1是修改配置檔案;第2是重啟SSH服務。
5)用Master.Hadoop使用SSH無密碼登入Slave1.Hadoop
當前面的步驟設定完畢,就可以使用下面命令格式進行SSH無密碼登入了。
ssh 遠端伺服器IP
從上圖我們主要3個地方,第1個就是SSH無密碼登入命令,第2、3個就是登入前後"@"後面的機器名變了,由"Master"變為了"Slave1",這就說明我們已經成功實現了SSH無密碼登入了。
最後記得把"/home/hadoop/"目錄下的"id_rsa.pub"檔案刪除掉。
rm –r ~/id_rsa.pub
到此為止,我們經過前5步已經實現了從"Master.Hadoop"到"Slave1.Hadoop"SSH無密碼登入,下面就是重複上面的步驟把剩餘的兩臺(Slave2.Hadoop和Slave3.Hadoop)Slave伺服器進行配置。這樣,我們就完成了"配置Master無密碼登入所有的Slave伺服器"。
2.3 配置所有Slave無密碼登入Master
和Master無密碼登入所有Slave原理一樣,就是把Slave的公鑰追加到Master的".ssh"資料夾下的"authorized_keys"中,記得是追加(>>)。
為了說明情況,我們現在就以"Slave1.Hadoop"無密碼登入"Master.Hadoop"為例,進行一遍操作,也算是鞏固一下前面所學知識,剩餘的"Slave2.Hadoop"和"Slave3.Hadoop"就按照這個示例進行就可以了。
首先建立"Slave1.Hadoop"自己的公鑰和私鑰,並把自己的公鑰追加到"authorized_keys"檔案中。用到的命令如下:
ssh-keygen –t rsa –P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
接著是用命令"scp
相關推薦
centos安裝配置hadoop超詳細過程【轉】
轉自:http://www.centoscn.com/image-text/install/2014/1121/4158.html 1、叢集部署介紹 1.1 Hadoop簡介 Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統
centos安裝配置hadoop超詳細過程
1、叢集部署介紹 1.1 Hadoop簡介 Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統(HDFS,Hadoop Distributed Filesystem)和MapRedu
Mac配置Hadoop最詳細過程
pan alt agen mage 設置 apach 兩個 login class 一.準備工作: 1. JDK1.7版本及以上(貌似Hadoop只支持1.6以上的版本,不確定,保險起見用1.7,我自己用的是1.8) 2. 2.7.3版本的Hadoop https://
Webpack安裝配置及打包詳細過程
引言 前端經過漫長的發展,湧現出了很多實踐方法來處理複雜的工作流程,讓開發變得更加簡便,其中,模組化可以使複雜的程式細化成為各個小的檔案,而webpack並不強制你使用某種模組化方案,而是通過相容所有模組化方案讓你無痛接入專案,本文詳細介紹webpack安裝配置及打包的詳細過程。 Webpack簡單介紹
CentOS 6.5系統安裝配置圖解教程(詳細圖文)
大於 禁止ip 軟件安裝 sos cloc 必須 for href 語言 轉載文件原地址:https://www.kafan.cn/edu/488101.html 說明: 截止目前CentOS 6.x最新版本為CentOS 6.5,下面介紹CentOS 6.5的具
CentOS 7 搭建 LNMP 架構詳細過程 + Discuz 論壇安裝 (手工編譯)
rep 生效 ecs pac extra database add var reat 簡介 1·LNMP 介紹2·Ningx 安裝 (1.12版本)3·MySQL 安裝 (5.5版本)4·PHP 安裝 (5.6版本)5·安裝 Discuz 論壇6·總結 LNMP 介紹
MySql 5.6.21安裝及配置(超詳細)
cal 開始 流程 重復 配置 路徑 進行 驗證 高級 一、安裝 ----->點擊接受協議 ----->下一步 這裏選擇我只需要安裝服務器,因此選擇 Server only -------->下一步 -------->點擊execu
VMware安裝Centos7超詳細過程
VMware安裝Centos7超詳細過程 轉載:https://blog.csdn.net/babyxue/article/
CentOS下 安裝配置hadoop環境--單實例版
per pla centos pre dfs- pat prop alt art CentOS下1、安裝linux2、安裝jdk[[email protected] ~]# javac //顯示信息[[email protected] ~]# rp
VMware15安裝Centos7超詳細過程
重新 follow 分配 路徑 body ear font 查看 啟動圖 本篇文章主要介紹了VMware安裝Centos7超詳細過程(圖文),具有一定的參考價值,感興趣的小夥伴們可以參考一下 1.軟硬件準備 軟件:推薦使用VMwear15,我用的是VMwear 15
CentOS安裝配置MySql數據庫
ima 16px 必須 eas 方式 temp grep 5.7 leg CentOS版本7.2,MySql版本5.7 1、下載MySql安裝源 wget https://dev.mysql.com/get/mysql57-community-release-el
Centos 安裝配置sublime
centos 安裝 閃爍 yum 磁盤 分享 cnblogs 目標 刪除 區別 Sublime 是linux下不錯的編輯器. http://www.sublimetext.com/ 1. 聯網安裝sublime 包 #sudo yum install sublime-tex
安裝數據庫詳細過程
oracle 數據庫 在運行中輸入netca 便會出來如上監聽程序名字可以自己改動選擇tcp/ip端口不能沖突,如有沖突自行修改查看服務是否開啟在運行在輸入service.msc本文出自 “大李子” 博客,轉載請與作者聯系!安裝數據庫詳細過程
centos 安裝配置pptp實現vpn
centos l2tp vpn centos 安裝配置pptp實現vpn 1 前言PPTP(Point to Point Tunneling Protocol),即點對點隧道協議。該協議是在PPP協議的基礎上開發的一種新的增強型安全協議,支持多協議虛擬專用網(VPN),可以通過密碼驗證協
Centos安裝配置redis
bar master 發現 ping 裝配 成功 style not mst 1.安裝rediscd wget http://labfile.oss.aliyuncs.com/files0422/redis-2.8.9.tar.gz tar xvfz redis-2.8.
Linux CentOS安裝配置MySQL5.7數據庫
-s var vim rar linux c system comm p地址 dev 安裝mysql數據庫 a)下載mysql源安裝包:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarc
安裝配置Hadoop
xml文件 mage ado bubuko 技術 name img png 裝配 安裝配置Hadoop 下載Hadoop包 解壓Hadoop包 配置Hadoop的環境變量 配置Hadoop的配置文件core-site.xml和hdfs-site.xml core
centos 安裝配置python虛擬環境、pip
con extras led 安裝 ble upgrading 工具 rom The centos 安裝配置python虛擬環境、pip 1.安裝pip包安裝工具# 系統默認源沒有pip安裝包[root@localhost python]# yum install pyth
dubbo配置清單-超詳細版
oiv 檢測 特殊 發布者 單位 沒有 gist code 郵箱 服務發布者 在服務發布者的springboot主配置文件application.properties中添加dubbo配置 #dubbo服務名 spring.dubbo.application.name=xx
Docker實戰之安裝配置Hadoop-2.5.2完全分散式叢集
環境配置 VM:VMware Workstation OS:Ubuntu 14.04 LTS Hadoop:hadoop-2.5.2 Hadoop叢集規劃 172.17.0.2 hadoop-master 172.17.