Hadoop--HDFS叢集架構
Hadoop叢集搭建
伺服器配置以及JDK的安裝
硬體準備 (1)硬體準備
(2)網路環境準備:
NAT方式:不需要做任何網路設定,只要宿主主機上網即可上網 IP地址,子網掩碼,閘道器,DNS(外網)
LINUX系統環境準備: 修改主機名: vim /etc/sysconfig/network 修改HOSTNAME=自定義 reboot 配置主機IP地址: 三種方式: (1)修改配置檔案
vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改: BOOTPROTO=改為"static" 新增: IPADDR=192.168.19.136 NETMASK=255.255.255.0 GATEWAY=192.168.19.2 DNS1=192.168.19.2
(2)圖形介面:編輯裡設定(修改IP地址,子網掩碼,閘道器,DNS)
(3)setup方式:
在命令終端輸入 setup, 選擇“Network Configuration” ,然後按回車鍵,選擇“Device Configuration”,按回車鍵,選中“eth0”,按回車鍵。 修改完重啟網路:serevice network restart 檢查:ifconfig
關閉防火牆:
檢查防火牆狀態:service iptables status 關閉防火牆:service iptables stop 開機不啟動:chkconfig iptables off
新增內網域名:
修改配置檔案:vim /etc/hosts 格式:IP 主機名
同步網路時間:
修改時區:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 同步網路時間:ntpdate cn.pool.ntp.org 檢視當前時間:date 或者date —R
在root使用者下:yum -y install lrzsz
轉換為普通使用者安裝jdk:
(1)準備軟體:jdk-8u73-linux-x64.tar.gz (2)把軟體傳到 Linux 伺服器上去(我的上傳目錄是/home/theone/Desktop/software) (3)把軟體解包解壓縮到當前目錄下,使用命令:tar -zxvf jdk-8u73-linux-x64.tar.gz (4)配置環境變數,使用命令:vim /home/theone/.bash_profile在最後加入兩行資訊;
export JAVA_HOME=/home/theone/Desktop/software/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
(5)讓配置檔案立即生效,使用命令:
source /home/theone/.bash_profile
(6)檢測JDK是否安裝成功,
使用命令:java -version 如果檢測出java版本資訊則配置成功
檢視cpu使用狀況: free, free -g 關閉虛擬機器開啟時有界顯示: vim /etc/inittab 最後一行init5改為3 執行init 3 reboot一下
ssh免密登陸
進入普通使用者
1 su 普通使用者名稱 2 cd 3 ls -a 4 cd .ssh/ 5 ssh-keygen 建立金鑰對 預設rsa形式 (ssh-keygen -t 型別) 6 cp id_rsa.pub authorized_keys 將金鑰對複製到授權列表 7 chmod 600 authorized_keys 更改為只准自己可讀可寫的模式 8 scp authorized_keys [email protected]:/home/theone/.ssh/方法一:使用scp遠端傳輸到搭建的伺服器上 9 scp authorized_keys hadoop02:$PWD 方法二:相同主機名引用環境變數到伺服器相同目錄下 10 ssh 主機名 登入到不同的伺服器上 11 進入.ssh下 12 ssh-keygen 13 cat id_rsa.pub >> authorized_keys 追加到authorized_keys 14 chmod 600 authorized_keys 15 scp 傳輸到其他兩部虛擬機器 16 在另一臺虛擬機器重複10–15
Hadoop2.6.5-分散式叢集搭建
1.叢集簡介 Hadoop叢集:
HDFS叢集: NameNode(老大) DataNode(小弟) 負責海量資料的儲存
YARN叢集
YARN叢集:ResourceManageer(老大) NodeManager(小弟) 負責海量資料運算時的資源排程 MapReduce不是一個叢集,它是一個應用開發包
叢集規劃:
hostname HDFS YARN
master NameNode+DataNode(主節點) NodeManager+ResourceManager
hadoop01 DateNode+secondarynamenode NodeManager
hadoop02 DateNode NodeManager
2.安裝包準備(普通使用者下)
(1)準備安裝包:hadoop-2.6.5.tar.gz (2)上傳到Linux伺服器上去(我的上傳目錄是/home/theone/Desktop/software) (3)解壓:tar -zxvf hadoop-2.6.5.tar.gz
3.主要配置檔案講解
cd Desktop/software/hadoop-2.6.5/etc/hadoop/
1.配置環境變數hadoop_env.sh
vim hadoop-env.sh
jdk路徑:/home/theone/Desktop/software/jdk1.8.0_73/
2.配置核心元件core-site.xml
vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/theone/hadoopData/temp</value>
</property>
3.配置檔案系統hdfs-site.xml
Namenode存放元資料和日誌位置 DataNode儲存資料的目錄 資料塊副本的數量 最好時虛擬機器數量減一 SecondaryNameNode安裝節點和預設的web管理埠
vim hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/theone/hadoopData/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/theone/hadoopData/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop01:50090</value>
</property>
4.配置計算框架mapred-site.xml
-
指定使用yarn執行Map Reduce程式,預設為local(單機)
vim mapred-site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
5.配置yarn系統 yarn-site.xml
指定yarn叢集的老大所在的節點 NodeManager上執行的附屬服務,也可以理解為reduce獲取資料的方式
vim yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6.配置slaves檔案
指定叢集中所有DateNode節點
vim slaves
master
hadoop01
hadoop02
4.分發到從節點
scp -r /home/theone/Desktop/software/hadoop-2.6.5 hadoop01:$PWD
scp -r /home/theone/Desktop/software/hadoop-2.6.5 hadoop02:$PWD
5.配置Hadoop系統環境變數 1.需要在每個節點上都進行配置:
vim /home/theone/.bash_profile
2.新增Hadoop的安裝目錄
export HADOOP_HOME=/home/theone/Desktop/software/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.立即成效
source /home/theone/.bash_profile //立即執行
hadoop version //檢查是否安裝成功
6.啟動Hadoop叢集 1.初始化檔案系統
該操作需要在主節點master上執行: hdfs namenode -format 出現: has been successfully formatted 表示成功 如果出現: Exception ,出問題
4.驗證: 1,執行jps命令:
2,web UI 介面: 檢視HDFS叢集資訊:
web管理介面地址是 http://192.168.19.130:50070 或者 http://master:50070 (windows/system32/drivers/etc/hosts中寫入ip和主機名) namenode節點:50070
檢視MapReduce執行狀態資訊:
3.命令驗證 檢視叢集狀態:
hdfs dfsadmin -report
檢查YARN叢集,使用提交 Map Reduce例子程式的方法進行測試
cd Desktop/software/hadoop-2.6.5/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 10 10
檢查HDFS叢集,使用命令:
hadoop fs -ls /
hadoop fs -ls hdfs://master:9000/
瀏覽器進入master:50070 Untilities/Browse the file system
5.補充說明 單步啟動程序:
windows下配置主機對映 :
windows/system32/drivers/etc/hosts中寫入ip和主機名
HDFS初始化目錄結構:
在搭建Hadoop叢集時使用如下命令初始化檔案系統: hdfs namenode -format(只是初始化NameNode)
NamdNode在format初始化時形成兩個標識:
clusterID:叢集ID blockpoolID:資料塊池ID 新的DateNode加入時,會獲取這兩個標識作為自己工作目錄中的標識
NameNode工作目錄的VERSION內容: cat VERSION
對應的DateNode工作目錄中的VERSION內容: cd hadoopData/data/current/ ls cat VERSION 一旦NameNode重新format後, NameNode 的身份標識已變,而 DataNode 如果依然持有原來的 clusterID,就不會被 NameNode 識別。
6,多次格式化的結果: DataNode啟動不成功。解決分案:
方法一:刪除所有節點的NameNode和DataNode工作目錄,重新格式化 方法二:將DataNode工作目錄中的clusterID修改成NameNode工作目錄中的clusterID,之後啟動DataNode