![基于hive的新冠疫情數(shù)據(jù)離線分析系統(tǒng)設計_第1頁](http://file4.renrendoc.com/view12/M05/32/08/wKhkGWdWOlKAbfdKAAH9QHeH8xs584.jpg)
![基于hive的新冠疫情數(shù)據(jù)離線分析系統(tǒng)設計_第2頁](http://file4.renrendoc.com/view12/M05/32/08/wKhkGWdWOlKAbfdKAAH9QHeH8xs5842.jpg)
![基于hive的新冠疫情數(shù)據(jù)離線分析系統(tǒng)設計_第3頁](http://file4.renrendoc.com/view12/M05/32/08/wKhkGWdWOlKAbfdKAAH9QHeH8xs5843.jpg)
![基于hive的新冠疫情數(shù)據(jù)離線分析系統(tǒng)設計_第4頁](http://file4.renrendoc.com/view12/M05/32/08/wKhkGWdWOlKAbfdKAAH9QHeH8xs5844.jpg)
![基于hive的新冠疫情數(shù)據(jù)離線分析系統(tǒng)設計_第5頁](http://file4.renrendoc.com/view12/M05/32/08/wKhkGWdWOlKAbfdKAAH9QHeH8xs5845.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
湖南商務職業(yè)技術學院畢業(yè)設計
目錄
1項目背景1
1.1項目的背景1
1.2項目的意義1
2大數(shù)據(jù)平臺框架介紹1
2.1Hadoop框架2
2.1.1HDFS存儲技術2
2.1.2MapReduce編程框架2
2.1.3Yarn資源調(diào)度器2
2.2Hive框架2
2.3Sqoop框架3
2.4Zookeeper框架3
2.5Hbase框架3
3系統(tǒng)框架設計3
3.1框架版本選型3
3.2系統(tǒng)技術架構4
3.3Hadoop分布式集群的網(wǎng)絡和節(jié)點規(guī)劃5
3.4Zookeeper集群部署規(guī)劃5
3.5Hbase集群規(guī)劃5
3.6離線數(shù)倉設計6
3.6.1數(shù)據(jù)倉庫介紹6
3.6.2數(shù)據(jù)倉庫分層6
3.6.3數(shù)據(jù)倉庫設計6
3.7Web客戶端設計9
4系統(tǒng)實現(xiàn)9
4.1Hadoop大數(shù)據(jù)集群部署9
4.1.1JDK配置9
4.1.2搭建Hadoop集群完全分布式10
4.1.3Hive安裝配置18
4.1.4Zookeeper完全分布式集群搭建22
I
湖南商務職業(yè)技術學院畢業(yè)設計
4.1.5Hbase完全分布式24
4.1.6Sqoop安裝配置26
4.2離線數(shù)倉的實現(xiàn)27
4.2.1Hive集成hbase27
4.2.2創(chuàng)建普通表29
4.2.3創(chuàng)建以省分區(qū)表30
4.2.4創(chuàng)建索引提高查詢效率30
4.3Web客戶端實現(xiàn)30
4.3.1開發(fā)環(huán)境準備30
4.3.2創(chuàng)建查詢界面32
4.3.3創(chuàng)建查詢處理后臺34
4.3.4封裝一個字段類,用于存儲獲取到的字段,并于后面調(diào)用
35
4.3.5創(chuàng)建查詢類,連接hive并查詢獲取數(shù)據(jù)38
4.3.6創(chuàng)建列表界面42
5測試44
5.1啟動Hadoop集群44
5.1.1驗證(查看是否啟動成功)44
5.1.2Web端訪問45
5.2Zookeeper集群啟動45
5.3啟動Hbase集群45
5.4啟動hive46
5.5數(shù)據(jù)傳輸46
5.6Hive分析疫情數(shù)據(jù)48
5.7Web客戶端連接Hive51
6小結54
II
湖南商務職業(yè)技術學院畢業(yè)設計
基于hive的新冠疫情數(shù)據(jù)離線分析系統(tǒng)設計
1項目背景
1.1項目的背景
數(shù)據(jù)信息時代的到來為大數(shù)據(jù)技術的發(fā)展提供了極好的時機。技術的快速
發(fā)展也促進了互聯(lián)網(wǎng)產(chǎn)業(yè)的繁榮與壯大。互聯(lián)網(wǎng)企業(yè)要想生存下去,就必須利
用好技術跟上時代的腳步。隨著大數(shù)據(jù)的出現(xiàn),數(shù)據(jù)的變化越來越快、數(shù)據(jù)的
規(guī)模越來越大,采用大數(shù)據(jù)框架勢在必行。
1.2項目的意義
2020年至2022年是新冠疫情最為煎熬的三年,在這三年里無數(shù)人失去了
生命,無數(shù)人為抗擊疫情前赴后繼,而在此期間產(chǎn)生了大量的疫情數(shù)據(jù),我們
可以通過對這些數(shù)據(jù)的查詢分析,更為直觀的見證這場戰(zhàn)爭的慘烈與它的蔓延
趨勢。
2大數(shù)據(jù)平臺框架介紹
大數(shù)據(jù)生態(tài):
圖2-1大數(shù)據(jù)生態(tài)圖
1
湖南商務職業(yè)技術學院畢業(yè)設計
2.1Hadoop框架
2.1.1HDFS存儲技術
隨著數(shù)據(jù)量的增加,海量的數(shù)據(jù)無法保存在單個獨立的操作系統(tǒng)。此時就
將數(shù)據(jù)分配給其他系統(tǒng)的磁盤中,但面對的主要問題就是維護和管理。HDFS
(Hadoop分布式文件系統(tǒng))即通過目錄樹確定文件的用于存儲文件的文件系
統(tǒng),它具有高吞吐量率(HighThroughputRate)、高容錯
(HighFaultTolerance)、高擴展性(HighScalability)、高可靠性
(HighReliability)等特點。其存儲方式為大容量數(shù)據(jù)提供了高容災性,給大規(guī)
模數(shù)據(jù)集(LargeDataSet)的應用處理帶來了很多方便。
2.1.2MapReduce編程框架
MapReduce一個采用Java開發(fā)的分布式離線計算編程架構。其核心作用
是將用戶自定義編寫的Map與Reduce兩個階段邏輯層面的代碼與其框架默認
組件整合到一個分布式離線計算的程序中,并在Hadoop集群上運行。其中,
Map階段主要負責將獲取的數(shù)據(jù)進行拆分,Reduce階段負責聚合處理來自
map端的結果。
2.1.3Yarn資源調(diào)度器
Yarn屬于整個框架中最重要的部分,資源調(diào)度管理平臺
(ResourceSchedulingManager)主要為應用程序提供所需的資源和資源的管
理。在整個框架中,Yarn相當于一個分布式操作系統(tǒng)平臺,而MapReduce等
運算程序則相當于在操作系統(tǒng)上方運行的應用程序。
2.2Hive框架
Hive是Facebook的開源軟件用來解決大量結構化日志的數(shù)據(jù)統(tǒng)計工具,
其是基于Hadoop的離線數(shù)倉開發(fā)框架。它可以將有規(guī)律的、符合二維表格存
儲的數(shù)據(jù)文件映射為二維表,并提供支持類SQL語法進行數(shù)據(jù)查找。其本質是
將底層的MapReduce程序轉換映射為HQL從而便于查詢,而數(shù)據(jù)則通過
YARN存儲在HDFS上以執(zhí)行程序運行。
2
湖南商務職業(yè)技術學院畢業(yè)設計
2.3Sqoop框架
Sqoop是一款各數(shù)據(jù)庫之間導入導出的傳輸工具。主要用于在數(shù)據(jù)倉庫與
傳統(tǒng)的數(shù)據(jù)庫間進行數(shù)據(jù)的傳遞,既可以將存儲在HDFS中的Hive表數(shù)據(jù)傳輸
到MySQL關系型數(shù)據(jù)庫中,同時也支持相互傳輸。其原理是將導入或導出命令
轉換為MapReduce程序,從而具有較高的并行性能和良好的容錯能力。
2.4Zookeeper框架
為分布式應用提供協(xié)調(diào)服務,也是一個分布式小文件系統(tǒng),并且被設計為
高可用性,主要作用于分布式數(shù)據(jù)管理:命名一致,狀態(tài)一致,集群管控,配置
一致等。
Hadoop的不少組件都需要用到Zookeeper,運行于集群上管控hadoop操
作。
2.5Hbase框架
HBase是一個創(chuàng)建在hdfs上的NoSql數(shù)據(jù)庫,它的行列式結構可快速存儲
和訪問海量數(shù)據(jù)。
3系統(tǒng)框架設計
3.1框架版本選型
本系統(tǒng)采用開源軟件Apache框架且是當前大數(shù)據(jù)行業(yè)中較為成熟、穩(wěn)定
的版本。能夠提高開發(fā)效率、降低開發(fā)成本,便于初學者解決框架中遇到的問
題。版本選型如表3-1所示。
表3-1框架版本選擇
框架(Apache)版本
Hadoop2.7.3
Hive2.3.4
Sqoop1.4.6
Zookeeper3.7.0
Hbase1.4.0
3
湖南商務職業(yè)技術學院畢業(yè)設計
3.2系統(tǒng)技術架構
離線數(shù)倉系統(tǒng)如圖3-1所示,主要由數(shù)據(jù)獲取、數(shù)據(jù)傳輸、數(shù)據(jù)倉庫、
web前端四大功能模塊組成。
1)數(shù)據(jù)獲?。?/p>
數(shù)據(jù)源從國家疫情網(wǎng)站獲取2020年1月23日至2022年12月17日的疫
情數(shù)據(jù)以天為單位存儲為csv文件。
2)數(shù)據(jù)傳輸:
通過SecureFX將數(shù)據(jù)傳輸入Linux本地,或者將csv文件導入mysql,再
通過Sqoop框架遷移至HDFS。
3)數(shù)據(jù)倉庫:
Hive可以直接創(chuàng)建數(shù)據(jù)庫與數(shù)據(jù)表用于加載本地數(shù)據(jù),并進行查詢與分
析,為使對巨量數(shù)據(jù)擁有更為穩(wěn)定的查詢速度,我們可以將hive與hbase集
成,創(chuàng)建hive與hbase的關聯(lián)表,該表的對外接口為hive但數(shù)據(jù)源卻位于
hbase,它同時具有hive的類SQL語句,hbase所不具備的復雜數(shù)據(jù)分析能
力,hbase對海量數(shù)據(jù)更為強大的讀寫能力。
Hive與HBase集成后可以看作是低延時的數(shù)據(jù)倉庫??梢岳肏Base的快
速讀寫能力完成數(shù)據(jù)實時查詢,也可以使用Hive查詢HBase中的數(shù)據(jù)以完成復
雜的數(shù)據(jù)分析。
4)建立javaWeb項目:
創(chuàng)建查詢客戶端,通過用戶輸入的查詢選項傳入對應的sql語句,該sql語
句由hive處理將ETL操作加載至hbase,hbase再從hdfs查詢數(shù)據(jù),再將結果
反饋回前端呈現(xiàn)為表格數(shù)據(jù)。
圖3-1系統(tǒng)架構圖
4
湖南商務職業(yè)技術學院畢業(yè)設計
3.3Hadoop分布式集群的網(wǎng)絡和節(jié)點規(guī)劃
i網(wǎng)絡規(guī)劃
表3-2網(wǎng)絡規(guī)劃
主機名IP地址節(jié)點類型
bigdata6master
bigdata017slave1
bigdata028slave2
ii節(jié)點規(guī)劃
表3-3節(jié)點規(guī)劃
服務bigdatabigdate01bigdata02
NameNode√
SecondaryNameNode√
DataNode√√√
ResourceManager√
NodeManager√√√
JobHistoryServer√
3.4Zookeeper集群部署規(guī)劃
表3-4zookeeper規(guī)劃
bigdatabigdata01bigdata02
zookeeperzookeeperzookeeper
3.5Hbase集群規(guī)劃
表3-5hbase規(guī)劃
主機名IP地址職責
bigdata6HBase主節(jié)點
bigdata017HBase備用節(jié)點
5
湖南商務職業(yè)技術學院畢業(yè)設計
3.6離線數(shù)倉設計
3.6.1數(shù)據(jù)倉庫介紹
數(shù)據(jù)倉庫(DataWarehouse)是為企業(yè)的所有決策提供系統(tǒng)數(shù)據(jù)支持的重要集
合。數(shù)據(jù)倉庫是一個集成的(Integrated)、穩(wěn)定的(Stable)、面向主題的
(Subject-Oriented),能夠根據(jù)時刻改變的數(shù)據(jù)集合。它有以下特性:面向主
題:數(shù)據(jù)倉庫中的數(shù)據(jù)基于一個明確的主題,只存儲與主題相關的數(shù)據(jù),并排
除其他不相關的數(shù)據(jù)。集成的:從不同的數(shù)據(jù)源采集數(shù)據(jù)到同一個數(shù)據(jù)源。穩(wěn)
定的:長期的歷史數(shù)據(jù)的內(nèi)容能夠穩(wěn)定的存放在數(shù)據(jù)倉庫中并不會輕易變化,
數(shù)據(jù)存入數(shù)倉后一般之進行查詢操作,并且沒有頻繁的刪改操作。隨時間變
化:某些關鍵的數(shù)據(jù)需要基于時間的變化才能為企業(yè)提供決策。
3.6.2數(shù)據(jù)倉庫分層
本系統(tǒng)將數(shù)據(jù)倉庫分為ODS、DWD、DWS、DWT、ADS五層。如圖4-1
所示。
1)以便把復雜問題簡單化,方便定位問題。
2)減少重復開發(fā)。
3)隔離原始數(shù)據(jù)。
各層的作用如下:
1)ODS層:原始數(shù)據(jù)層,負責存放原始數(shù)據(jù),直接將數(shù)據(jù)存儲,原封不動
即可。
2)DWD層:明細數(shù)據(jù)層,清理、脫敏ODS層數(shù)據(jù),保存詳細數(shù)據(jù),與原
始數(shù)據(jù)層的粒度與結構相似。
3)DWM層:數(shù)據(jù)中間層,對數(shù)據(jù)做一些輕微的聚合操作。
4)DWS層:服務數(shù)據(jù)層,基于DWD的數(shù)據(jù)分表。
5)ADS層:數(shù)據(jù)應用層,為各種統(tǒng)計報表提供數(shù)據(jù)。
3.6.3數(shù)據(jù)倉庫設計
i數(shù)據(jù)倉庫-ODS
原始數(shù)據(jù)層(ODS)是數(shù)據(jù)倉庫中保存數(shù)據(jù)起備份數(shù)據(jù)的部分,為的是優(yōu)
化下層數(shù)據(jù)處理的難易程度。ODS層的數(shù)據(jù)粒度是最小的粒度。如各省份每個
城市的基礎數(shù)據(jù)表共361張。
6
湖南商務職業(yè)技術學院畢業(yè)設計
搭建ODS層表時由于數(shù)據(jù)龐大且重要,所有建表需要考慮以下條件:
1)數(shù)據(jù)采用壓縮,減少存儲空間。通常采用LZO進行壓縮因其壓縮/解壓
速度較快且支持切片。
2)保存數(shù)據(jù)原貌不做任何修改,起備份作用。
ii數(shù)據(jù)倉庫-DWD層
明細數(shù)據(jù)層(DWD)
該層保持和ODS層一樣的數(shù)據(jù)顆粒度;主要是對ODS數(shù)據(jù)層做一些數(shù)據(jù)
的清洗和規(guī)范化的操作,比如去除空數(shù)據(jù)、臟數(shù)據(jù)、離群值等。
為了提高數(shù)據(jù)明細層的易用性,該層通常會才采用一些維度退化方法,將
維度退化至事實表中,減少事實表和維表的關聯(lián)。
例如:去除疫情數(shù)據(jù)中新增確診、新增治愈、新增死亡,這些容易導致數(shù)
據(jù)失真的記錄,形成一張更加高質量的表。
iii數(shù)據(jù)倉庫-DWM層
該層是在DWD層的數(shù)據(jù)基礎上,對數(shù)據(jù)做一些輕微的聚合操作,生成一
些列的中間結果表,提升公共指標的復用性,減少重復加工的工作。
1)創(chuàng)建分區(qū)表,防止對海量數(shù)據(jù)進行全表掃描。
2)創(chuàng)建外部表,提供數(shù)據(jù)的安全性與可靠性,防止誤刪等操作。
3)融合類型一致、字段一致的表。
例如,因為所有省份各城市的疫情數(shù)據(jù)表字段都一致,可將它們反復加載
進一張表中,最終字段表3-6所示:
表3-6普通表
字段名數(shù)據(jù)類型是否為主鍵是否可為空含義
shengfenstring否否省份
citystring否否城市
yiqingdatedate否否日期
leiji_quezhenint否否累計確診
xinzeng_quezhenint否否新增確診
leiji_zhiyuint否否累計治愈
xinzeng_zhiyuint否否新增治愈
leiji_siwangint否否累計死亡
7
湖南商務職業(yè)技術學院畢業(yè)設計
xinzeng_siwangint否否新增死亡
xinzeng_wuzhenzhuangint否否新增無癥狀
xinzeng_bentuquezhenint否否新增本土確診
iv數(shù)據(jù)倉庫-DWS層
該層是基于DWM上的基礎數(shù)據(jù),整合匯總成分析某一個主題域的數(shù)據(jù)服
務層,一般是寬表,用于提供后續(xù)的數(shù)據(jù)查詢,OLAP分析,數(shù)據(jù)分發(fā)等。
一般來說,該層的數(shù)據(jù)表會相對較少;一張表會涵蓋比較多的需求數(shù)據(jù),
由于其字段較多,因此一般也會稱該層的表為寬表。
例如:獲取2020年每月確診人數(shù)大于50的城市,將這些數(shù)據(jù)整合成月度
高風險城市表。
v數(shù)據(jù)倉庫-ADS
數(shù)據(jù)應用層(ADS)作為數(shù)據(jù)倉庫的最后一層,存儲數(shù)據(jù)的粒度最高,該
層主要是提供給數(shù)據(jù)產(chǎn)品和數(shù)據(jù)分析使用的數(shù)據(jù),一般會存放在ES、Redis、
PostgreSql等系統(tǒng)中供線上系統(tǒng)使用;也可能存放在hive或者Druid中,供數(shù)
據(jù)分析和數(shù)據(jù)挖掘使用,比如常用的數(shù)據(jù)報表就是存在這里的。
本系統(tǒng)的該層將所有城市表,省份表通過hive融合在一起并集成hbase作
為外部客戶端的對接查詢表,具體字段如下:
表3-7hive、hbase關聯(lián)表
字段名數(shù)據(jù)類型是否為行鍵是否可為空含義
idint行鍵否序號
shengfenstring否否省份
citystring否否城市
yiqingdatedate否否日期
leiji_quezhenint否否累計確診
xinzeng_quezhenint否否新增確診
leiji_zhiyuint否否累計治愈
xinzeng_zhiyuint否否新增治愈
leiji_siwangint否否累計死亡
xinzeng_siwangint否否新增死亡
xinzeng_wuzhenzhuangint否否新增無癥狀
8
湖南商務職業(yè)技術學院畢業(yè)設計
xinzeng_bentuquezhenint否否新增本土確診
3.7Web客戶端設計
客戶端具體設計思路:
1)創(chuàng)建查詢界面,獲取用戶輸入數(shù)據(jù)。
2)創(chuàng)建查詢處理后臺,將用戶輸入數(shù)據(jù)轉為參數(shù),為查詢類調(diào)用。
3)創(chuàng)建查詢類、封裝類,查詢類與hive連接發(fā)送sql語句,封裝類暫存數(shù)
據(jù)。
4)創(chuàng)建列表界面,將用戶需求數(shù)據(jù)以列表形式進行呈現(xiàn)。
設計流程如圖3-2:
圖3-2設計流程圖
4系統(tǒng)實現(xiàn)
4.1Hadoop大數(shù)據(jù)集群部署
4.1.1JDK配置
1)將jdk-8u131-linux-x64.tar.gz,通過SecureFX傳到Linux虛擬主機
2)解壓安裝jdk:
tar–zxvfjdk-8u131-linux-x64.tar.gz
mvjdk1.8.0_131/usr/local/bigdata/
如果系統(tǒng)默認安裝了openjdk,使用whichjava查找Java安裝目錄,然
后卸載:rm–rf/bin/java(Java安裝目錄)
3)編輯~/.bashrc配置,把JDK加入系統(tǒng)環(huán)境變量
vi~/.bashrc
打開文件后,在文件末尾追加如下代碼:
exportJAVA_HOME=/usr/local/bigdata/jdk1.8.0_131
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
9
湖南商務職業(yè)技術學院畢業(yè)設計
exportJAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
exportPATH=$PATH:${JAVA_PATH}
按ESC,輸入:wq保存退出
4)讓~/.bashrc生效
source~/.bashrc
5)確認JDK安裝成功
java–version
4.1.2搭建Hadoop集群完全分布式
i網(wǎng)絡配置、修改主機名、配置網(wǎng)絡映射
1)修改網(wǎng)絡配置文件
三臺都要修改
vi/etc/sysconfig/network-scripts/ifcfg-ens33
圖4-1網(wǎng)絡配置
2)主機名配置
直接刪除以前的,添加當前節(jié)點主機名(三臺都要修改)
vi/etc/hostname
3)配置網(wǎng)絡映射
vi/etc/hosts
在文件最后添加ip地址主機名(每一臺虛擬機上都要配置,如下三行都要
添加)
6bigdata
10
湖南商務職業(yè)技術學院畢業(yè)設計
7bigdata01
8bigdata02
4)重啟網(wǎng)絡服務:
servicenetworkrestart
ii設置SSH無密碼登錄節(jié)點
1)執(zhí)行命令在本機生成公鑰、私鑰和驗證文件
ssh-keygen-trsa
2)執(zhí)行命令將登錄信息復制到驗證文件
ssh-copy-idbigdata#bigdata為主機名
ssh-copy-idbigdata01#bigdata01為主機名
ssh-copy-idbigdata02#bigdata02為主機名
iii安裝Hadoop
1)解壓
解壓hadoop-2.7.3.tar.gz,重命名為hadoop
tar-zxvfhadoop-2.7.3.tar.gz
mkdir/usr/local/bigdata
mvhadoop-2.7.3hadoop
mvhadoop/usr/local/bigdata/hadoop
(配置文件時均在hadoop的主目錄下操作)
進入Hadoop主目錄:cd/usr/local/bigdata/hadoop
2)配置Hadoop的環(huán)境變量
設置HADOOP環(huán)境變量,執(zhí)行如下命令在~/.bashrc中修改:
vim~/.bashrc
在文件最后面增加如下內(nèi)容:
exportHADOOP_HOME=/usr/local/bigdata/Hadoop
exportHADOOP_INSTALL=$HADOOP_HOME
exportHADOOP_MAPRED_HOME=$HADOOP_HOME
exportHADOOP_COMMON_HOME=$HADOOP_HOME
exportHADOOP_HDFS_HOME=$HADOOP_HOME
exportYARN_HOME=$HADOOP_HOME
11
湖南商務職業(yè)技術學院畢業(yè)設計
exportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
exportPATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
保存后,執(zhí)行如下命令使配置生效:
source~/.bashrc
iv配置分布式集群環(huán)境(6個配置文件)
對于Hadoop分布式集群模式的搭建,需要配置的文件有:
環(huán)境變量配置文件:hadoop-env.sh、yarn-env.sh、mapred-env.sh
全局核心配置文件:core-site.xml
HDFS配置文件:hdfs-site.xml
YARN配置文件:yarn-site.xml
MapReduce配置文件:mapred-site.xml、slaves
1、修改/etc/hadoop/hadoop-env.sh
定位25行,配置自己的jdk路徑。
2、修改/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/bigdata/hadoop/data/tmp</value>
</property>
</configuration>
3、修改/etc/hadoop/hdfs-site.xml
<configuration>
<!--配置NameNode的http訪問地址和端口號-->
<property>
<name>node.http-address</name>
<value>bigdata:50070</value>
</property>
<!--配置SecondaryNameNode的http訪問地址和端口號-->
12
湖南商務職業(yè)技術學院畢業(yè)設計
<property>
<name>node.secondary.http-address</name>
<value>bigdata01:50090</value>
</property>
<!--hdfs副本數(shù)量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<!--配置存放NameNode的目錄-->
<name>.dir</name>
<value>file:/usr/local/bigdata/hadoop/tmp/dfs/name</value>
</property>
<property>
<!--配置存放DataNode存放的目錄-->
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/bigdata/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
4、修改/etc/hadoop/yarn-site.xml
<configuration>
<property>
<!--指定ResourceManager運行于哪個節(jié)點上-->
<name>yarn.resourcemanager.hostsname</name>
<value>bigdata</value>
</property>
<property>
<!--指定ResourceManager服務器的web地址與端口-->
13
湖南商務職業(yè)技術學院畢業(yè)設計
<name>yarn.resourcemanager.webapp.address</name>
<value>bigdata:8088</value>
</property>
<property>
<!--指定NodeManager啟動時加載的server方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--指定使用的mapreduce_shuffle中的類-->
<name>yarn.nodemanager.aux-
services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<!--設置是否使用日志聚合功能-->
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<!--設置聚合日志于HDFS上最長儲存時間-->
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
<property>
<!--指定日志的聚合目錄-->
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/root/data/logs</value>
</property>
</configuration>
5、修改/etc/hadoop/mapred-site.xml
用已有mapred-site.xml.template復制出一個mapred-site.xml。
復制命令:
14
湖南商務職業(yè)技術學院畢業(yè)設計
cp/usr/local/bigdata/hadoop/etc/hadoop/mapred-site.xml.template
/usr/local/bigdata/hadoop/etc/hadoop/mapred-site.xml
文件里配置:
<configuration>
<property>
<!--指定MapReduce框架運行于YARN上面-->
<name></name>
<value>yarn</value>
</property>
<property>
<!--設置MapReduce歷史服務器安裝的位置與其端口號-->
<name>mapreduce.jobhistory.address</name>
<value>bigdata02:10020</value>
</property>
<property>
<!--設置歷史服務器web頁面地址與端口-->
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata02:19888</value>
</property>
<property>
<!--設置存儲日志文件的臨時路徑-->
<name>ermediate-done-dir</name>
<value>${hadoop.tmp.dir}/mr-history/tmp</value>
</property>
<property>
<!--設置存儲運行日志的最終目錄-->
<name>mapreduce.jobhistory.done-dir</name>
<value>${hadoop.tmp.dir}/mr-history/done</value>
</property>
</configuration>
6、修改/etc/hadoop/slaves
添加所有節(jié)點主機名bigdata、bigdata01、bigdata02。
15
湖南商務職業(yè)技術學院畢業(yè)設計
v分發(fā)Hadoop集群安裝目錄及文件
在主節(jié)點上安裝和配置好hadoop系統(tǒng),并且其他子節(jié)點完成ssh的安
裝、免密登錄等,就可以把在bigdata上配置好的Hadoop和linux環(huán)境配置文
件分派給其他節(jié)點。
拷貝主節(jié)點已安裝的hadoop分別到bigdata01和bigdata02兩臺節(jié)點
scp-r/usr/local/bigdata/hadooproot@bigdata01:/usr/local/bigdata/
scp-r/usr/local/bigdata/hadooproot@bigdata02:/usr/local/bigdata/
拷貝linux環(huán)境配置文件到分別到bigdata01和bigdata02兩臺節(jié)點
scp-r~/.bashrcroot@bigdata01:~/
scp-r~/.bashrcroot@bigdata02:~/
拷貝主節(jié)點的jdk到bigdata01和bigdata02兩臺節(jié)點
scp-r/usr/local/bigdata/jdk1.8.0_131
root@bigdata01:/usr/local/bigdata/
scp-r/usr/local/bigdata/jdk1.8.0_131
root@bigdata02:/usr/local/bigdata/
vi格式化NameNode
在啟動hadoop集群前,需要先格式化NameNode,在Master主機下執(zhí)行
格式化命令:
hdfsnamenode-format
vii配置時間同步
Hadoop的主節(jié)點與各子節(jié)點的時間都得同步才行。下面通過配置時間同
步服務器(NTP)來進行時間同步。
我們主要以bigdata作為NTP服務器,子節(jié)點bigdata01和bigdata02每
10分鐘與bigdata進行同步一次。
1)安裝NTP服務器
查看是否安裝NTP服務,如果出現(xiàn)ntp-x.x.x和ntpdate-x.x.x則不需要再安
裝
rpm-qa|grepntp
安裝命令:
yuminstall-yntp#使用yum在線安裝
16
湖南商務職業(yè)技術學院畢業(yè)設計
修改配置文件ntp.conf
vi/etc/ntp.conf
①啟用restrice,修改網(wǎng)段
刪除restrice前的注釋,修改為自己的網(wǎng)段
restrictmasknomodifynotrap
②注釋掉四行server域名,再添加兩行,如下所示:
#server0.iburst
#server1.iburst
#server2.iburst
#server3.iburst
server
fudgestratum10
③修改配置文件ntpd
vi/etc/sysconfig/ntpd
于第2行這里添加SYNC_HWCLOCK=yes
SYNC_HWCLOCK=yes
④啟動NTP服務
servicentpdstart#啟動NTP服務
chkconfigntpdon#開機自啟動,永久啟動
2)配置其他機器的時間同步
需要保證子節(jié)點里面也安裝了NTP,然后開始配置子節(jié)點與主節(jié)點同步時
間。以下操作兩個子節(jié)點上配置(分別配置一遍):
①在ntp.conf文件注釋掉四行server域名配置,其后添加一行:server
bigdata
②修改配置文件ntpd,此操作和前面的NTP服務器中配置一樣
③啟動時間同步
啟動NTP服務:
servicentpdstart&chkconfigntpdon
3)測試集群間的時間同步
通過命令查看集群簡的時間是否同步
date'+%Y-%m-%d%H:%M:%S'
顯示格式為“年-月-日時:分:秒”,若三臺時間都顯示的一樣,即時間同步
完成。后面再重啟虛擬機看看各節(jié)點有沒有時間同步。
17
湖南商務職業(yè)技術學院畢業(yè)設計
4.1.3Hive安裝配置
i軟件準備
通過SecureFX傳至虛擬機
MySQL-client-5.5.30-1.linux2.6.x86_64.rpm
MySQL-server-5.5.30-1.linux2.6.x86_64.rpm
apache-hive-2.3.4-bin.tar.gz
mysql-connector-java-5.1.48.jar
iimysql安裝
安裝mysql
rpm–ivhMySQL-client-5.5.30-1.linux2.6.x86_64.rpm
mysql配置
1)啟動mysql服務:
servicemysqlstart
2)創(chuàng)建root用戶密碼:
用戶名root,密碼hive
/usr/bin/mysqladmin–urootpassword‘hive’
3)登錄mysql:
mysql–uroot–p
4)創(chuàng)建數(shù)據(jù)庫hive:
createdatabasehive
5)創(chuàng)建用戶及授權:(給hive數(shù)據(jù)庫授權)
createuser‘hive’@’%’identifiedby‘hive’;
grantallprivilegeson*.*to‘hive’@’%’withgrantoption;
6)授權生效:
flushprivileges;
7)設置mysql開機自啟動
chkconfigmysqldon
18
湖南商務職業(yè)技術學院畢業(yè)設計
iiihive安裝
解壓:
tar–zxvfapache-hive-2.3.4-bin.tar.gz
重命名為hive:
mvapache-hive-2.3.4-binhive
mvhive/usr/local/bigdata/hive
cd/usr/local/bigdata/hive/conf
配置hive環(huán)境:
1)修改配置文件hive-env.sh:
將$hive/conf目錄下的hive-env.sh.template更名為hive-env.sh
cphive-env.sh.templatehive-env.sh
vihive-env.sh
設置HADOOP_HOME為HADOOP的安裝路徑:
exportHADOOP_HOME=/usr/local/bigdata/hadoop
配置HIVE_CONF_DIR為hive安裝目錄:
exportHIVE_CONF_DIR=/usr/local/bigdata/hive/conf
2)修改配置文件hive-site.xml:
把hive/conf路徑下的hive-default.xml.template復制兩份,一份更名為
hive-site.xml,一份更名為hive-default.xml
cphive-default.xml.templatehive-site.xml
vihive-site.xml
打開hive-site.xml,添加:
若配置文件代碼太多用簡版site文件替換
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
</property>
<!--默認的存儲位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
19
湖南商務職業(yè)技術學院畢業(yè)設計
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/usr/local/bigdata/hive/downloaded</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/usr/local/bigdata/hive/scratchdir</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://6:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
hive為用戶名
hive為用戶密碼
3)配置perties:
cpperties.templateperties
20
湖南商務職業(yè)技術學院畢業(yè)設計
viperties
hive.log.dir=/usr/local/bigdata/hive/log/${}
hive.exec.local.scratchdir和hive.downloaded.resources.dir為本地
目錄,需要手動創(chuàng)建/usr/local/bigdata/hive/downloaded和
/usr/local/bigdata/hive/scatchdir,日志文件也需要手動在本地創(chuàng)建
/usr/local/bigdata/hive/log
4)刪除$HADOOP_HOME/share/hadoop/yarn/lib目錄下的jline*.jar,將
$HIVE_HOME/lib/jline-2.12.jar復制到
$HADOOP_HOME/share/hadoop/yarn/lib目錄下
($HADOOP_HOME相當于/usr/local/bigdata/Hadoop)
cd/usr/local/bigdata/hive/lib/
cpjline-2.12.jar
/usr/local/bigdata/hadoop/share/hadoop/yarn/lib/
5)將mysql-connector-java-5.1.48.jar復制到$HIVE_HOME/lib目錄下
(/usr/local/bigdata/hive/lib)
cd~
cpmysql-connector-java-5.1.48.jar/usr/local/bigdata/hive/lib/
6)配置環(huán)境變量
vi~/.bashrc
在末尾增加兩行:
exportHIVE_HOME=/usr/local/bigdata/hive
exportPATH=$PATH:$HIVE_HOME/bin
7)使環(huán)境變量生效:
source~/.bashrc
8)hive測試
啟動hadoop:start-dfs.sh
start-yarn.sh
啟動hive(hive安裝目錄下):
hi會出現(xiàn)提示mysql未初始化等錯誤信息導致無法啟動,執(zhí)行:
bin/schematool–initSchema–dbTypemysql
完成后再啟動hive:
bin/hive
21
湖南商務職業(yè)技術學院畢業(yè)設計
4.1.4Zookeeper完全分布式集群搭建
i安裝Zookeeper
通過SecureFX將apache-zookeeper-3.7.0-bin.tar.gz傳至虛擬機。
解壓
tar-zxvfapache-zookeeper-3.7.0-bin.tar.gz-C
/usr/local/bigdata/zk
配置zook.cfg文件
cd/usr/local/bigdata/zk/conf
mvzoo-sample.cfgzoo.cfg
修改zoo.cfg,添加如下配置:
dataDir=/usr/local/bigdata/zk/zkdata#修改數(shù)據(jù)存儲路徑配置
在最后添加加以下配置:
server.1=bigdata:2888:3888
server.2=bigdata01:2888:3888
server.3=bigdata02:2888:3888
配置服務器編號
cd/usr/local/bigdata/zk#進入Zookeeper家目錄
mkdirzkdata#創(chuàng)建zkdata目錄
vimzkdata/myid#創(chuàng)建并編輯一個myid的文件
在myid文件中添加與server對應的編號1,分別在bigdata01、bigdata02
上修改myid文件中內(nèi)容為2、3。
修改環(huán)境變量:
vim~/.bashrc
在后面添加:
exportZK_HOME=/usr/local/bigdata/zk
exportPATH=$ZK_HOME/bin:$PATH
完成后執(zhí)行:source~/.bashrc
配置文件分發(fā)
cd/usr/local/bigdata/
scp-rzkroot@bigdata01:/usr/local/bigdata/
scp-rzkroot@bigdata02:/usr/local/bigdata/
22
湖南商務職業(yè)技術學院畢業(yè)設計
scp-r~/.bashrcroot@bigdata01:~/
scp-r~/.bashrcroot@bigdata02:~/
注意在其他節(jié)點執(zhí)行:source~/.bashrc
zookeeper群啟腳本
cd/home/tan/#進入用戶家目錄
mkdirbin#新建一個bin目錄
vim/bin/zk.sh#編寫腳本
chmod+xzk.sh#賦予可執(zhí)行權限
zk.sh腳本代碼編寫如下:
#!/bin/bash
case$1in
"start"){
foriinbigdatabigdata01bigdata02
do
echo"$i"
ssh$i"/usr/local/bigdata/zk/bin/zkServer.shstart"
done
};;
"stop"){
foriinbigdatabigdata01bigdata02
do
echo"$i"
ssh$i"/usr/local/bigdata/zk/bin/zkServer.shstop"
done
};;
"status"){
foriinbigdatabigdata01bigdata02
do
echo"$i"
ssh$i"/usr/local/bigdata/zk/bin/zkServer.shstatus"
done
};;
esac
23
湖南商務職業(yè)技術學院畢業(yè)設計
下次運行可直接在主節(jié)點輸入:/home/tan/bin/zk.shstart或zk.shstop或
zk.shstatus
4.1.5Hbase完全分布式
i安裝hbase
1)將hbase-1.4.0-bin.tar.gz,通過SecureFX傳至虛擬機
2)解壓
tar–zxvfhbase-1.4.0-bin.tar.gz
3)重命名為hbase
mvhbase-1.4.0-binhbase
mvhbase/usr/local/bigdata/hbase
4)添加全局環(huán)境變量
vim~/.bashrc
exportHBASE_HOME=/usr/local/bigdata/hbase
exportPATH=$HBASE_HOME/bin:$PATH
完成后執(zhí)行:source~/.bashrc
ii配置hbase集群
配置hbase集群,要修改4個文件,copy
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度區(qū)塊鏈技術股權質押借款合同范本
- 2025年度高端醫(yī)療器械研發(fā)與生產(chǎn)合作協(xié)議-@-2
- 2025年度智慧農(nóng)業(yè)管理與咨詢項目合同
- 2025年度航空貨運代理服務合同細則
- 2025年度農(nóng)業(yè)科技園合作合同范本(2024版)
- 二零二五年度外匯交易員資格認證合同
- 天津2025年度離婚協(xié)議書簽訂前評估指南
- 現(xiàn)代技術助力教育資源的優(yōu)化配置
- 現(xiàn)代物流與教育領域的融合探討
- 生活化教學與小學漢字學習的有效融合
- 島津氣相色譜培訓
- 2024年03月四川農(nóng)村商業(yè)聯(lián)合銀行信息科技部2024年校園招考300名工作人員筆試歷年參考題庫附帶答案詳解
- 睡眠專業(yè)知識培訓課件
- 臨床思維能力培養(yǎng)
- 人教版高中物理必修第三冊第十章靜電場中的能量10-1電勢能和電勢練習含答案
- 《工程勘察設計收費標準》(2002年修訂本)
- 中國宗教文化 中國古代宗教文化的特點及現(xiàn)代意義
- 2024年四川省巴中市級事業(yè)單位選聘15人歷年高頻難、易錯點練習500題附帶答案詳解
- 演出經(jīng)紀人培訓
- 蓋房四鄰簽字協(xié)議書范文
- 2024年新人教版七年級上冊數(shù)學教學課件 第六章 幾何圖形初步 數(shù)學活動
評論
0/150
提交評論