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的主機名,作爲單機版環境,這裏只需填寫 localhost 就Ok了。

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,我也不知道爲什麼,有誰知道一下。如果看到下面激動人心的畫面,就說明你成功了。

 

發佈了8 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章