歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Linux 上安裝Hadoop 教程

在Linux 上安裝Hadoop 教程

日期:2017/2/28 16:16:12   编辑:Linux教程

在虛擬機中安裝的Ubuntu系統下搭建Hadoop集群時首先要解決的問題是將宿主機的文件拷貝到虛擬機上。采用的簡單方法是宿主機使用Serv-U建立一個FTP然後在虛擬機上登錄將文件拷出來。

要先熟悉Linux的基本概念和操作,如:cd、ls、tar、cat、ssh、scp、cp、rm、sudo、su、apt-get等操作。

一.實踐環境:

Ubuntu 10.04+jdk1.6+hadoop-0.20.1

機器名

IP

作用

Master

192.168.128.2

Namenode、master、jobtracker

Slave1

192.168.128.3

Datanode、slave、tasktracker

Slave2

192.168.128.4

Datanode、slave、tasktracker

二. 安裝步驟:

1. 在虛擬機上安裝Ubuntu10.04。這個很簡單可以上網參考基本上是一直“下一步”就行。注意兩個地方:一個是出現選擇存儲空間時直接選擇使用整個磁盤就行,不要進行手動分區。第二個就是我才用的上網方法是NAT技術。配置詳情在11.30日的日志裡。

2. 對三台虛擬機做一下更新。$sudo apt-get update 。後面要安裝軟件時,如果沒有更新,在安裝所需軟件時,可能會說找不到軟件,安裝不上。注意選擇軟件源時不要僅僅是一個網站,建議使用 “中國 的服務器”。

3. 修改機器名和hosts文件。

IP為 192.168.128.2 的虛擬機做namenode 機器名叫 master。

IP為 192.168.128.3和192.168.128.4的虛擬機做datanode 機器名分別叫slave1,slave2

第一步:修改三台虛擬機的機器名。

對master

$ vi /etc/hostname

進入文件後將機器名改成master

對slave

$ vi /etc/hostname

進入文件後機器名改成 slave1

$ vi /etc/hostname

第二步:修改三台虛擬機的/etc/hosts文件。

對master和slave

vi /etc/hosts

進入文件後原內容刪除加入如下內容。

127.0.0.1 localhost

192.168.128.2 master master

192.168.128.3 slave1 slave1

192.168.128.4 slave2 slave2

4.在三台虛擬機上分別新建一個名字為jsj的用戶。

第一步:[email protected]:~$ adduser jsj

第二步:提示你要求你填寫一些信息,可以直接回車。

第三步:設置jsj這個用戶的密碼(盡量簡單一致)。

第四步:[email protected]:~/home$ chown -R jsj:jsj jsj

//將jsj文件夾的所用者改成jsj用戶的。否則我們用adduser jsj創建了jsj用戶後,jsj用戶不能在自己的主目錄下創建文件夾,(如:$ mkdir .ssh)提示沒有權限創建文件夾。

5. 在三台虛擬機上分別配置ssh無密碼登錄。

第一步:[email protected]:~$ sudo apt-get install ssh //開啟ssh服務。

第二步:[email protected]:~$ mkdir .ssh

在三台虛擬機的/home/jsj目錄下都用jsj用戶建立一個.ssh目錄

第三步:[email protected]:~/.ssh/$ ssh-keygen –t dsa –P ‘’ –f ~/.ssh/id_dsa

//這個命令將為masters上的jsj用戶生成其密鑰對,生成的密鑰對id_dsa,id_dsa.pub,默認存儲在/home/jsj/.ssh目錄下。

第四步:[email protected]:~/.ssh/$ cat id_dsa.pub >> authorized_keys。

//把id_dsa.pub 追加到授權key 裡面(當前並沒有authorized_keys文件是你也可以直接使用cp 命令)。至此無密碼登錄到本機已經配置好了。可以使用 $ ssh localhost 命令測試一下。第一次登錄時要輸入yes,之後就不用了。

第五步:[email protected]:~/.ssh/$ scp id_dsa.pub jsj@slave1:/home/jsj/.ssh/

//將id_dsa.pub 文件傳送到slave1 這台虛擬機上。slave2 同理。

第六步:到slave1 這台虛擬機上執行第四步的操作。slave2 同理。至此master就可以無密碼登錄到slave1 和slave2 上了。如果想要slave1 和slave2 都可以無密碼登錄到master上必須在slave1 和salve2 上也操作第三部生成自己的密鑰對而且要將密鑰對追加到三台機器的authorized_keys文件裡。

至此各個機器上的SSH配置已經完成,可以測試一下了,比如master向slave1發起ssh連接

jsj@mater:~/.ssh$ ssh slave1

如果ssh配置好了,就會出現以下提示信息

The authenticity of host [dbrg-2] can't be established.

Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.

Are you sure you want to continue connecting (yes/no)?

OpenSSH告訴你它不知道這台主機,但是你不用擔心這個問題,因為你是第一次登錄這台主機。鍵入“yes”。這將把這台主機的“識別標記”加到“~/.ssh/know_hosts”文件中。第二次訪問這台主機的時候你會發現不需要輸入密碼就可以建立ssh連接了,恭喜你,配置成功了。不過,別忘了測試本機ssh localhost (因為後面的Hadoop命令受到這一步的影。注意如果你沒有成功記住刪除“~/.ssh/know_hosts”文件就可以重新開始。

6. 在三台虛擬機上分別安裝jdk1.6

第一步:將jdk-6u13-linux-i586.bin拷到/home/jsj目錄下

第二步:[email protected]:~/home/jsj$ chmod u+x jdk-6u13-linux-i586.bin

//將bin文件修改成可執行文件。

第三步:[email protected]:~/home/jsj/$ ./jdk-6u13-linux-i586.bin

//運行安裝文件

第四步:[email protected]:~/$ gedit /etc/profile

在文件裡面加入如下信息。

export JAVA_HOME=/home/jsj/jdk1.6.0_13

export JRE_HOME=/home/jsj/jdk1.6.0_13/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

然後[email protected]:~/$ source /etc/profile 是文件內容生效。

Copyright © Linux教程網 All Rights Reserved