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