日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop的安装与配置及示例程序wordcount的运行

發(fā)布時(shí)間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop的安装与配置及示例程序wordcount的运行 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言

最近在學(xué)習(xí)Hadoop,文章只是記錄我的學(xué)習(xí)過程,難免有不足甚至是錯(cuò)誤之處,請大家諒解并指正!Hadoop版本是最新發(fā)布的Hadoop-0.21.0版本,其中一些Hadoop命令已發(fā)生變化,為方便以后學(xué)習(xí),這里均采用最新命令。具體安裝及配置過程如下:

1?機(jī)器配置說明

總共有3臺機(jī)器:hzau01、hzau02、hzau03

IP地址分別為:192.168.0.4、192.168.0.17、192.168.0.6

操作系統(tǒng)為:Linux2.6.33.3-85.fc13.i686.PAE

jdk版本為:jdk1.6.0_23

hadoop版本為:hadoop-0.21.0

hzau01作為NameNode、JobTracker,其他兩臺臺作為DataNode、TaskTracker

2??查看機(jī)器間是否能相互通信(使用ping命令)

用root登錄,在NameNode上修改/etc/hosts文件,加入三臺機(jī)器的IP地址和機(jī)器名,如下:

192.168.0.4??hzau01

192.168.0.17??hzau02

192.168.0.6??hzau03

??????設(shè)置好后驗(yàn)證下各機(jī)器間是否ping通,用機(jī)器名或是IP地址都可以,例如ping?hzau02或ping?192.168.0.17

Hadoop要求所有機(jī)器上hadoop的部署目錄結(jié)構(gòu)要相同并且有一個(gè)相同的用戶名的帳戶,我的默認(rèn)路徑為/home/garon

3??ssh設(shè)置及關(guān)閉防火墻

1)fedora裝好后默認(rèn)啟動sshd服務(wù),如果不確定的話可以查一下?[garon@hzau01?~]$?service?sshd?status

如沒有啟動的話,先啟動?[root@hzau01?~]#?service?sshd?start

建立ssh無密碼登錄,在NameNode上?[garon@hzau01?~]ssh-keygen?-t?dsa?-P?''?-f?~/.ssh/id_dsa(''為兩個(gè)單引號)

會在~/.ssh/生成兩個(gè)文件:id_dsa和id_dsa.pub,這兩是成對出現(xiàn)的,把id_dsa.pub文件追加到DataNode上的authorized_keys

[garon@hzau01?~]$?scp?~/.ssh/id_dsa.pub?hzau02:/home/garon/.ssh?(注意其中目標(biāo)機(jī)器后面的:與要傳到的文件路徑之間沒有空格,即sc706:與/home/hadoop/之間沒有空格)

???scp?~/.ssh/id_dsa.pub?hzau03:/home/garon/.ssh

登錄到DataNode上,[garon@hzau02?~]$?cat?~/.ssh/id_dsa.pub?>>?~/.ssh/authorized_keys?,其余一臺一樣,注意:追加完后必須修改NameNode和DataNode上的.ssh和authorized_keys的權(quán)限,chmod命令,參數(shù)600,完成后測試下,例如ssh?hzau02時(shí)不需要密碼就可以登錄,就可以知道ssh設(shè)置成功。

2)關(guān)閉防火墻(NameNode和DataNode都必須關(guān)閉)

?[root@hzau01?~]#?service?iptables?stop

注意:每次重新開機(jī)啟動hadoop前都必須關(guān)閉

4?安裝jdk1.6(集群中機(jī)子都一樣)

下載jdk-6u23-ea-bin-b03-linux-i586-18_oct_2010.bin,之后直接安裝,我的安裝路徑為:/usr/java/jdk1.6.0_23,安裝后添加如下語句到/etc/profile中:

export?JAVA_HOME="/usr/java/jdk1.6.0_23"

export?JRE_HOME=/usr/java/jdk1.6.0_23/jre

export?CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export?PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

5?安裝hadoop(集群中機(jī)子都一樣)

在官網(wǎng)http://apache.etoak.com//hadoop/core/下載hadoop-0.21.0.tar.gz

[garon@hzau01?~]$?tar?xzvf?hadoop-0.21.0.tar.gz

將hadoop的安裝路徑添加到/etc/profile中:

export?HADOOP_HOME=/home/garon/hadoop-0.21.0

export?PATH=$HADOOP_HOME/bin:$PATH

為了讓/etc/profile生效,source一下?[garon@hzau01?~]$?source?/etc/profile

6?配置hadoop

其配置文件在/conf目錄下

1)配置JAVA環(huán)境

[garon@hzau01?~]$$?vi?~/hadoop/hadoop-0.21.0/conf/hadoop-env.sh

export?JAVA_HOME=/usr/java/jdk1.6.0_23

2)配置conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml文件

[garon@hzau01?hadoop-0.21.0]$?vi?conf/core-site.xml

<configuration>

?????<property>

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

??????????<value>/home/garon/hadoopgaron</value>

?????</property>

?????<property>

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

??????????<value>hdfs://hzau01/</value>

?????</property>

</configuration>

[garon@hzau01?hadoop-0.21.0]$?vi?conf/mapred-site.xml

<configuration>

?????<property>

??????????<name>mapred.jobtracker.address</name>

??????????<value>hzau01:9001</value>

?????</property>

</configuration>

[garon@hzau01?hadoop-0.21.0]$?vi?conf/hdfs-site.xml

<configuration>

?????<property>

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

??????????<value>/home/garon/hadoopname</value>

?????</property>

?????<property>

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

??????????<value>/home/garon/hadoopdata</value>

?????</property>

?????<property>

??????????<name>dfs.replication</name>

??????????<value>1</value>

?????</property>

</configuration>

3)將NameNode上完整的hadoop拷貝到DataNode上,可先將其進(jìn)行壓縮后直接scp過去或是用盤拷貝過去

4)?配置NameNode上的conf/masters和conf/slaves

masters:192.168.0.4

slaves:192.168.0.17

192.168.0.6

7?運(yùn)行hadoop

1)格式化文件系統(tǒng)

[garon@hzau01?bin]$?hdfs?namenode?-format

注意:格式化時(shí)要防止NameNode的namespace?ID與DataNode的namespace?ID的不一致,因?yàn)槊扛袷交淮螘a(chǎn)生Name、Data、tmp等臨時(shí)文件記錄信息,多次格式化會產(chǎn)生很多,會導(dǎo)致ID的不同,造成hadoop不能運(yùn)行

2)啟動hadoop

[garon@hzau01?bin]$?start-dfs.sh

[garon@hzau01?bin]$?start-mapred.sh

3)用jps命令查看進(jìn)程,NameNode上的結(jié)果如下:

5334?JobTracker

5215?SecondaryNameNode

5449?Jps

5001?NameNode

4)查看集群狀態(tài)

[garon@hzau01?bin]$?hdfs?dfsadmin?-report

確保運(yùn)行的DataNode個(gè)數(shù)是正確的,我的是2個(gè),這樣可以查看哪個(gè)DataNode沒有運(yùn)行

8?運(yùn)行Wordcount.java程序

1)先在本地磁盤上建立兩個(gè)文件f1和f2

[garon@hzau01?bin]$?echo?”Hello?world?Bye?world"?>?~/input/f1

[garon@hzau01?bin]$?echo?”hello?hadoop?bye?hadoop”?>?~/input/f2

2)在hdfs上建立一個(gè)input目錄

[garon@hzau01?bin]$?hadoop?fs?-mkdir?/tmp/input

3)將f1和f2拷貝到hdfs的input目錄下

[garon@hzau01?bin]$?hadoop?fs?-put?/home/garon/input?/tmp

4)查看hdfs上有沒有f1,f2

[garon@hzau01?bin]$?hadoop?fs?-ls?/tmp/input

5)執(zhí)行wordcount(確保hdfs上沒有output目錄)

[garon@hzau01?bin]$?hadoop?jar?../hadoop-mapred-examples-0.21.0.jar?wordcount?/tmp/input?/output

6)運(yùn)行完成,查看結(jié)果

???????[garon@hzau01?bin]$?hadoop?fs?-cat?/output/part-r-00000

???????Bye????????1

???????Hello????????1

???????bye????????1

???????hadoop???2

???????hello????????1

???????world?2

總結(jié)

以上是生活随笔為你收集整理的Hadoop的安装与配置及示例程序wordcount的运行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。