閱讀706 返回首頁    go 阿裏雲 go 技術社區[雲棲]


在ubuntu部署hadoop之單機模式與偽分布式模式部署

這幾天剛接觸Hadoop,在學習如何搭建一個Hadoop集群。對於初學者來說,環境搭建還是比較麻煩的,我這裏說一下我的配置方法,僅供大家參考。

我的環境是ubuntu12.10+hadoop1.1.0.

Hadoop運行模式有以下三種。

單機模式(standalone

單機模式是Hadoop的默認模式。當首次解壓Hadoop的源碼包時,Hadoop無法了解硬件安裝環境,便保守地選擇了最小配置。在這種默認模式下所有3XML文件均為空。當配置文件為空時,Hadoop會完全運行在本地。因為不需要與其他節點交互,單機模式就不使用HDFS,也不加載任何Hadoop的守護進程。該模式主要用於開發調試MapReduce程序的應用邏輯。
偽分布模式(Pseudo-DistributedMode
偽分布模式在“單節點集群”上運行Hadoop,其中所有的守護進程都運行在同一台機器上。該模式在單機模式之上增加了代碼調試功能,允許你檢查內存使用情況,HDFS輸入輸出,以及其他的守護進程交互。
全分布模式(FullyDistributed Mode

Hadoop守護進程運行在一個集群上。


Step 1.

由於hadoop是用java語言編寫的,所以第一步我們需要安裝JDK。

建議大家去oracle到官網去下載,不要去apt-get到方法,因為apt-get得到到jdk不是官方到版本,在以後到調試中會有意想不到的問題。

https://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

我這裏給出了官網下載地址,大家根據自己到係統下載相應版本即可。我這裏下載到是tar.gz格式的。

將得到到tar.gz 文件解壓到一個文件夾下。然後,配置環境變量。方法如下:

首先

sudo gedit /etc/profile

打開profile文件在文件到最後加上這些代碼;

#set java environment

JAVA_HOME=/home/liujiacai/program/jdk1.7.0_09     

export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH 
上麵到JAVA_HOME的值是我機器上jdk的文件路徑,大家改為自己到即可。最後保存文件即可。

為了是環境變量生效,需要注銷一下當前用戶,重新登錄後在控製台中輸入

java -version
如果能到的jdk到版本信息說明已經配置成功

這是我機器上得到到信息。

對於hadoop到三種運行模式都需要配置jdk路徑,所以首先介紹這個到配置

將下載好的hadoop解壓,重新命名為hadoop(這是為了方便以後到操作)。進入conf文件夾下,在hadoop-env.sh文件中做修改,在第九行左右到位置中有#export JAVA_HOME=*******這樣到字樣,首先將#(這裏#為注釋到作用)去掉,修改JAVA_HOME的值為你機器中jdk到文件路徑即可,這裏到值和/etc/profile是相同的。

Step 2.單機模式安裝

我這裏假設你的控製台的當前路徑是hadoop文件夾

在這中模式下直接運行wordcount例子即可

bin/hadoop jar hadoop-ex*.jar wordcount conf output

這樣就可以在output文件夾中看到統計到結果。

Step 3.偽分布式模式安裝

這裏需要修改conf文件夾中到三個文件。分別是core-site.xml、mapred-site.xml、hdfs-site.xml三個文件

具體修改內容如下:

conf/core-site.xml:

<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:9000</value>
     </property> 
     <property>
         <name>hadoop.tmp.dir</name>
         <value>/home/liujiacai/hadoop/logs</value>
     </property>
</configuration>


conf/hdfs-site.xml:

<configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>


conf/mapred-site.xml:

<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>

這樣就配置好hadoop了,由於haoop不同結點間到通信是用的ssh,所以我們還需要安裝ssh

ssh原理解釋:點這裏

在ubnuntu下直接在控製台中輸入

sudo apt-get install openssh-server

如果提示找不到源,更新ubuntu到軟件中心即可

sudo apt-get update

這樣就安裝完成了ssh。下麵需要設置免密鑰登錄ssh了。輸入下麵兩行代碼即可:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

這樣以後登錄本地ssh就不需要密碼了。

這裏稍微解釋一下:ssh-keygen代表生成密鑰;-t(注意區分大小寫)表示指定生成的密鑰類型,dsa是dsa密鑰認證的意思,即密鑰類型;-P用於提供密語;-f指定生成的密鑰文件。然後把id_dsa.pub(公鑰)追加到授權的key裏麵去。

下麵就可以運行wordcount了

(1)首先格式化namenode並,開啟hadoop相關進程

bin/hadoop namenode -format

bin/start-all.sh
輸入上麵兩條命令後hadoop就已經開啟了。

(2)運行wordcount例子

首先把本地到conf文件夾中到文件上傳到hdsf文件係統到input文件夾下

bin/hadoop fs -mkdir /input
bin/hadoop fs -put conf/* /input

下麵即可運行wordcount了

bin/hadoop jar hadoop-examples-*.jar wordcount /input /output

查看結果可用下麵這條命令

bin/hadoop fs -cat /output/*
這樣就可以看到統計以後到結果


關閉hadoop進程到命令是

bin/stop-all.sh

Step 4.全分布式模式安裝

這種模式比較複雜,請大家熟悉上麵兩種模式後再進行配置。

具體方式參照我的另一篇文章:

Hadoop全分布式環境搭建


最後祝你好運。Good Luck


PS:參考文章

https://www.linuxidc.com/Linux/2012-02/53927.htm




最後更新:2017-04-02 16:48:11

  上一篇:go tomcat中conf\Catalina\localhost目錄下的J2EE項目META-INF配置文件
  下一篇:go Android中進行圖像壓縮和縮放