HADOOP集群搭建
1.集群簡介
Hadoop集群具體來說包含兩個集群:HDFS集群和YARN集群季春,兩者邏輯上分離,但物理上常在一起萌朱。
HDFS集群:負(fù)責(zé)海量數(shù)據(jù)的存儲睦焕,集群中的角色主要有? ?NameNode? / DataNode。
YARN集群:負(fù)責(zé)海量數(shù)據(jù)運(yùn)算時的資源調(diào)度护糖,集群中的角色主要有ResourceManager / NodeManager褥芒。
本集群搭建案例,以3節(jié)點(diǎn)為例進(jìn)行搭建嫡良。
2.服務(wù)器準(zhǔn)備
本案例使用虛擬機(jī)服務(wù)器搭建HADOOP集群锰扶,所用軟件及版本:
VMware? Workstation 12 Pro? 12.5.6
CentOS 6.5? ?64 bit
JDK 1.8? linux? 64bit
Hadoop 2.8.1
3.網(wǎng)絡(luò)環(huán)境配置
采用NAT方式聯(lián)網(wǎng)、網(wǎng)關(guān)地址自定如:192.168.220.1寝受、3個節(jié)點(diǎn)IP地址如(192.168.220.128, 192.168.220.129坷牛, 192.168.220.130)、子網(wǎng)掩碼:255.255.255.0
話不多說開始在VMware裝CentOS系統(tǒng)
先打開VMware,我之前已經(jīng)裝好了再重新裝個CentOS系統(tǒng)
在導(dǎo)航欄點(diǎn)擊編輯? ? 選擇虛擬網(wǎng)絡(luò)編輯器? ? ?就可以設(shè)置網(wǎng)段和網(wǎng)關(guān)
然后創(chuàng)建新的虛擬機(jī)(我之間已經(jīng)創(chuàng)建了一個master虛擬器現(xiàn)在再建個master2)
安裝CentOS系統(tǒng)
恭喜你已經(jīng)成功安裝好CentOS系統(tǒng)很澄!
4.準(zhǔn)備SSH連接工具
Xshell? SecureCRT(我用著這個)
SecureCRT是一款支持SSH(SSH1和SSH2)的終端仿真程序京闰,簡單地說是Windows下登錄UNIX或Linux服務(wù)器主機(jī)的軟件。
查看用戶的IP地址:
用SecureCRT工具連接虛擬機(jī)只要配置下IP地址? 用戶名和密碼就可以甩苛,具體細(xì)節(jié)就不介紹蹂楣。
修改主機(jī)名及其對應(yīng)的IP地址
sudo vi /etc/hosts(之前配過一次就把之前的master信息拿過來)
需要在slave01和slave02機(jī)子上弄同樣的配置
(還需要ping一下看能不能同如:ping slave01)
修改用戶權(quán)限
先切換到root用戶 su root
修改 /etc/sudoers 文件,找到下面兩行
## Allow root to run any commands anywhere
root? ? ALL=(ALL)? ? ? ALL
加上一行比如我的用戶是hadoop所以:hadoop? ? ALL=(ALL)? ? ?ALL
每臺機(jī)子關(guān)閉防火墻
關(guān)閉虛擬機(jī)防火墻:
關(guān)閉命令:? service iptables stop
永久關(guān)閉防火墻:chkconfig iptables off
兩個命令同時運(yùn)行讯蒲,運(yùn)行完成后查看防火墻關(guān)閉狀態(tài)
service iptables status
1 關(guān)閉防火墻-----service iptables stop
2 啟動防火墻-----service iptables start
3 重啟防火墻-----service iptables restart
4 查看防火墻狀態(tài)--service iptables status
5 永久關(guān)閉防火墻--chkconfig iptables off
6 永久關(guān)閉后啟用--chkconfig iptables on
先查看防火墻狀態(tài)
service iptables status(需要換root用戶或前面加上sudo)
永久關(guān)閉selinux: vi /etc/selinux/config(普通用戶前面加個sudo)
找到SELINUX 行修改成為:SELINUX=disabled:
關(guān)閉防火墻-----service iptables stop(普通用戶加個sudo)痊土,sudo chkconfig iptables off? 重啟后生效
重啟后再查看狀態(tài)sudo? service iptables status
配置JDK
下載jdk就不多說了我下的是(jdk-8u131-linux-x64.tar.gz)
安裝在哪個路徑下可以自己定(我裝下/home/hadoop(用戶)? 路徑下? mkdir java? 也可以裝下別的路徑下)
put(空) +文件路徑? ? 上傳
解壓 tar -zxvf? jdk-8u131-linux-x64.tar.gz
修改配置文件:sudo vi /etc/profile
在這行下面加上:export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/home/hadoop/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
重啟:source /etc/profile? ? 然后查看? ?java -version
配置SSH免密登錄
進(jìn)入.ssh目錄 ( ll -a 才能看見)
ssh-keygen -t rsa? 一路回車 生成兩個文件一個公鑰一個私鑰:cp id_rsa.pub authorized_keys
修改authorized_keys權(quán)限:chmod 644 authorized_keys
此時重啟ssh服務(wù):sudo service sshd restart
ssh master? ? ? 第一次連接要輸入yes
與其它節(jié)點(diǎn)實現(xiàn)免密登錄
把master節(jié)點(diǎn)中把a(bǔ)uthorized_keys分發(fā)到各個結(jié)點(diǎn)上(會提示輸入密碼):
scp /home/hadoop/.ssh/authorized_keys slave01:/home/hadoop/.ssh
scp /home/hadoop/.ssh/authorized_keys slave02:/home/hadoop/.ssh
然后在各個節(jié)點(diǎn)對authorized_keys執(zhí)行(一定要執(zhí)行該步,否則會報錯):chmod 644 authorized_keys
ssh slave01
裝Hadoop
同樣用sftp爱葵,先在/home/hadoop目錄下創(chuàng)建hadoop文件
修改配置文件:
進(jìn)入hadoop-2.8.1/etc/hadoop目錄下
hadoop-env.sh:
export? JAVA_HOME=/home/hadoop/java/jdk1.8.0_131? ?(jdk安裝的路徑 如果不知道? echo $JAVA_HOME)
core-site.xml:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop/hadoop-2.8.1/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
hdfs-site.xml:
<configuration>
<property>
<name>dfs.namenode.secondary.http.address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop/hadoop-2.8.1/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop/hadoop-2.8.1/tmp/dfs/data</value>
</property>
</configuration>
mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</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>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
slaves:
master
slave01
slave02
系統(tǒng)配置文件:sudo vi /etc/profile? ? 修改后 source /etc/profile
export HADOOP_HOME=/home/hadoop/hadoop/hadoop-2.8.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
將hadoop分發(fā)到各個節(jié)點(diǎn)
scp -r /home/hadoop/hadoop slave01:/home/hadoop
scp -r /home/hadoop/hadoop slave02:/home/hadoop
(再配置系統(tǒng)配置施戴,就是把HADOOP環(huán)境變量配下)
在master節(jié)點(diǎn)格式化hdfs
hdfs namenode -format
啟動HDFS
start-dfs.sh
啟動YARN
start-yarn.sh
分別在各個主機(jī)上執(zhí)行 jps 查看服務(wù)情況
web 訪問頁面
http://master:50070/
恭喜成功了!
這是第二遍配置總結(jié)下第一遍配置遇到的一些坑:
1.第一遍配置講每個主機(jī)的普通用戶都設(shè)置不一樣SSH無密連接老是不成功萌丈,需要將每個主機(jī)普通用戶設(shè)為一樣
2.防火墻忘記關(guān)掉
3.生成秘鑰的那個權(quán)限需要修改
4.我第一次將hadoop目錄放在/usr下 用戶權(quán)限是root的 一些操作老是不成功 改放在/home目錄下權(quán)限是普通用戶的就成功了