一、大數據技術體系
大數據應用領域
互聯網領域:搜索引擎、推薦系統、廣告系統
電商領域:用戶畫像、推薦系統、用戶行為分析
醫療領域:流行病預測、病情分析
視頻領域:用戶標簽系統、視頻分析、廣告系統
金融領域:風控系統、欺詐分析
二、如何學習大數據(老師建議)
1.良好的自主學習能力和動手能力
2.系統了解大數據生態系統技術框架
3.找到學習切入點,不斷拓展知識的廣度(大數據平臺開發、數據分析)
4.抓住一個技術方向,不斷深入研究,增加知識結構的深度
5.主動學習探索新知識
6.定期知識梳理
三、大數據必備技能(重點)
四、大數據就業方向
1、大數據分析工程師
2、大數據平臺開發工程師
3、大數據運維工程師
4、大數據算法工程師
5、大數據內核開發工程師
五、Zookeeper設計原理
1、分布式系統概念:是一個硬件或軟件組件分布在不同的網絡計算機上,彼此之間通過消息傳遞進行通信和協調的系統?!斗植际较到y概念與設計》
2、分布式特點:分布性、對等性、并發性、缺乏全局時鐘、故障總是會發生
3、為什么選擇Zookeeper? 開源免費、高效、可靠的解決數據一致性問題、簡單易用、工業界大型分布式系統廣泛應用。
4、Zookeeper 概念:一個開源的針對大型分布式系統的可靠協調系統。
提供的功能包括:發布/訂閱,分布式協調/通知,配置管理,集群管理,主從協調,分布式鎖等。
5、Zookeeper特性:最終一致性、順序性、可靠性、實時性、原子性、單一視圖
6.Zookeeper的架構
注意:如果leader掛掉了會從follwer里面選取,不會從觀察者(Observer)中選取
7.Zookeeper寫入
(1)數據寫入最終一致性核心算法:ZAB算法
(2)Leader負責處理寫事務請求(收到半數以上的Follwer的請求,提交給Follwer,Leader會自身也提交請求)
8.Zookeeper選舉
服務器四種狀態:looking/leading/follwing/observer
9.Znode節點類型:不允許在臨時節點下創建
Znode版本號,初始為0每次操作一次+1.
悲觀鎖一般解決并發問題,要求對數據從頭到尾都加鎖。排他性
樂觀鎖一般用于并發不大,數據沖突不強烈的。事務請求,同時并發會回滾操作。
六、重要概念解答(老師解答)
1、心跳的意思是,從節點周期性的向leader發送消息,比如2秒鐘發送一次消息,這種有規律的通信就叫做心跳
2、znode是zookeeper中的一個數據節點,znode下還可以創建子znode,可以理解為文件夾的構造,一個文件夾下可以有子文件夾或者子文件
3、整個集群會選舉出一個leader,這個leader負責處理客戶端的事務請求,事務請求包括znode的創建、修改、刪除等,follower負責處理客戶端的讀請求。
4、維護Znode:當集群中的任何一個follower節點接收到客戶端的事務請求,都會轉發給leader,也就是說整個集群只有leader可以處理事務請求,其他角色的節點都不能處理,當leader處理事務請求的時候,就要向整個集群廣播一個提議,這個提議的意思就是告訴follower你們要創建/修改/刪除一個znode,然后follower接收到leader的提議之后,就會做相應的操作,操作完成告訴leader完成了。
當leader接收到集群中的大多數follower的成功操作的回復之后,這里的大多數指的是超過集群機器數量的一半。
當收到大多數follower的回復之后,leader就認為這次事務被成功處理了,然后再向集群通知所有的follower提交事務,最后會返回給客戶端一個事務被成功處理的狀態。
如果有落后的follower,這些落后的follower也會從leader同步狀態,保持與leader的狀態一致。
七、Zookeeper安裝配置常見問題及解決方法
問題一如下圖:
通過ssh-copy-id命令將node01這臺機器root用戶的公鑰文件(id_rsa.pub)文件內容拷貝到node02和node03兩臺機器時報錯
問題分析:路徑錯誤
scp?-r?/home/hadoop/apps/zookeeper-3.4.10?hadoop@node02:/home/hadoop/apps
問題解決:按照最新安裝文檔14步驟操作
問題二如下圖:
解決辦法:要在所有機器的/etc/hosts中配置ip和主機名稱的映射關系:如下
問題三如下圖:
問題分析:配置的root用戶的免密碼登錄,然后使用的hadoop的用戶拷貝,導致提示輸入免密
解決方法:如果用hadoop用戶拷貝,要配置hadoop用戶的ssh免密碼登錄。配置root免密登錄不代表所有用戶都可以免密碼登錄。
問題四如下圖:
問題分析:配置好后使用root用戶啟動成功了zookeeper,導致hadoop用戶無權限啟動。
解決辦法:用root用戶直接去data目錄下刪除掉那個pid文件用hadoop用戶啟動就好了。