第二章是搭建IDEA開發(fā)環(huán)境和Linux虛擬機
這章的內容較少,但需要花費的時間較長绒疗,畢竟都是實操部分
首先是搭建IDEA開發(fā)環(huán)境
每一個IT開發(fā)人員都得有一個合適的開發(fā)工具日矫,IDEA是大數據開發(fā)的首選,在Windows上安裝IDEA到腥,然后構建Maven項目账锹。
- 最首先的還是安裝JDK萌业,因為大數據開發(fā)的很多地方都是得需要用到Java的。
具體的安裝和環(huán)境配置這里不再說明奸柬。 - Maven的安裝與配置
這是專門用于構建和管理Java相關項目的工具生年。使用它有兩點好處,1是Maven管理的Java項目都有著相同的項目結構廓奕;二是便于統(tǒng)一維護jar包 - IDEA的安裝與配置
全稱Intellij IDEA抱婉,是進行Java編程的集成環(huán)境 - 虛擬機的搭建,這個在之前的學習中就已經搭建完畢桌粉,這里不再贅述蒸绩。
第三章基于Hadoop構建大數據平臺
大數據項目得運行在大數據平臺之上,而構建Hadoop集群是構建大數據平臺的核心铃肯。
前文也說過患亿,至少得先安裝部署三個集群,分別是HDFS押逼、YARN步藕、和zookeeper集群惦界。
3.1 Zookeeper分布式協(xié)調服務
編寫單機的應用比較簡單,但是編寫分布式應用就比較困難咙冗,主要是因為會出現部分失敗沾歪。部分失敗就是在網絡節(jié)點中傳輸時,如果網絡錯誤就無法得知消息是否傳遞成功雾消。zookeeper是一個分布式應用的協(xié)調服務灾搏,他可以對部分失敗進行正確處理(不是避免)。
zookeeper提供一些服務給分布式應用仪或,分布式應用可以基于此構建出更高級的服務确镊,比如分布式鎖士骤、配置管理范删、分布式消息隊列、分布式通知與協(xié)調服務等等拷肌。
zookeeper的基本架構
zookeeper服務自身組成了一個集群到旦,其中有兩種角色,主節(jié)點leader和從節(jié)點follower巨缘。前者負責投票的發(fā)起和決議添忘,更新系統(tǒng)狀態(tài);后者接受客戶端請求并向客戶端返回結果若锁。
工作原理
zookeeper就是原子廣播搁骑,就是對zookeeper上的所有主機發(fā)送數據包,由此保證了各個服務器間的數據同步又固。
zookeeper集群工作前的準備工作
首先準備好Hadoop三個節(jié)點仲器,zookeeper是由Java編寫的,運行在JVM上仰冠,所以zookeeper的節(jié)點得先安裝JDK的運行環(huán)境乏冀。
- 配置hosts文件,方便集群間通過hostname相互通信
- 時鐘同步
- SSH免密登錄
- 安裝JDK
3.2 HDFS分布式文件系統(tǒng)
HDFS是Hadoop的核心子項目
他是分布式計算中數據存儲的基礎洋只,是基于流式數據訪問和處理超大文件需求而開發(fā)的辆沦。
背景:他出現的背景也很簡單,就是數據量太大了识虚,大到一個操作系統(tǒng)管轄的范圍內存儲不下肢扯,所以需要分配到更多的操作系統(tǒng)管理的磁盤中存儲,但是這樣會導致數據的管理和存儲不方便担锤,HDFS應運而生蔚晨。
能力:有4個,分別是能夠存儲大量數據妻献;能夠支持流計算蛛株;數據有一致性团赁,不易修改;硬件故障時能快速應對谨履。
系統(tǒng)架構通常是建立在由網絡連接起來的一組計算機組成的集群上欢摄。不同的計算機(或者叫節(jié)點)都有著不同的分工。比如:
NameNode:主節(jié)點NN
SecondaryNameNode:備用節(jié)點
DataNode:從節(jié)點DN
HDFS客戶端
以上部分是一個HDFS最基本的架構笋粟。一個主節(jié)點怀挠,一個備用節(jié)點,至少一個從節(jié)點害捕,和若干客戶端绿淋。
那么HDFS具體是儲存在哪的呢?
實際上數據文件被切分成數據塊(Block)尝盼,然后均勻的放在DN的節(jié)點當中吞滞,再通過NN來進行管理。