一、環境準備
1.準備四臺虛擬機,虛擬機安裝及克隆,配置ip請移步另一篇博客:https://blog.csdn.net/qq_40825301/article/details/105214440
2.每臺虛擬機修改hostname,我四臺虛擬機配置的是 eleven-2,eleven-3,eleven-4,eleven-5.
命令:
vi /etc/sysconfig/network
編輯後保存:
3.每臺虛擬機配置hosts.: 命令 vi /etc/hosts
4.永久性的關閉防火牆,四臺虛擬機。避免之後啓動hadoop發生錯誤找不到原因。
最終配置的四臺虛擬機爲 :(再次提示關閉防火牆)
hostname | ip | 該機上要配置的角色 |
eleven-2 | 192.168.40.33 | namenode |
eleven-3 | 192.168.40.34 | secondary namenode ,datanode |
eleven-4 | 192.168.40.35 | datanode |
eleven-5 | 192.168.40.36 | datanode |
二、環境搭建
2.1從節點要對主節點免密訪問,即eleven-2要能免密訪問 eleven-5,eleven-4 eleven-3。
1.將eleven-2下的.ssh文件下的公鑰文件id_dsa.pub 分發至另外三臺虛擬機的同目錄下
scp id_dsa.pub root@eleven-3:/root/.ssh/
2.在另外三臺服務器上操作,將eleven-2的公鑰添加至驗證文件中
cat id_dsa.pub >> authorized_keys
3.驗證eleven-2是否能免密訪問另外三臺虛擬機
ssh eleven-3...
2.2 安裝jdk,注意是oracle的jdk,如果安裝了open jdk,先卸載掉
hadoop3.0之前的版本可用jdk1.7,3.0之後的版本需要用jdk1.8
我要安裝的hadoop是3.0之前的版本,所以jdk用的是:jdk-7u80-linux-x64.rpm,提取碼:d531。
將jdk上傳至每臺虛擬機,切換至存放的路徑下,執行命令進行安裝
rpm -i jdk-7u80-linux-x64.rpm
2.3配置jdk環境變量,
配置環境變量的文件: /etc/profile
命令 : vi /etc/profile
在文件末尾追加
export JAVA_HOME=/usr/java/jdk1.7.0_80
PATH=$PATH:$JAVA_HOME/bin
保存退出
重新編譯環境變量配置文件
. /etc/profile
驗證,查看java進程
命令 : jps
2.4安裝hadoop,我用的版本爲hadoop-2.6.5.tar.gz,提取碼爲 sqty
三臺虛擬機都要操作,可先在一臺服務器上操作,然後分發至另外三臺
1.將hadoop上傳至虛擬機
2.解壓,這裏我的解壓路徑爲 /opt/sxt/
3.配置環境變量
1.vi /etc/profile
2.在末尾追加,
export HADOOP_HOME=/opt/sxt/hadoop-2.6.5
並修改path爲
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.保存退出
4.配置hadoop,hadoop的配置文件存放在 /安裝路徑下/hadoop-2.6.5/etc/hadoop ,啓動hadoop時,會自動來讀取hadoop下的文件,所以這個文件夾名稱不要改。
1.配置hadoop中用到的jdk環境變量(二次環境變量配置),切換到 /opt/sxt/hadoop-2.6.5/etc/hadoop 目錄下。
編輯 hadoop-env.sh 文件 ,改成下圖這樣
編輯 mapred-env.sh (計算框架用的配置腳本) 配置成如下圖
編輯 yarn-env.sh (資源管理) 配置成如下圖
2.配置hadoop相關配置,,可查看官網,有詳細講解。
編輯 core-site.xml (主配置文件),增加如下配置
<configuration>
#######配置主節點(namenode),這裏將eleven-2作爲namenode服務器,可更改成你自己的#######
<property>
<name>fs.defaultFS</name>
<value>hdfs://eleven-2:9000</value>
</property>
#######配置元數據,及數據信息存放路徑##########
#####默認是一個臨時文件路徑,真是環境中可能會發生丟失的風險,所以需要自定義一個路徑存放那些數據,需要將此文件夾創建
###格式化的時候在此路徑下會生成name文件夾,生成fsimage即時快照,和custmid(集羣id)
###hadoop啓動後會生成 data及secondary namenode的文件夾,存放元數據及數據信息。
<property>
<name>hadoop.tmp.dir</name>
<value>/var/sxt/hadoop/full</value>
</property>
</configuration>
效果如下:
編輯 hdfs-site.xml ,配置副本數量及secondary namenode服務器。
<configuration>
####配置副本數量,最好小於等於從節點的數量,多了沒什麼用
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
####配置secondary namenode的服務器爲eleven-3,可改成你自己的
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>eleven-3:50090</value>
</property>
</configuration>
效果如下:
編輯 slaves 文件,配置從節點服務器,datanode.
#####增加以下三行,表明將eleven-3。eleven-4,eleven-5作爲從節點服務器。(datanode的服務器)
eleven-3
eleven-4
eleven-5
效果如下:
3.將eleven-2配置好的hadoop分發至另外三臺服務器同目錄下,也可以每臺服務器做以上同樣的配置
命令:
scp -r hadoop-2.6.5 eleven-4:/opt/sxt/
4.三臺從節點服務器上配置hadoop的環境變量,可以eleven-2配置好的/etc/profile 分發至另外三臺服務器同目錄下,然後編譯下環境變量文件
##將eleven-2配置好的/etc/profile 分發至另外三臺服務器
scp /etc/profile eleven-3:/etc/
##編譯下
source /etc/profile
三,hadoop啓動,在主節點namenode上操作
1.格式化,格式化後會在配置的full目錄下生成name文件夾,存放namenode的信息
命令
hdfs namenode -format
成功後效果如下:
2.啓動hadoop,啓動成功後會在從節點的每臺服務器上的full文件夾下生成對應角色的文件夾。
啓動命令:
start-dfs.sh
成功後效果如下:可以看到啓動了相關角色。可在每個服務器的full文件夾下看到對應的文件夾。
3.瀏覽器請求驗證
hadoop提供可視化管理工具 ,可以用外部瀏覽器訪問管理頁面,
解釋:所有的計算和文件管理操作都是在datanode節點上執行的,但是都是通過namenode節點去操作的datanode節點,也就是namenode管理着所有的datanode。所以此處訪問的管理界面也就是namenode。
瀏覽器請求 當前虛擬機ip:端口號
先查看當前服務器對外提供的瀏覽器端口,執行命令 ss -nal
瀏覽器請求 eleven-2:50070 注意:前提是windows下配置了hosts.否則用ip訪問
5.關閉
stop-dfs.sh