準(zhǔn)備工作:
1涩金。VMware Workstation 14 中安裝虛擬機(jī) 哪痰,版本為 CentOS7(我搭建的集群為三臺(tái)诈唬,安裝一臺(tái)克隆兩臺(tái),這里不做解釋宁否,可自行百度)
2窒升。JDK1.8 ,下載地址為 https://pan.baidu.com/s/15YA23CYnT3L-9f6Ao-gzrw
3慕匠。hadoop2.7.5 下載地址為 https://pan.baidu.com/s/1Fyfb77R6Tl1ct3pm_yaLdA
新建用戶
每個(gè)虛擬機(jī)創(chuàng)建一個(gè)hadoop用戶并加入到root組中
#添加用戶hadoop到root組中
useradd -m hadoop -G root -s /bin/bash
#修改用戶密碼--輸入密碼饱须,再次輸入密碼 (建議密碼也設(shè)置為hadoop)
passwd hadoop
修改ip為靜態(tài)ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
注意: 最后末尾處添加的ip地址網(wǎng)段要和虛擬機(jī)中的網(wǎng)段保持一致,(Ip自定義但是不能超過255)
其中這兩個(gè)中的第三位數(shù)字要和VMware Workstation中的網(wǎng)段一致台谊,查看網(wǎng)段看第二張圖
打開的位置是 :編輯 ->虛擬網(wǎng)絡(luò)編輯器
IPADDR=192.168.255.131
GATEWAY=192.168.255.2
[圖片上傳失敗...(image-9a351-1533830514337)]
[圖片上傳失敗...(image-18b636-1533830514338)]
修改完成后 蓉媳,重啟網(wǎng)管
[root@dnn1 ~]systemctl restart network
然后修改主機(jī)名方便以后訪問(不需要在輸入ip那么麻煩了以后)
[root@dnn1 ~]# echo nnn > /etc/hostname
修改映射
vim /etc/hosts
向這個(gè)hosts文件追加三行 ,格式為 Ip地址 主機(jī)名 青伤,一會(huì)方便linux 系統(tǒng)之間進(jìn)行通信
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.255.130 nn
192.168.255.131 dn1
192.168.255.132 dn2
完成之后重啟
[root@dnn1 ~]# reboot
安裝上述的方法將其他兩臺(tái)虛擬機(jī)也修改了督怜,保證ip不一樣就可以
root 是超級管理員用戶,所做操作無法更改狠角,我們集群的搭建是在hadoop 用戶上搭建的号杠,標(biāo)題即使以后有什么問題也不會(huì)影響到整個(gè)系統(tǒng)
用hadoop用戶登錄到每臺(tái)機(jī)器上
[root@dnn1 ~]# sudo hadoop
在用戶根目錄下面配置 SSH 無密碼登錄
[hadop@nnn ~]$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
[hadop@nnn ~]$ ssh-copy-id dnn1
[hadop@nnn ~]$ ssh-copy-id dnn2
##然后測試是否主機(jī)之間登錄是否需要密碼
[hadop@nnn ~]$ ssh dnn1
#查看主機(jī)名,打印的是dnn1 丰歌,無密碼登錄成功姨蟋,然后退出
[hadop@dnn1 ~]$ hostname
dnn1
[hadop@dnn1 ~]$ exit
[hadop@nnn ~]$ ssh dnn2
#查看主機(jī)名,打印的是dnn2 立帖,無密碼登錄成功眼溶,然后退出
[hadop@dnn2 ~]$ hostname
dnn2
[hadop@dnn1 ~]$ exit
配置Java和Hadoop 的環(huán)境變量
新建opt文件夾(用于存放安裝Linux軟件的)
將下載的 jdk 1.8 和hadoop2.7.5的安裝包解壓到opt 文件夾中,然后解壓配置環(huán)境變量
[hadop@nnn ~]$ mkdir opt
[hadop@nnn ~]$ vi ~/.bashrc
###向文件中添加如下代碼(jdk8文件夾和hadoop2 是jdk 和hadoop文件解壓后更改的名字)
#JAVA_JDK1.8
export JAVA_HOME=/home/hadoop/opt/jdk8
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP
export HADOOP_HOME=/home/hadoop/opt/hadoop2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
使環(huán)境變量生效(每臺(tái)機(jī)子)
[hadop@nnn ~]$ source ~/.bashrc
集群搭建開始了
搭建hadoop全分布式集群
進(jìn)入hadoop解壓目錄
在/home/hadoop/opt/hadoop2/etc/hadoop/文件夾下面修改以下 5個(gè)文件
1 core-site.xml
2 hdfs-site.xml
3 mapred-site.xml
4 yarn-site.xml
5 slaves
1.core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://nnn:9000</value>
<!-- nnn是master 的 主機(jī)名晓勇, 9000不固定堂飞,只要端口沒有被占用就可以 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/opt/hadoop2/tmp</value>
</property>
</configuration>
2.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
<!-- 這個(gè)數(shù)字2 代表你有幾臺(tái)子節(jié)點(diǎn),這個(gè)不要錯(cuò) -->
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>nnn:50090</value>
<!-- nnn是master 的 主機(jī)名 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/opt/hadoop2/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/opt/hadoop2/tmp/dfs/data</value>
</property>
</configuration>
3.mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.app-submission.cross-platform</name>
<value>true</value>
</property>
</configuration>
4.yarn-site.xml 配置yarn的主機(jī)地址洗牌的默認(rèn)框架
<property>
<name>yarn.resourcemanager.hostname</name>
<value>nnn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
5.slaves #配置所有dn的主機(jī)名稱
dn1
dn2
進(jìn)入hadoop的安裝目錄绑咱,遠(yuǎn)程分發(fā)到服務(wù)器上
[hadop@dnn1 ~]$ cd /home/hadoop/opt/
#將整個(gè)hadoop2 復(fù)制到 其他兩臺(tái)機(jī)器上 $PWD 是當(dāng)前的目錄绰筛,意思是將 hadoop2 整個(gè)文件夾復(fù)制到dnn1和dnn2 的這個(gè)相同路徑下
scp -r hadoop2/ dnn1:$PWD
scp -r hadoop2/ dnn2:$PWD
啟動(dòng)集群
一、格式化hdfs 文件系統(tǒng)(只需要這第一次描融,以后啟動(dòng)不需要了铝噩,只在nnn(master節(jié)點(diǎn)上啟動(dòng),其他的節(jié)點(diǎn)不需要啟動(dòng)) )
[hadop@nnn ~]$ hadoop namenode -format
二窿克、啟動(dòng)dfs 服務(wù)和yarn 服務(wù)
[hadop@nnn ~]$ start-dfs.sh
[hadop@nnn ~]$ start-yarn.sh
三骏庸、驗(yàn)證是否有開啟的服務(wù),在nnn(master 機(jī)器上) 輸入jps 查看有進(jìn)程沒有
[圖片上傳失敗...(image-f8892e-1533830514338)]
然后分別在 dnn1 和dnn2 (slaves 節(jié)點(diǎn)) 輸入jps 查看是否有進(jìn)程
[圖片上傳失敗...(image-435199-1533830514338)]
四年叮、驗(yàn)證是否能夠在web 端瀏覽頁面具被,在瀏覽器中輸入 nnn:50070
注意: 如果你的頁面打不開,有兩種可能只损,
1.你在windows 上的ip 映射沒有配置硬猫,
2 Linux 的防火墻沒有關(guān)
1修改windows ip 映射
C:\Windows\System32\drivers\etc\hosts
將這個(gè)文件拷貝到桌面上,修改后 覆蓋(管理員權(quán)限,無法直接打開修改啸蜜,只能替換)
末尾添加
[圖片上傳失敗...(image-ceee38-1533830514338)]
2修改防火墻
`
禁止開機(jī)啟動(dòng)
[root@nnn ~]# systemctl disable firewalld
修改里面的參數(shù) SELINUX=disabled
[root@nnn ~]# vim /etc/selinux/config
以后開機(jī)就永遠(yuǎn)都是關(guān)閉防火墻了
`
再次測試訪問hadoop web 頁面
訪問nnn:50070
[圖片上傳失敗...(image-cb0d1f-1533830514338)]
查看活著的子節(jié)點(diǎn)是否為2 (即子節(jié)點(diǎn)的數(shù)量)
[圖片上傳失敗...(image-f6768-1533830514338)]
因?yàn)槲业募河腥_(tái)坑雅,master 一臺(tái),slave為兩臺(tái)衬横,所以活著的節(jié)點(diǎn)信息是2
到此集群就啟動(dòng)成功了~
哈哈9痢!蜂林! 恭喜你遥诉,集群搭建成功,若有什么問題噪叙,歡迎留言矮锈!我會(huì)給大家回復(fù)的