免費建站自己的網(wǎng)址域名注冊查詢官網(wǎng)
大數(shù)據(jù)概念
大數(shù)據(jù):無法在一定時間范圍內(nèi)用常規(guī)軟件工具進行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強的決策力、洞察發(fā)現(xiàn)李和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。
大的概念是相對來說的:目前來說,大數(shù)據(jù)的規(guī)模至少10T以上。
目前單臺主機一般只能存放1T左右的數(shù)據(jù),所以要進行計算首先要進行分布式存儲,分開到10臺電腦中進行存儲。然后后面的計算也必須基于分布式的存儲結(jié)構(gòu)來進行分布式運算。
大數(shù)據(jù)特點
- 大量(Volume)
- 高速(Velocity)
- 多樣(Variety)
- 低價值密度(Value)
大數(shù)據(jù)應(yīng)用
- 增加用戶粘性:進行客戶畫像,推薦客戶喜歡的內(nèi)容。
- 多臂試探:當(dāng)用戶畫像基本完成時,嘗試推送其他內(nèi)容,并重新畫像。
- 發(fā)現(xiàn)多個事務(wù)之間的潛在關(guān)聯(lián)性:比如紙尿布和啤酒。
- 獲取商場的流量信息,分析運營情況。
- 保險/金融:挖掘潛在客戶,助力保險行業(yè)精準(zhǔn)營銷。
大數(shù)據(jù)不是用來開發(fā)一個獨立的軟件,而且需要貼合其他軟件來疊加使用,助力軟件更加智能和貼合用戶需求。
業(yè)務(wù)分析
數(shù)據(jù)部門搭建數(shù)據(jù)平臺,分析數(shù)據(jù)指標(biāo)。分析分為兩種,一種是離線數(shù)倉分析,一種是實時分析。處理好后的展示環(huán)節(jié)交給前端處理。
大數(shù)據(jù)部門組織結(jié)構(gòu):
- 平臺組:搭建Hadoop、Flume、Kafka、HBase平臺
- 數(shù)據(jù)倉庫組:ETL數(shù)據(jù)清洗、數(shù)據(jù)分析
- 實時組:實時指標(biāo)分析
- 數(shù)據(jù)挖掘組:算法工程師、推薦系統(tǒng)工程師、用戶畫像工程師
- 報表開發(fā)組:javaEE工程師 + 前端工程師(非大數(shù)據(jù)部分)
Hadoop概述
Hadoop是什么
是一個分布式系統(tǒng)架構(gòu),Apache基金會所開發(fā)的。主要解決海量數(shù)據(jù)的存儲和海量數(shù)據(jù)的分析計算問題。Hadoop通常指一個更廣泛的概念,Hadoop生態(tài)圈(Hadoop, Hive, )
大數(shù)據(jù)之父:Doug Cutting,開發(fā)了Lucene,一個搜索引擎,類似谷歌搜索引擎。為了在對Lucene進行優(yōu)化升級,提升面對大數(shù)據(jù)的查詢效率,結(jié)合谷歌發(fā)布的三篇論文,實現(xiàn)了DFS和MapReduce機制,使Nutch搜索引擎性能飆升。之后項目立項更名為Hadoop,從此Hadoop誕生了。
Hadoop三大發(fā)行版本
- Apache原始版本
- 國外開發(fā)的圖形化版本
- 國內(nèi)的阿里云、騰訊云版本
Hadoop優(yōu)勢
- 高可靠性:有備份
- 高擴展性:可以擴展節(jié)點數(shù)量
- 高效性:Hadoop是并行運算的
- 高容錯性:能夠自動將失敗的任務(wù)重新分配
Hadoop組成
- Hadoop1.x:
- HDFS數(shù)據(jù)存儲
- MapReduce計算+資源調(diào)度
- Hadoop2.x/3.x:
- HDFS數(shù)據(jù)存儲
- MapReduce計算
- Yarn資源調(diào)度
HDFS架構(gòu)概述
- NameNode(nn): 存儲文件的元數(shù)據(jù),如文件名,文件目錄結(jié)構(gòu),文件屬性
- DataNode(dn): 存儲文件塊數(shù)據(jù), 以及校驗和
- Secondary NameNode(2nn):每隔一段時間對NameNode元數(shù)據(jù)備份。
YARN架構(gòu)概述
- 永久節(jié)點:
- ResourceManager(RM): 匯總所有資源信息
- NodeManager(NM): 動態(tài)收集當(dāng)前節(jié)點的資源情況
- 任務(wù)節(jié)點:
- ApplicationMaster(AM): 單個任務(wù)運行的管理員
- Container: 容器,相當(dāng)于一臺獨立的服務(wù)器,里面封裝了任務(wù)所需要的資源,如內(nèi)存、CPU、磁盤、網(wǎng)絡(luò)等,類似一個小虛擬機。
MapReduce架構(gòu)概述
MapReduce有兩個階段。Map表示細分為子任務(wù),Reduce表示合并計算結(jié)果。細分任務(wù)的名稱為MapTask, 合并任務(wù)名稱為ReduceTask(規(guī)約)。MapReduce這個名稱概括了分布式系統(tǒng)進行計算的基本過程。
HDFS、YARN、MapReduce三者關(guān)系
大數(shù)據(jù)技術(shù)生態(tài)體系
Hadoop搭建
創(chuàng)建模版機
- 最小化安裝
- 安裝一些必要軟件
- 修改ip為靜態(tài)ip
- 修改主機名和hosts映射文件
- 關(guān)閉防火墻
- 創(chuàng)建atguigu用戶,配置sudo權(quán)限
- 在/opt目錄下創(chuàng)建兩個子目錄
- module安裝好的軟件
- software安裝包
- 修改module和software的所屬者和所屬組
使用xshell連接查詢虛擬機ip地址:
- ip addr命令查看ip地址連接
安裝jdk和Hadoop
- 使用ftp將jdk傳輸?shù)絪oftware文件中
- 使用jar -zxfc解壓到module文件中
- 配置環(huán)境變量
- profile.d目錄下聲明環(huán)境變量
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
shell的補充
- 父子shell項
- 父類定義變量子類不能獲取:有辦法獲取,使用
export 變量名
將父類變量傳遞給子類shell - 子類定義變量父類不能獲取:獲取不了
- 父類定義變量子類不能獲取:有辦法獲取,使用
- 使用pstree命令可以查看進程之間的父子關(guān)系
- shell的三種執(zhí)行方式
- 開子bash的形式執(zhí)行,使用子類的shell的環(huán)境變量
bash + 腳本文件
chmod 777 腳本文件 + ./ 腳本文件
- 在當(dāng)前bash中執(zhí)行,使用當(dāng)前shell的環(huán)境變量
. 或者 source 腳本文件
- 一般情況下腳本都是開子shell來執(zhí)行的,除了環(huán)境變量是父shell中運行
- 開子bash的形式執(zhí)行,使用子類的shell的環(huán)境變量