您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何進行hadoop-0.20.2安裝及簡單使用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
安裝步驟如下:
1.1 機器說明
總共有4臺機器:sc706-26、sc706-27、sc706-28、sc706-29
IP地址分別為:192.168.153.89、192.168.153.90、192.168.153.91、192.168.153.92
操作系統為:Linux的fedora12
jdk版本為:jdk-6u19-linux-i586
hadoop版本為:hadoop-0.20.2
sc706-26作為NameNode、JobTracker,其他三臺作為DataNode、TaskTracker
1.2 用機器名Ping通機器
用root登錄,修改NameNode和DataNode上的/etc/hosts文件,加入四臺機器的IP地址和機器名,如下:
192.168.153.89 sc706-26
192.168.153.90 sc706-27
192.168.153.91 sc706-28
192.168.153.92 sc706-29
設置好后驗證下各機器間是否ping通,用機器名或是IP地址都可以,例如ping sc706-27或ping 192.168.153.90
1.3 新建hadoop用戶
Hadoop要求所有機器上hadoop的部署目錄結構要相同并且有一個相同的用戶名的帳戶,我的默認路徑為/home/hadoop
1.4 ssh設置及關閉防火墻(需要用到root,su - )
1)fedora裝好后默認啟動sshd服務,如果不確定的話可以查一下 [root@sc706-26 hadoop]# service sshd status
如沒有啟動的話,先啟動 [root@sc706-26 hadoop]# service sshd start
建立ssh無密碼登錄,在NameNode上 [hadoop@sc706-26 ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
會在~/.ssh/生成兩個文件:id_dsa和id_dsa.pub,這兩是成對出現的,把id_dsa.pub文件追加到DataNode上的authorized_keys
[hadoop@sc706-26 ~]$ scp id_dsa.pub sc706-27:/home/hadoop/ (注意其中目標機器后面的:與要傳到的文件路徑之間沒有空格,即sc706:與/home/hadoop/之間沒有空格)
scp id_dsa.pub sc706-28:/home/hadoop/
scp id_dsa.pub sc706-29:/home/hadoop/
登錄到DataNode上,[hadoop@sc706-27 ~]$ cat id_dsa.pub >> ~/.ssh/authorized_keys ,其余兩臺一樣,NameNode上也要追加。注意:追加完后必須修改NameNode和DataNode上的.ssh和authorized_keys的權限,chmod命令,參數755,完成后測試下,例如ssh sc706-27時不需要密碼就可以登錄,就可以知道ssh設置成功。
2)關閉防火墻(NameNode和DataNode都必須關閉)
[root@sc706-26 ~]# service iptables stop
注意:每次重新開機啟動hadoop前都必須關閉
1.5 安裝jdk1.6(幾臺機子都一樣)
在官網http://java.sun.com下載jdk-6u19-linux-i586.bin,之后直接安裝[root@sc706-26 java]#chmod +x jdk-6u19-linux-i586.bin [root@sc706-26 java]# ./jdk-6u19-linux-i586.bin,我的安裝路徑為:/usr/java/jdk1.6.0_19,安裝后添加如下語句到/etc/profile中:
export JAVA_HOME=/usr/java/jdk1.6.0_19
export JRE_HOME=/usr/java/jdk1.6.0_19/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
1.6 安裝hadoop
在官網http://apache.etoak.com//hadoop/core/下載hadoop-0.20.2.tar.gz
[hadoop@sc706-26 ~]$ tar xzvf hadoop-0.20.2.tar.gz
將hadoop的安裝路徑添加到/etc/profile中:
export HADOOP_HOME=/home/hadoop/hadoop-0.20.2
export PATH=$HADOOP_HOME/bin:$PATH
為了讓/etc/profile生效,source一下 [hadoop@sc706-26 ~]$ source /etc/profile
1.7 配置hadoop
其配置文件在/conf目錄下
1)配置JAVA環境
[hadoop@sc706-26 ~]$ vim hadoop-0.20.2/conf/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_19
2)配置conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml文件
[hadoop@sc706-26 ~]$ vim hadoop-0.20.2/conf/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://sc706-26:9000</value>
</property>
</configuration>
[hadoop@sc706-26 ~]$ vim hadoop-0.20.2/conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://sc706-26:9001</value> 注意:sc706-26前能不能加hdfs://不太清楚,本人配了兩個集群,一個加了一個不加都能用
</property>
</configuration>
[hadoop@sc706-26 ~]$ vim hadoop-0.20.2/conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>注意:如果設為1,數據只有一個副本,假如其中一個datanode出問題,將會導致整個job失敗
</property>
</configuration>
3)將NameNode上完整的hadoop拷貝到DataNode上,可先將其進行壓縮后直接scp過去或是用盤拷貝過去
4) 配置NameNode上的conf/masters和conf/slaves
masters:192.168.153.89
slaves:192.168.153.90
192.168.153.91
192.168.153.92
1.8 運行hadoop
1)格式化文件系統
[hadoop@sc706-26 hadoop-0.20.2]$ hadoop namenode -format
注意:格式化時要防止NameNode的namespace ID與DataNode的namespace ID的不一致,因為每格式化一次會產生Name、Data、tmp等臨時文件記錄信息,多次格式化會產生很多,會導致ID的不同,造成hadoop不能運行
2)啟動hadoop
[hadoop@sc706-26 hadoop-0.20.2]$ bin/start-all.sh
3)用jps命令查看進程,NameNode上的結果如下:
25325 NameNode
25550 JobTracker
28210 Jps
25478 SecondaryNameNode
4)查看集群狀態
[hadoop@sc706-26 hadoop-0.20.2]$ hadoop dfsadmin -report
確保運行的DataNode個數是正確的,我的是3個,這樣可以查看哪個DataNode沒有運行
5)用hadoop的web方式查看
[hadoop@sc706-26 hadoop-0.20.2]$ links http://192.168.153.89(即為master):50070
1.9 運行Wordcount.java程序
1)先在本地磁盤上建立兩個文件f1和f2
[hadoop@sc706-26 ~]$ echo ”hello Hadoop goodbye hadoop” > f1
[hadoop@sc706-26 ~]$ echo ”hello bye hadoop hadoop” > f2
2)在hdfs上建立一個input目錄
[hadoop@sc706-26 ~]$ hadoop dfs -mkdir input
3)將f1和f2拷貝到hdfs的input目錄下
[hadoop@sc706-26 ~]$ hadoop dfs -copyFromLocal /home/hadoop/f* input
4)查看hdfs上有沒有input目錄
[hadoop@sc706-26 ~]$ hadoop dfs -ls
5)查看input目錄下有沒有復制成功f1和f2
[hadoop@sc706-26 ~]$ hadoop dfs -ls input
6)執行wordcount(確保hdfs上沒有output目錄)
[hadoop@sc706-26 hadoop-0.20.2]$ hadoop jar hadoop-0.20.2-examples.jar wordcount input output
7)運行完成,查看結果
[hadoop@sc706-26 hadoop-0.20.2]$ hadoop dfs -cat output/part-r-00000
關于如何進行hadoop-0.20.2安裝及簡單使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。