在ubuntu部署hadoop之單機模式與偽分布式模式部署
這幾天剛接觸Hadoop,在學習如何搭建一個Hadoop集群。對於初學者來說,環境搭建還是比較麻煩的,我這裏說一下我的配置方法,僅供大家參考。
我的環境是ubuntu12.10+hadoop1.1.0.
Hadoop的運行模式有以下三種。
單機模式(standalone)
單機模式是Hadoop的默認模式。當首次解壓Hadoop的源碼包時,Hadoop無法了解硬件安裝環境,便保守地選擇了最小配置。在這種默認模式下所有3個XML文件均為空。當配置文件為空時,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文件夾
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