1. 程式人生 > >SSH、Hadoop、Yarn體系

SSH、Hadoop、Yarn體系

SSH免密登陸

1、生成金鑰對

#rsa 是加密演算法
ssh-keygen -t rsa

然後一路回車 2、檢視生成的金鑰對id_rsa.pub是公鑰,id_rsa是私鑰

輸入
ls .ssh
輸出
id_rsa  id_rsa.pub  known_hosts

2、將公鑰傳送到需要免密登陸的機器

ssh-copy-id -i .ssh/id_rsa.pub [email protected]

3、根據提示輸入密碼 4、完成SSH免密登陸

SSH免密登陸原理(11條)

登陸機器A,目標登陸機器B

1、A生成金鑰對  
2、A把自己的公鑰,傳送給需要免密登陸的機器B  
3、B接受A的公鑰,儲存在本地資料夾下
4、B隨機生成字串Str1
5、B利用A的公鑰加密生成的字串Str2
6、B將Str2傳送給A  
7、A接收B傳送的加密Str2
8、A通過自己的私鑰,將Str2解碼為Str3
9、A將解碼後的Str3,傳送給B
10、B接收A傳送的字串Str3
11、對比Str1是否等於Str3,相同則通過驗證,不同則不能免密登陸

SSH免密

Apache Hadoop的體系結構(重要)

(一)HDFS的體系結構1主從結構

  • 主節點:NameNode
  • 從節點:DataNode
  • 負責日誌元資訊合併: SecondaryNode

2、NameNode

(1)職責
·管理HDFS
·接收客戶端請求
·維護檔案元資訊(fsimage),日誌檔案(edits)
fsimage:
檔名:a.avi
路徑:/movie
大小:150M
資料塊:2
第一個資料塊{DN1:5}{DN2:8}{DN1:10}
第二個資料塊{DN3:8}{DN1:10}{DN3:9}

(2)元檔案位置
    (*)位置:/root/training/hadoop-2.7.3/tmp/dfs/name/current/fsimage_000000000000000024
    (*)內容:是一個亂碼的二進位制檔案,資料塊的目錄資訊
    (*)檔案轉換:
    hdfs oiv -i fsimage_0000000000000000243 -o ~/a.xml -p XML
(3)日誌檔案
    (*)位置:/root/training/hadoop-2.7.3/tmp/dfs/name/current/edits_inprogress_0000000000000000244
    inprogress代表當前的操作日誌
    (*)二進位制
    (*)格式轉換
    hdfs oev -i edits_inprogress_0000000000000000244 -o ~/b.xml
    b.xml
    <RECORD>
    	<OPCODE>OP_MKDIR</OPCODE>
    	<DATA>
    	  <TXID>7</TXID>
    	  <LENGTH>0</LENGTH>
    	  <INODEID>16386</INODEID>
    	  <PATH>/input</PATH>
    	  <TIMESTAMP>1504876545684</TIMESTAMP>
    	  <PERMISSION_STATUS>
    		<USERNAME>root</USERNAME>
    		<GROUPNAME>supergroup</GROUPNAME>
    		<MODE>493</MODE>
    	  </PERMISSION_STATUS>
    	</DATA>
      </RECORD>
(4)edit檔案記錄檔案記錄了最新的狀態而且會定期將edits中的日誌合併到fsimage中
(5)NameNode為了提高查詢fsimage效能,快取1000M的元資訊
(*)位置
/root/training/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
(*)內容
 44 # The maximum amount of heap to use, in MB. Default is 1000.
 45 #export HADOOP_HEAPSIZE=
 46 #export HADOOP_NAMENODE_INIT_HEAPSIZE=""

首先在記憶體中查詢元資訊,找到返回給客戶端,如果記憶體找不到就IO操作到fsimage資訊,到客戶端,消耗效能

DataNode

(1)資料節點,偽分佈1,全分佈環境2
(2)資料塊
    Hadoop1.x 64M Hadoop2.x 128M
舉例: 
# hadoop-2.7.3.tar.gz(204M)
hdfs dfs -mkdir /tools
hdfs dfs -put hadoop-2.7.3.tar.gz /tools

(3)位置:
    /root/training/hadoop-2.7.3/tmp/dfs/data/current/BP-1969327642-192.168.142.129-1504748687001/current/finalized/subdir0/subdir0
(4)內容
-rw-r--r--. 1 root root 134217728 Sep 11 10:20 blk_1073741850
-rw-r--r--. 1 root root   1048583 Sep 11 10:20 blk_1073741850_1026.meta
-rw-r--r--. 1 root root  79874467 Sep 11 10:20 blk_1073741851
-rw-r--r--. 1 root root    624027 Sep 11 10:20 blk_1073741851_1027.meta
.meta記錄了 資料塊檔案是哪個檔案的資料塊
134217728+79874467=204M
(134217728=128M,剩餘的為原來大小)
(4)設定資料冗餘
偽分佈設定為1  檔案為1分
資料塊冗餘度  和 資料節點的個數一致 最大不超過3

4、SecondaryNameNode

定期將edits中的日誌檔案合併到元檔案資訊中

(1)edit 體現了HDFS的最新狀態 

SNN日誌合併

Oracle產生了檢查點checkpoint時,Oracle會以最高優先順序,喚醒資料庫的寫程序(DBWn),來寫髒資料

Yarn體系機構

1.是一個容器,裝MapReduce程式 2.資源排程平臺 3.主從結構

  • 主節點:ResourceManage
  • 從節點:NodeManage 4.執行MapReduce程式
hadoop jar ****
日誌:
7/09/08 22:17:14 INFO client.RMProxy: Connecting to ResourceManager at /192.168.157.111:8032
17/09/08 22:17:34 INFO mapreduce.Job:  map 0% reduce 0%
17/09/08 22:17:43 INFO mapreduce.Job:  map 100% reduce 0%
17/09/08 22:17:55 INFO mapreduce.Job:  map 100% reduce 100%

5.一個MR任務在Yarn中排程的過程 MRinYarn