天天看點

《Hadoop實戰第2版》——2.1節在Linux上安裝與配置Hadoop

2.1 在linux上安裝與配置hadoop

在linux上安裝hadoop之前,需要先安裝兩個程式:

1)jdk 1.6(或更高版本)。hadoop是用java編寫的程式,hadoop的編譯及mapreduce的運作都需要使用jdk。是以在安裝hadoop前,必須安裝jdk 1.6或更高版本。

2)ssh(安全外殼協定),推薦安裝openssh。hadoop需要通過ssh來啟動slave清單中各台主機的守護程序,是以ssh也是必須安裝的,即使是安裝僞分布式版本(因為hadoop并沒有區分開叢集式和僞分布式)。對于僞分布式,hadoop會采用與叢集相同的處理方式,即按次序啟動檔案conf/slaves中記載的主機上的程序,隻不過在僞分布式中salve為localhost(即為自身),是以對于僞分布式hadoop,ssh一樣是必需的。

2.1.1 安裝jdk 1.6

下面介紹安裝jdk 1.6的具體步驟。

(1)下載下傳和安裝jdk 1.6

(2)手動安裝jdk 1.6

在終端下進入jdk安裝目錄,并輸入指令:

安裝結束之後就可以開始配置環境變量了。

(3)配置環境變量

輸入指令:

接下來輸入java –version就可以看到所安裝的jdk的版本資訊了。

2.1.2 配置ssh免密碼登入

同樣以ubuntu為例,假設使用者名為u:

1)确認已經連接配接上網際網路,然後輸入指令:

解釋一下,ssh-keygen代表生成密鑰;-t(注意區分大小寫)表示指定生成的密鑰類型;dsa是dsa密鑰認證的意思,即密鑰類型;-p用于提供密語;-f指定生成的密鑰檔案。

在ubuntu中,~代表目前使用者檔案夾,此處即/home/u。

這個指令會在.ssh檔案夾下建立id_dsa及id_dsa.pub兩個檔案,這是ssh的一對私鑰和公鑰,類似于鑰匙和鎖,把id_dsa.pub(公鑰)追加到授權的key中去。

這說明已經安裝成功,第一次登入時會詢問是否繼續連結,輸入yes即可進入。

實際上,在hadoop的安裝過程中,是否免密碼登入是無關緊要的,但是如果不配置免密碼登入,每次啟動hadoop都需要輸入密碼以登入到每台機器的datanode上,考慮到一般的hadoop叢集動辄擁有數百或上千台機器,是以一般來說都會配置ssh的免密碼登入。

2.1.3 安裝并運作hadoop

介紹hadoop的安裝之前,先介紹一下hadoop對各個節點的角色定義。

hadoop分别從三個角度将主機劃分為兩種角色。第一,最基本的劃分為master和slave,即主人與奴隸;第二,從hdfs的角度,将主機劃分為namenode和datanode(在分布式檔案系統中,目錄的管理很重要,管理目錄相當于主人,而namenode就是目錄管理者);第三,從mapreduce的角度,将主機劃分為jobtracker和tasktracker(一個job經常被劃分為多個task,從這個角度不難了解它們之間的關系)。

hadoop有官方發行版與cloudera版,其中cloudera版是hadoop的商用版本,這裡先介紹hadoop官方發行版的安裝方法。

hadoop有三種運作方式:單機模式、僞分布式與完全分布式。乍看之下,前兩種方式并不能展現雲計算的優勢,但是它們便于程式的測試與調試,是以還是很有意義的。

下載下傳hadoop-1.0.1.tar.gz并将其解壓,本書後續都預設将hadoop解壓到/home/u/目錄下。

(1)單機模式配置方式

安裝單機模式的hadoop無須配置,在這種方式下,hadoop被認為是一個單獨的java程序,這種方式經常用來調試。

(2)僞分布式hadoop配置

可以把僞分布式的hadoop看做隻有一個節點的叢集,在這個叢集中,這個節點既是master,也是slave;既是namenode,也是datanode;既是jobtracker,也是tasktracker。

僞分布式的配置過程也很簡單,隻需要修改幾個檔案。

進入conf檔案夾,修改配置檔案。

指定jdk的安裝位置:

以下是hadoop中hdfs的配置,配置的備份方式預設為3,在單機版的hadoop中,需要将其改為1。

如果都能檢視,說明hadoop已經安裝成功。

對于hadoop來說,啟動所有程序是必須的,但是如果有必要,你依然可以隻啟動hdfs(start-dfs.sh)或mapreduce(start-mapred.sh)。

關于完全分布式的hadoop會在2.4節詳述。