hadoop1.2.1偽分布模式安裝教程


1:軟件環境准備

1.1Hadoop:

我們使用hadoop Release 1.2.1(stable)版本,下載鏈接:

http://mirrors.ustc.edu.cn/apache/hadoop/common/hadoop-1.2.1/

我們選擇hadoop-1.2.1-bin.tar.gz文件下載。

1.2Java:

Java在這里使用的是jdk1.7版本的,當然也可以使用1.6的,下載鏈接:

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

我們選擇Linux x86的 jdk-7u40-linux-i586.tar.gz版本下載,因為我的Linux機器是32位的;如果Linux機器是64的就必須選擇64位的下載,可以選擇jdk-7u40-linux-x64.tar.gz;這個步驟非常重要,不同的機器必須要配置不同的jdk版本。

2:安裝到Linux中

2.1創建目錄:

首先我們創建一個目錄:

mkdir /data/installation,該目錄存儲下載好的的兩個安裝文件包。

mkdir /data/software/hadoop,該目錄存儲hadoop程序文件。

mkdir /data/software/java,該目錄存儲jdk的文件。

mkdir /data/software/eclipse,該目錄存儲eclipse的文件。

注意:在實際安裝的時候我們最好單獨為運行hadoop程序建立一個賬號,並賦予相關權限。在這里我直接以root身份安裝。

2.2解壓安裝包文件:

把剛剛下載好的文件都放到/data/installation/目錄下。

首先解壓java安裝包文件,運行以下命令:

tar -xzvf /data/installation/jdk-7u40-linux-x64.tar.gz -C /data/software/java/

然后解壓hadoop安裝包文件,運行以下命令:

tar -xzvf /data/installation/hadoop-1.2.1-bin.tar.gz -C /data/software/hadoop/

最后解壓eclipse安裝包文件,運行以下命令:

tar -xzvf /data/installation/eclipse-standard-kepler-SR1-linux-gtk.tar.gz -C /data/software/eclipse/

 

 

3:配置Hadoop

Hadoop環境的配置關重要,首先必須要配置java運行環境。

3.1配置java環境:

添加JAVA_HOME,CLASSPATH環境變量:

使用vi /etc/profile命令編輯profile文件,在文件末尾加上以下內容:

HADOOP_INSTALL=/data/software/hadoop/hadoop-1.2.1/

JAVA_HOME=/data/software/java/jdk1.7.0_40

PATH=$JAVA_HOME/bin:$HADOOP_INSTALL/bin:$PATH

CLASSPATH=$JAVA_HOME/lib

export JAVA_HOME PATH CLASSPATH HADOOP_INSTALL

然后保存,退出,使用source /etc/profile使剛剛的更改立即生效。

然后使用java –version命令,查看是否配置成功,如果成功會出現以下信息:

java version "1.7.0_40"

Java(TM) SE Runtime Environment (build 1.7.0_40-b43)

Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)

3.2配置ssh環境:

使用以下命令設置ssh無密碼連接:

ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

測試ssh配置是否成功:

ssh localhost

 

可以看到配置成功了,連接無需使用密碼了;

配置ssh無密碼訪問有很多種方法,以上只是其中一種,以下是另外一種方法:

cd ~

ssh-keygen -t rsa

cd .ssh

cp id_rsa.pub authorized_keys

ssh hostname  //測試連接hostname是否成功

 

3.3配置hadoop環境:

我們首先進入到/data/software/hadoop/hadoop-1.2.1/conf這個目錄,然后可以看到haddoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml這四個文件以及需要在完全分布模式配置的slaves和masters文件:

 

3.3.1配置hadoop-env.sh:

首先我們用vi hadoop-env.sh命令編輯打開hadoop-env.sh文件,找到JAVA_HOME關鍵字所在的行,把前面的#號去掉,然后填寫實際的JAVA_HOME地址:

export  JAVA_HOME=/data/software/java/jdk1.7.0_40

 

3.3.2配置core-site.xml:

vi core-site.xml打開core-site.xml文件,然后在configuration標簽中加入以下內容:

<property>

<name>fs.default.name</name> 

<value>hdfs://localhost:9000</value>

</propety>

<!—fs.default.name:用來配置namenode,指定HDFS文件系統的URL,通過該URL我們可以訪問文件系統的內容,也可以把localhost換成本機IP地址;如果是完全分布模式,則必須把localhost改為實際namenode機器的IP地址;如果不寫端口,則使用默認端口8020。 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/data/tmp/hadoop_tmp</value>

</property>

<!-- hadoop.tmp.dir:Hadoop的默認臨時路徑,這個最好配置,如果在新增節點或者其他情況下莫名其妙的DataNode啟動不了,就刪除此文件中的tmp目錄即可。不過如果刪除了NameNode機器的此目錄,那么就需要重新執行NameNode格式化的命令。該目錄必須預先手工創建。-->

 

 

3.3.3配置hdfs-site.xml:

在configuration標簽中加入以下內容,所有不存在的目錄都要預先創建:

<property>

<name>dfs.data.dir</name>   

<value>/data/appdata/hadoopdata</value>

</property>

<!--配置HDFS存儲目錄,數據存放目錄,用於datanode存放數據-->

<property>

<name>dfs.name.dir</name>

<value>/data/appdata/hadoopname</value>

</property>

<!—用來存儲namenode的文件系統元數據,包括編輯日志和文件系統映像,如果更換地址的話,則需要重新使用hadoop namenode –format命令格式化namenode-->

<property>

<name>dfs.replication</name>

<value>1</value> 

</proerty>

<!—用來設置文件系統冗余備份數量,因為只有一個節點,所有設置為1,系統默認數量為3-->

 

3.3.4配置mapred-site.xml:

在configuration標簽中加入以下內容:

<property>

<name>mapred.job.tracker</name>

<value>localhost:9001</value>     

</property>

<!—該項配置用來配置jobtracker節點,localhost也可以換成本機的IP地址;真實分布模式下注意更改成實際jobtracker機器的IP地址-->

 

4:啟動hadoop

4.1:測試hadoop配置是否成功:

 

4.2:格式化namenode:

cd /data/software/hadoop/hadoop-1.2.1/bin

./hadoop namenode –format

 

4.3:啟動hadoop進程,運行start-all.sh:

cd /data/software/hadoop/hadoop-1.2.1/bin

./start-all.sh

我們可以通過java的jps命令來查看進程是否啟動成功,從下圖可以看到,我們已經成功啟動SecondaryNamenode,JobTracker,NameNode,DataNode,TraskTracker五個進程,而剛好這五個進程是hadoop所需要的。如果有一個進程沒有啟動成功,就表示整個集群沒有正常工作,我們可以進入/data/software/hadoop/hadoop-1.2.1/libexec/../logs/目錄下查看失敗日記。

 

4.4:從瀏覽器查看hadoop信息:

我們可以從本機或者其他機器的瀏覽器訪問hadoop。

查看jobtracker信息:

http://192.168.0.107:50030/jobtracker.jsp

上圖顯示的只是該頁面的部分信息。

 

查看namenode信息:

http://192.168.0.107:50070/dfshealth.jsp

上圖顯示的只是該頁面的部分信息。

 

查看trasktracker信息:

http://192.168.0.107:50060/tasktracker.jsp

 

 

5:hadoop實例

在這里我們來測試下hadoop自帶的examples例子,該例子里面有個wordcount類,wordcount用來計算文件里面每一個單詞出現了多少次數。examples jar包位於hadoop安裝目錄下,名稱叫做hadoop-examples-1.2.1.jar:

 

5.1:進入到bin目錄中去

首先我們進入到bin目錄中去:

cd /data/software/hadoop/hadoop-1.2.1/bin

 

5.2:創建文件夾

然后我們創建一個input文件夾,並且創建3個文件,給每個文件寫一些內容:

mkdir input

echo “hello hadoop” >input/f1.txt

echo “hello word” >input/f2.txt

echo “hello java” >input/f3.txt

 

 

5.3:在hadoop中創建文件夾

使用以下命令在hadoop中創建文件夾:

hadoop dfs –mkdir input

然后我們查看在hadoop中是否已經創建該文件夾:

hadoop dfs –ls /user/root

 

我們可以看到已經成功在hadoop中創建了input文件夾。

 

5.4:把文件復制到hadoop中

使用以下命令把文件從Linux中復制到hadoop中:

hadoop dfs –put input/* input

查看文件是否在hadoop中:

hadoop dfs –ls input

查看文件內容是否一致:

hadoop dfs –cat input/f1.txt

 

可以看到,文件已經成功放入hadoop文件系統中了。

 

5.5:從瀏覽器中查看文件內容

我們也可以從瀏覽器中瀏覽整個hdfs文件系統的目錄,打開namenode鏈接:

http://192.168.0.107:50070/dfshealth.jsp

然后里面會有個Browse the filesystem超級鏈接,點擊進去就可以看到相應的目錄結構了。

 

5.6:運行examples例子

我們使用以下命令來運行wordcount程序:

hadoop jar ../hadoop-examples-1.2.1.jar wordcount input output

注意當前目錄是bin目錄,而jar包在上一級目錄中,則定位jar包需要用到..來表示上級目錄,wordcount表示jar包中的類名,表示要執行這個類,input是輸入文件夾,output是輸出文件夾,必須不存在,它由程序自動創建,如果預先存在output文件夾,則會報錯。

 

我們可以看到程序已經運行成功,接下來就是查看運行結果了。

5.7:查看運行結果

我們可以查看output文件夾的內容來檢查程序是否成功創建文件夾,通過查看output文件里面的part-r-00000文件的內容來檢查程序執行結果:

 

我們可以看到hadoop出現一次,hello出現3次,java出現一次,world出現一次,這跟預期是一樣的,說明執行成功。

 

6:關閉hadoop進程

如果我們要關閉hadoop集群,則只需要運行stop-all.sh:

cd /data/software/hadoop/hadoop-1.2.1/bin

./stop-all.sh

 

可以看到只有一個jps進程在運行,其它hadoop的進程都已經關閉了。

 


免責聲明!

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



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