centos7下Hadoop2.8.4全分佈搭建之HDFS叢集搭建(一)
阿新 • • 發佈:2018-12-15
1)搭建前的準備
注意:(以下操作可以先配置一臺,然後通過scp命令傳送到其他兩臺虛擬機器上 傳送到其他機器 scp -r 主機名: 注意:載入環境變數 source /etc/profile 免密登陸 -》ssh-keygen 生成金鑰對(回車) -》 ssh-copy-id 自己 ssh-copy-id 其它 ssh-copy-id 其它 ) 虛擬機器可以通過安裝一臺,克隆兩臺快速完成三臺虛擬機器 1.準備三臺虛擬機器,一臺作為namenode,兩臺datanode 我的虛擬機器:192.168.232.132 master 192.168.232.133 slave1 192.168.232.134 slave2 2.修改為靜態ip cd /etc/sysconfig/network-scripts/目錄下 ls檢視檔案 vi ifcfg-ens33 //其他電腦可能不一樣 將BOOTPROTO="dhcp" 修改為 BOOTPROTO=static namenode為例: 在最後面加入 IPADDR=192.168.232.132 NETMASK=255.255.255.0 GATEWAY=192.168.232.2 DNS1=8.8.8.8 DNS2=4.4.4.4 然後儲存 以上分別為IP地址,子網掩碼,閘道器,DNS! [效果圖](https://img-blog.csdn.net/20181013115540354?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNTk4MzQz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 可以通過上圖的方式來檢視自己的閘道器,子網掩碼 DNS可以通過windows下win+R輸入ipconfig -all檢視 3.vi /etc/resolv.conf 指定DNS伺服器位置 在後面加入 nameservers 8.8.8.8 nameservers 4.4.4.4 然後儲存 service network restart重啟網路服務 ping www.baidu.com檢測下 4.關掉防火牆 systemctl stop firewalld 停止防火牆服務 systemctl disable firewalld 關閉防火牆服務開機啟動 5.設定主機名 修改三臺主機名 vi /etc/hostname (需要重啟生效 reboot!!!) 例:我要改第一臺 那就在配置檔案中輸入你要改的主機名然後儲存 我的三臺虛擬機器 192.168.232.132 master 192.168.232.133 slave1 192.168.232.134 slave2 6.配置對映檔案(三臺都得有才有效果哦) vi /etc/hosts 前兩行註釋掉 然後輸入對映 ip1 主機名1 ip2 主機名2 ip3 主機名3 ping下其他兩臺虛擬機器看看對映是否成功!!
2)安裝jdk(我是通過SecureCRT進行操作的)
1)上傳tar包 alt+p (進入傳輸協議) 2)解壓tar包 tar -zxvf jdk 1.8.0_141 -C /usr/java 3)配置環境變數 vi /etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_141 export PATH=$PATH:$JAVA_HOME/bin 儲存 注意:載入環境變數 source /etc/profile !!!!!!!!!!!!!!!!!!!!! 4)傳送到其它機器 例傳送到slave1上去: scp -r usr/java/jdk1.8.0_141/ slave1:usr/java/ scp -r /etc/profile slave1:/etc 注意:載入環境變數 source /etc/profile 檢查下 java -version,看環境變數是否配置成功
(這裡可能會有些小問題,有些人的虛擬機器原本就安裝的有java1.8 rpm -qa | grep java 顯示安裝位置
java-1.8.0-openjdk-headless-1.8.0.101-3.b13.el7_2.x86_64 tzdata-java-2016f-1.el7.noarch java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64 javapackages-tools-3.4.1-11.el7.noarch java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64 java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64 python-javapackages-3.4.1-11.el7.noarch
開始刪除,不用刪除完,留python開頭的和tz開頭的 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.101-3.b13.el7_2.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64
然後你再按上面步驟安裝就可以了
)
3)安裝HDFS叢集
1.傳到虛擬機器上,解壓到/opt/hadoop,步驟和上面JAVA差不多,這裡話不多說
2.進入/opt/hadoop/hadoop2.8.4/etc/hadoop下修改hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_141 (這裡注意下,直接修改他本來的JAVA_HOME就可以了)
3.修改core-site.xml(在configuration標籤下配置)
hadoop官方給的配置檔案:
![core-default.xml](https://img-blog.csdn.net/20181013124111199?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNTk4MzQz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
我插入的配置:
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
4.修改hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value>
</property>
5.格式化namenode
hadoop namemode -format
6.配置hadoop環境變數(/etc/profile)
export JAVA_HOME=/usrt/java/jdk1.8.0_141
export HADOOP_HOME=/opt/hadoop/hadoop-2.8.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
7.
分發hadoop到其它機器
scp -r ~/opt/hadoop/hadoop-2.8.4/ slave1:/opt/hadoop/
scp -r ~/opt/hadoop/hadoop-2.8.4/ slave2:/opt/hadoop/
分發hadoop環境變數
scp -r /etc/profile 主機名:/etc
8.啟動namenode
hadoop-daemon.sh start namenode
9.啟動datanode
hadoop-daemon.sh start datanode
10.訪問namenode提供的web埠:50070
11.批量啟動指令碼
1)修改配置檔案slaves
hd09-02
hd09-03
2)執行啟動命令
start-dfs.sh
start-dfs.sh
通過jps可以看啟動的節點.
3)總結
三臺虛擬機器-》靜態Ip主機名對映免密-》JDK》HADOOP
常見問題:
1.環境變數:注意符號和字母
2.每次修改環境變數就要載入環境變數: source /etc/profile
3.注意配置資訊不要直接複製,你的安裝路徑可能和我不同,先看一看再進行
暫時這麼多,畢竟我沒出多少問題,可惜,總結下HDFS叢集搭建。