配置ssh免密登陸
前提:master和slave節(jié)點配置相同。
本環(huán)境中已默認安裝了SSH服務,所以我們只需要對其進行配置即可。
1、生成密鑰命令:
ssh-keygen -P ""

在/root/.ssh目錄下可以看到有authorized_keys、id_rsa、id_rsa.pub三個文件
cd /root/.ssh
ls

2、將master的公鑰id_rsa.pub復制到master、slave1、slave2的authorized_keys里面,這樣就可以讓master免密鑰登錄到master、slave1、slave2。
首先對master自身做免密,如下
ssh-copy-id root@images.handge.cn


測試ssh連接到master
ssh master

測試完畢,退出連接使用exit命令。

使用同樣的方法讓master節(jié)點能夠免密登錄到slave1、和slave2。
ssh-copy-id root@192.168.1.3
ssh-copy-id root@192.168.1.4
安裝hadoop
1、切換到hadoop壓縮包所在位置,解壓文件
cd /opt
tar -zxvf /opt/hadoop-2.7.3.tar.gz -C /opt

2、配置環(huán)境變量
編輯/etc/profile文件,在PATH參數(shù)后面追加hadoop路徑
vim /etc/profile
編輯如下:
<pre class="md-fences md-end-block" lang="" contenteditable="false" cid="n92" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: ; background-position: var(--code-block-bg-color); background-size: ; background-repeat: var(--code-block-bg-color); background-attachment: ; background-origin: ; background-clip: ; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
export JAVA_HOME=/opt/jdk1.8.0_111
export PATH=PATH:/opt/hadoop-2.7.3/bin:/opt/hadoop-2.7.3/sbin
export CLASSPATH=.:JAVA_HOME/lib/tools.jar
</pre>

使配置文件生效
source /etc/profile
3、配置分布式環(huán)境
集群/分布式模式需要修改
/opt/hadoop-2.7.3/etc/hadoop中的七個配置文件,slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、hadoop-env.sh、yarn-env.sh,其中文件
mapred-site.xml (需要先重命名,默認文件名為 mapred-site.xml.template)
切換到/opt/hadoop-2.7.3/etc/hadoop目錄下
cd /opt/hadoop-2.7.3/etc/hadoop
ls

重命名mapred-site.xml.template為mapred-site.xml
mv mapred-site.xml.template mapred-site.xml

ls

3.1、文件 slaves,將作為 DataNode 的主機名寫入該文件,每行一個,默認為
localhost,分布式配置可以保留 localhost,也可以刪掉,讓 Master 節(jié)點僅作為
NameNode 使用。 這里讓 master 節(jié)點僅作為 NameNode 使用,因此將文件中原來的
localhost 刪除,添加兩行內(nèi)容:Slave1和Slave2。
編輯slaves文件
vim slaves
編輯如下:
<pre class="md-fences md-end-block" lang="" contenteditable="false" cid="n136" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: ; background-position: var(--code-block-bg-color); background-size: ; background-repeat: var(--code-block-bg-color); background-attachment: ; background-origin: ; background-clip: ; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
slave1
slave2
</pre>

3.2、編輯文件 core-site.xml,改為下面的配置
vim core-site.xml
配置文件編輯如下:
<pre class="md-fences md-end-block" lang="" contenteditable="false" cid="n144" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: ; background-position: var(--code-block-bg-color); background-size: ; background-repeat: var(--code-block-bg-color); background-attachment: ; background-origin: ; background-clip: ; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/tmp</value>
</property>
</configuration>
</pre>

3.3、編輯文件 hdfs-site.xml,其中dfs.replication 一般設為 3吧 ,但我們有兩個
Slave 節(jié)點,所以 dfs.replication 的值還是設為 2。
vim hdfs-site.xml
配置文件編輯如下
<pre class="md-fences md-end-block" lang="" contenteditable="false" cid="n155" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: ; background-position: var(--code-block-bg-color); background-size: ; background-repeat: var(--code-block-bg-color); background-attachment: ; background-origin: ; background-clip: ; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
<configuration>
?
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
?
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
?
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/dfs/name</value>
</property>
?
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/dfs/data</value>
</property>
?
</configuration>
</pre>

3.4、編輯文件 yarn-site.xml
vim yarn-site.xml
<pre class="md-fences md-end-block" lang="" contenteditable="false" cid="n162" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: ; background-position: var(--code-block-bg-color); background-size: ; background-repeat: var(--code-block-bg-color); background-attachment: ; background-origin: ; background-clip: ; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
<configuration>
?
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
?
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
?
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
?
</configuration>
</pre>

3.5、編輯文件 mapred-site.xml
vim mapred-site.xml
<pre class="md-fences md-end-block" lang="" contenteditable="false" cid="n169" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: ; background-position: var(--code-block-bg-color); background-size: ; background-repeat: var(--code-block-bg-color); background-attachment: ; background-origin: ; background-clip: ; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
<configuration>
?
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
?
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
?
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
?
</configuration>
</pre>

3.6、修改hadoop-env.sh文件下面java的路徑
vim hadoop-env.sh
配置文件編輯如下:
export JAVA_HOME=/opt/jdk1.8.0_111

3.7、修改yarn-env.sh文件,修改JAVA_HOME值
vim yarn-env.sh
配置文件編輯如下:
export JAVA_HOME=/opt/jdk1.8.0_111

前提:安裝hadoop時,master和slave節(jié)點配置文件完全相同,這里介紹了master的安裝及配置。Slave可以通過手動配置,配置時請參考master,也可通過scp命令將master配置文件拷貝到slave的相同目錄下,如:
scp -r /opt/hadoop-2.7.3 root@slave1:/opt
scp -r /opt/hadoop-2.7.3 root@slave2:/opt
將master節(jié)點的配置文件拷貝到slave節(jié)點,其中 scp -r 表示拷貝目錄。
啟動hadoop
前提:啟動hadoop時,在master節(jié)點上面啟動。
1、第一次啟動需要在master的hadooop安裝目錄(/opt/hadoop-2.7.3)下執(zhí)行format。
cd /opt/hadoop-2.7.3
./bin/hdfs namenode -format

2、啟動hadoop命令,在master的hadooop安裝目錄的sbin(/opt/hadoop-2.7.3/sbin)下執(zhí)行。
cd /opt/hadoop-2.7.3/sbin/
ls

2.1、啟動命令
start-all.sh

jps查看集群進程
在hadoop集群開啟的狀態(tài)下,執(zhí)行jps命令查看集群相關進程是否已完全啟動。
master節(jié)點:
啟動驗證,master節(jié)點上應該有4個進程,分別是Jps、NameNode、SecondaryNameNode、ResourceManager,則表示master節(jié)點上面啟動hadoop成功。
?
jps

Slave1節(jié)點:
啟動驗證,slave1節(jié)點上應該有3個進程,分別是Jps、DataNode、NodeManager。
?
jps

Slave2節(jié)點:
啟動驗證,slave1節(jié)點上應該有3個進程,分別是Jps、DataNode、NodeManager。
?
jps

瀏覽器訪問hadoop
1、打開desktop節(jié)點
,登錄之后(密碼為123456),在瀏覽器上面輸入
,可以查看hadoop集群的概況。注:這里的images.handge.cn是主節(jié)點的IP,50070是NameNode默認的端口號。

2、打開desktop節(jié)點
,登錄之后在瀏覽器上面輸入
,查看hadoop集群中節(jié)點的情況。注:這里的images.handge.cn是主節(jié)點的IP,8088是默認的ResourceManager的端口號。

3、在hadoop集群的概況頁面中,點擊上方菜單欄里面的Datanodes,可以查看Datanode的詳細信息。

eclipse配置
說明:Eclipse的配置需要在Desktop節(jié)點上,登錄默認的密碼是123456。
安裝插件
-
eclipse想要運行在hadoop集群上,需要安裝hadoop-eclipse-plugin插件。首先需要將/opt目錄下的hadoop-eclipse-plugin-2.6.0.jar包復制到eclipse的目錄的plugins下面。
1、登錄之后,在左邊菜單欄點擊終端圖標,如下:
image1.1、在終端切換到root
suimage1.2、將/opt目錄下的hadoop-eclipse-plugin-2.6.0.jar包復制到eclipse的目錄的plugins下。
scp /opt/hadoop-eclipse-plugin-2.6.0.jar /opt/eclipse/pluginsimage 環(huán)境配置
1、啟動eclipse,切換到eclipse所在的目錄下,這里的目錄為(/opt/eclipse)
cd /opt/eclipse
ls

1.2、啟動eclipse
./eclipse

2、點擊上方菜單欄里面的“window->Preferences”, 點擊Preferences。
2.1、在搜索框中輸入hadoop,選擇“Hadoop Map/Reduce”。
2.2、點擊“瀏覽”添加hadoop的安裝目錄(這里的安裝目錄為:/opt/hadoop-2.7.3)。


2.3、點擊“Apply”應用。 2.4、點擊“OK”。

3、在界面左邊的“Project Explorer”顯示出“DFS
Location”,在上方菜單欄點擊“window->Open
Perspective->Other”,在彈出框選擇“MapReduce欄”,最后點擊“OK”。在界面下方會顯示如下界面:

4、新建一個Location:鼠標右鍵點擊空白區(qū)域。如下圖:

5、編輯新建的Location。如下圖:

編輯新建的Location,需要注意一下幾點:
(a)、Location name 是你為所創(chuàng)建的Location的命名,可以任意填寫。
(b)、Map/Reduce(V2)
Master區(qū)域,有兩個參數(shù)需要配置,Host和Port,其中,Host為主節(jié)點的hostname或者IP,Port是jobtracker的端口號,這里使用9001。
(c)、DFS
Master區(qū)域,同樣有兩個參數(shù)要配置,Host和Port,其中,Host默認和Map/Reduce(V2)
Master區(qū)域的Host相同,不需要做更改,Port處需要填寫與core-site.xml文件里面的端口,這里填寫9000。
6、配置完畢之后,點擊“Finish”。在界面下方會出現(xiàn)新建的Location。如下圖:

在界面左側(cè)的Project
Explorer中,則會出現(xiàn)相應的文件夾。(由于最開始沒有建文件夾,因此這里顯示為0)。如下圖:

到這里,eclipse在hadoop-2.7.3上面的搭建已經(jīng)完成。用戶就可以使用Eclipse環(huán)境在hadoop集群上進行開發(fā)。
停止hadoop
執(zhí)行停止命令,即:
stop-all.sh


