hadoop學習---3.hadoop在ubuntu下的安裝配置


   前面均在windows下進行,但是在安裝hadoop過程中出了一些問題,先暫時切換到linux下,回頭再補充windows下的安裝。不過通過對比確實發現,在linux下的安裝配置確實比較簡單。

一.安裝ubuntu

  我是下載的ubuntu12.04,在64位的虛擬機上使用virtualbox安裝的,沒錯,是在虛擬機上在安裝虛擬機,然后安裝ubuntu

具體安裝過程就不描述了,不過安裝過程確實慢,除非你的網絡很快。12.04的新主題使用真是別扭,在登陸界面切換到gonme classic,這里可以使用windows共享,可以很方便的從硬盤或者其他機器拉東西回來。

 

二. 在Ubuntu下創建hadoop用戶組和用戶;

1. 創建hadoop用戶組;

1
sudo addgroup hadoop

如圖:


2. 創建hadoop用戶;

1
sudo adduser -ingroup hadoop hadoop

如圖:


3. 給hadoop用戶添加權限,打開/etc/sudoers文件;

1
sudo gedit /etc/sudoers

按回車鍵后就會打開/etc/sudoers文件了,給hadoop用戶賦予root用戶同樣的權限。

在root   ALL=(ALL:ALL)   ALL下添加hadoop   ALL=(ALL:ALL)  ALL,

1
hadoop  ALL=(ALL:ALL) ALL

如圖:


三. 在Ubuntu下安裝JDK

使用如下命令執行即可:

1
sudo apt-get install openjdk-6-jre

如圖:


這里需要說明:我就是在這里沒有太注意,后面費了點事情。

linux下的java有兩種一個是openjdk一個sun的。因為一些原因,Sun Java 無法從 Ubuntu 的軟件庫里面取得
取而代之的是 OpenJDK,不過 OpenJDK 跑某些程式會出現問題所以還是需要 Sun Java
下面說說在 Ubuntu 12.04 安裝 Sun Java 的方法: 

(1)首先刪除掉已經安裝的openjdk

sudo apt-get purge openjdk*

(2)$ sudo apt-add-repository ppa:flexiondotorg/java

(3)$ sudo apt-get update 一定要執行這個步驟啊,如果更新比較慢,在unbuntu軟件中心更新源,操作方面是編輯--源,使用自動測試尋找最快的源,我開始是使用的這個,給我找的一個源后來不穩定,我手工切換到科技大學的源(前面也是這個源穩定啊)

(4)$ sudo apt-get install sun-java6-jre sun-java6-jdk sun-java6-plugin

這一步驟大概花費一點時間,下載幾十M的軟件,我是在這步就執行成功的,如果執行不成功,還可以使用下面的辦法:

$ sudo add-apt-repository "deb http://archive.canonical.com/ubuntu maverick partner"
$ sudo apt-get install python-software-properties
$ sudo apt-get update
$ sudo apt-get install sun-java*
$ sudo apt-get install openjdk-6-jdk openjdk-6-jdk gcj-4.6-jdk ecj default-jdk

(5)配置JAVA環境變量:
sudo gedit /etc/environment
在其中添加如下兩行:

JAVA_HOME=/usr/lib/jvm/java-6-sun
CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib

 (6)java -version查看不出錯說明,成功。

我之前執行的是openjdk后來才切換的sun-java6,當然現在有7了。

四. 修改機器名 (這步驟可以省略)

每當ubuntu安裝成功時,我們的機器名都默認為:ubuntu ,但為了以后集群中能夠容易分辨各台服務器,需要給每台機器取個不同的名字。機器名由 /etc/hostname文件決定。

1. 打開/etc/hostname文件;

1
sudo gedit /etc/hostname

2. 將/etc/hostname文件中的ubuntu改為你想取的機器名。這里我取"dubin-ubuntu"。 重啟系統后才會生效。

 

五. 安裝ssh服務

這里的ssh和三大框架:spring,struts,hibernate沒有什么關系,ssh可以實現遠程登錄和管理,具體可以參考其他相關資料。

安裝openssh-server;

1
sudo apt-get install ssh openssh-server

這時假設您已經安裝好了ssh,您就可以進行第六步了哦~

 

六、 建立ssh無密碼登錄本機

首先要轉換成hadoop用戶,執行以下命令:

1
su - hadoop

如圖:


ssh生成密鑰有rsa和dsa兩種生成方式,默認情況下采用rsa方式。

1. 創建ssh-key,,這里我們采用rsa方式;

1
ssh -keygen -t rsa -P ""

如圖:


(注:回車后會在~/.ssh/下生成兩個文件:id_rsa和id_rsa.pub這兩個文件是成對出現的)

2. 進入~/.ssh/目錄下,將id_rsa.pub追加到authorized_keys授權文件中,開始是沒有authorized_keys文件的;

1
2
cd ~/. ssh
cat id_rsa.pub >> authorized_keys

如圖:


(完成后就可以無密碼登錄本機了。)

3. 登錄localhost;

1
ssh localhost

如圖:

( 注:當ssh遠程登錄到其它機器后,現在你控制的是遠程的機器,需要執行退出命令才能重新控制本地主機。)

4. 執行退出命令;

1
exit

 

七. 安裝hadoop

我們采用的hadoop版本是:hadoop-0.20.203(http://www.apache.org/dyn/closer.cgi/hadoop/common/),因為該版本比較穩定。最新的alpha版本已經很高,但是還是建議采用穩定的版本。我是在apache站點直接下載的。

1. 假設hadoop-0.20.203.tar.gz在桌面,將它復制到安裝目錄 /usr/local/下;

1
sudo cp hadoop-0.20.203.0rc1. tar .gz /usr/local/

2. 解壓hadoop-0.20.203.tar.gz;

1
2
cd /usr/local
sudo tar -zxf hadoop-0.20.203.0rc1. tar .gz

3. 將解壓出的文件夾改名為hadoop;

1
sudo mv hadoop-0.20.203.0 hadoop

4. 將該hadoop文件夾的屬主用戶設為hadoop,

1
sudo chown -R hadoop:hadoop hadoop

5. 打開hadoop/conf/hadoop-env.sh文件;

1
sudo gedit hadoop /conf/hadoop-env .sh

6. 配置conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然后加上本機jdk的路徑);

1
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk

7. 打開conf/core-site.xml文件;

1
sudo gedit hadoop /conf/core-site .xml

編輯如下:property后面需要手工敲

1
2
3
4
5
6
7
8
9
10
11
<? xml version = "1.0" ?>
<? xml-stylesheet type = "text/xsl" href = "configuration.xsl" ?>
                                                                                                               
<!-- Put site-specific property overrides in this file. -->
                                                                                                               
< configuration >
< property >  
   < name >fs.default.name</ name >  
   < value >hdfs://localhost:9000</ value >   
  </ property >  
</ configuration >

8. 打開conf/mapred-site.xml文件;

1
sudo gedit hadoop /conf/mapred-site .xml

編輯如下property后面需要手工敲:

1
2
3
4
5
6
7
8
9
10
11
<? xml version = "1.0" ?>
<? xml-stylesheet type = "text/xsl" href = "configuration.xsl" ?>
                                                                                                            
<!-- Put site-specific property overrides in this file. -->
                                                                                                            
     < configuration >  
      < property >   
       < name >mapred.job.tracker</ name >  
       < value >localhost:9001</ value >   
      </ property >  
     </ configuration >

9. 打開conf/hdfs-site.xml文件;

1
sudo gedit hadoop /conf/hdfs-site .xml

編輯如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
< configuration >
< property >
< name >dfs.name.dir</ name >
< value >/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</ value >
</ property >
< property >
< name >dfs.data.dir</ name >
< value >/usr/local/hadoop/data1,/usr/local/hadoop/data2</ value >
</ property >
< property >
< name >dfs.replication</ name >
< value >2</ value >
</ property >
</ configuration >

10. 打開conf/masters文件,添加作為secondarynamenode的主機名,作為單機版環境,這里只需填寫 localhostOk了。

1
sudo gedit hadoop /conf/masters

11. 打開conf/slaves文件,添加作為slave的主機名,一行一個。作為單機版,這里也只需填寫 localhost就Ok了。

1
sudo gedit hadoop /conf/slaves
 
10.11我自己沒敲,默認就是localhost,千萬別修改為127.0.0.1 localhost雖然正式的多台機器是這樣的寫法,但是單台機器不需要前面的ip地址,否則會報錯

 

八. 在單機上運行hadoop

1. 進入hadoop目錄下,格式化hdfs文件系統,初次運行hadoop時一定要有該操作,

1
2
cd /usr/local/hadoop/
bin /hadoop namenode - format

2. 當你看到下圖時,就說明你的hdfs文件系統格式化成功了。


3. 啟動bin/start-all.sh

1
bin /start-all .sh

4. 檢測hadoop是否啟動成功

1
jps
千萬要注意這里,我使用這個命令只能看到jps自己的進程,糾結了很長時間,忽然發現得用 sudo jps果然能出現6個進程,坑爹啊,大家千萬要注意。

如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五個進程,就說明你的hadoop單機版環境配置好了!

如下圖:

然后可以通過firefox瀏覽器查看,使用http://localhost:50030/

對,你沒有看錯不是我們配置的core-site的9000的端口,也不是9001的端口,是50030,我也不知道為什么,有誰知道一下。如果看到下面激動人心的畫面,就說明你成功了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM