hadoop0.20.2集羣搭建 Ubuntu14.04 環境

配前準備java

一.   安裝環境:Ubuntu 14.04 ---------一共三臺機器node

其中一臺namenode+jobtracker (master) , 兩臺 datanode + tasktracker(hadoop, salve1)c++

下表爲各個機器的具體內容web

ip                     username/password  hostnameapp

10.60.38.165    hadoop/123456          hadoop
ssh

10.60.38.166     hadoop/123456         master
oop

10.60.38.155     hadoop/123456         salve1  (......竟然拼錯了,我靠)
測試

在每臺機器的/etc/hosts 下面 添加spa

10.60.38.165     hadoop.net

10.60.38.166     master

10.60.38.155     salve1

使得各臺機器相互之間能夠ping通(經過hostname能夠ping)

(ps: /etc/hosts 裏面的數據所有清空,只留上面的三個 以及第一項: 127.0.0.1   localhost )


二.    SSH 無密碼驗證配置

1.由於大部分Linux裏面默認已經安裝好了ssh,我在安裝時已經默認安裝好,可是ssh service 沒有安裝,使用 sudo apt-get install openssh-server 來安裝 ssh service。(確保 22端口號處於監聽狀態:netstat -nat 查看)

2.在每臺機器上都執行 下面命令: ssh-kengen -t rsa -P ""

一路enter (將密鑰的位置保存在默認的路徑下)

在user的當前目錄下出現目錄/.ssh(默認的權限爲700)

裏面生成兩個文件 id_rsa 和 id_rsa.pub

3.接着在 Master 節點上作以下配置把id_rsa.pub 追加到受權的key 裏面

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

4.下面在其餘兩臺機器上依次執行命令將各自生成的id_rsa.pub 添加到Master 下的authorized_keys 裏面

cat id_rsa.pub | ssh hadoop@master  "cat >> ~/.ssh/authorized_keys  ( 此時 ssh 到 另一臺機器上 須要另一臺機器的密碼)

5.最後將Master 機器上獲得的 authorized_keys 依次添加到 各臺機器的 /home/hadoop/.ssh 目錄下

scp authorized_keys hadoop@hadoop :~/.ssh

scp authorized_keys hadoop@salve1:~/.ssh

6.配置完成後在每一臺機器上均可以無密碼驗證登陸另一臺機器了。因而這一步搞定。

在每臺機器上安裝jdk 和 Hadoop 


配置Hadoop (此處個人版本爲hadoop0.20.2,jdk1.7)

----在配置文件中設值時,兩邊千萬不能有空格,否則無效

接下來配置配置文件:hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml

PS:

對於hadoop-env.sh 各個節點的配置都是相同的。

對於master節點,須要額外配置slaves 文件,在裏面添加各個datanode  的ip 地址

下面附上master節點與Hadoop節點的配置(salve1與Hadoop相似,只需修改對於的ip,這裏我已經大部分採用系統默認配置,因此無需更改)

hadoop-env.sh:

export JAVA_HOME=/opt/jdk1.7

(就在最後面加上便可)

core-site.xml:

<configuration>

        <property>

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

                    <value>hdfs://master:9000</value>

        </property>

</configuration>

ps: 這裏當我添加屬性 hadoop.tmp.dir 改變其默認路徑時,集羣在啓動時報錯。。。。未解,先暫時啓用默認路徑。還望大神指教。

hdfs-site.xml:

<configuration>

        <property>

                    <name>dfs.webhdfs.enabled</name>

                    <value>true</value>

        </property>

</configuration>

<configuration>

        <property>

                    <name>dfs.replication</name>

                    <value>2</value>

        </property>

</configuration>

mapred-site.xml:

<configuration>

        <property>

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

                    <value>10.60.38.166:9001</value>

        </property>

</configuration>

slaves:

10.60.38.165      hadoop

10.60.38.155      salve1

masters:

master


在master節點配置好了而後複製到各個Datanode 節點。

注意:這裏的master, slaves 文件在複製的時候能夠不用變更,系統會自動忽略。並且配置都不須要改變,由於已經儘可能採用了默認配置

---------------------------------------------------------------------------------------------------------------------

測試運行

通過如下幾步:

1.create some files(file01.txt, file02.txt) 

2.hadoop fs -mkdir input

3.hadoop fs -put file*.txt input

4.hadoop jar /opt/hadoop/hadoop-0.20.2-examples.jar wordcount input output

5.hadoop fs -ls output

6.hadoop fs -cat output/part-r-00000

最獲得結果:

;slkdfj 1

aer 1

apple 1

are 1

asfjjjf 1

c++ 1

fj 1

hello 2

java 3

tantairs 1

world4

相關文章
相關標籤/搜索