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的進程都已經關閉了。
總結
以上是生活随笔為你收集整理的hadoop1.2.1伪分布模式安装教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop1.2.1伪分布模式配置
- 下一篇: Hadoop Eclipse开发环境设