




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Kafka到HIVE數(shù)據(jù)遷移工具的設(shè)計(jì)與實(shí)現(xiàn)答辯人:劉凱指導(dǎo)老師:周強(qiáng) 數(shù)據(jù)倉(cāng)庫(kù) HIVE應(yīng)用場(chǎng)景此工具用在大數(shù)據(jù)加載過(guò)程中將消息隊(duì)列Kafka中的數(shù)據(jù)遷移到數(shù)據(jù)倉(cāng)庫(kù)HIVE中日志收集系統(tǒng)Flume消息隊(duì)列Kafka分布式文件系統(tǒng)HDFS消息隊(duì)列 Kafka消息隊(duì)列技術(shù)是分布式應(yīng)用間交換信息的一種技術(shù),可以通過(guò)它更方便快捷地實(shí)現(xiàn)分布組件間的通訊和信息交換。消息中間件適用于需要可靠的數(shù)據(jù)傳送的分布式環(huán)境中。Kafka是一種分布式的,基于發(fā)布/訂閱的消息系統(tǒng)。由LinkedIn開(kāi)發(fā)。Kafka的主要設(shè)計(jì)目標(biāo)包括以時(shí)間復(fù)雜度O(1)的方式提供消息的持久化能力;保證高吞吐率,做到即使在廉價(jià)的商用機(jī)器上
2、也能保證高吞吐率;支持消息存儲(chǔ)分區(qū)及分布式消費(fèi),同時(shí)保證各分區(qū)內(nèi)的消息順序存儲(chǔ)?;贖adoop的數(shù)據(jù)倉(cāng)庫(kù) HIVE HIVE的核心任務(wù)是負(fù)責(zé)將用戶輸入的命令轉(zhuǎn)換成MapReduce任務(wù),然后在Hadoop集群上執(zhí)行用戶接口Hive提供三種用戶接口,包括CLI(命令行工具)、JDBC/ODBC接口、WebUI元數(shù)據(jù)HIVE將元數(shù)據(jù)存儲(chǔ)到普通關(guān)系型數(shù)據(jù)庫(kù)中,如mysql、derby等。HIVE的元數(shù)據(jù)包括表的名字及所屬數(shù)據(jù)庫(kù)、表的列和分區(qū)及其類型、表的屬性、表的數(shù)據(jù)所在目錄等。數(shù)據(jù)存儲(chǔ)及計(jì)算框架HIVE實(shí)際數(shù)據(jù)都存儲(chǔ)在分布式文件系統(tǒng)HDFS中,大部分查詢、計(jì)算由MapReduce完成分布式計(jì)算框
3、架 MapReduceMapReduce是一種分布式處理模型和執(zhí)行環(huán)境,用于大規(guī)模數(shù)據(jù)集的并行計(jì)算。MapReduce遵守分而治之的原則,可以實(shí)現(xiàn)性能隨機(jī)器數(shù)量的增加而線性增加。依照分治的原則,通過(guò)將數(shù)據(jù)拆分到分布式文件系統(tǒng)中的不同機(jī)器上,讓任務(wù)執(zhí)行的節(jié)點(diǎn)能盡快的直接訪問(wèn)和處理數(shù)據(jù),然后將處理結(jié)果合并后展示給用戶。本課題解決的問(wèn)題 主要解決kafka與HIVE對(duì)接的問(wèn)題,采用MapReduce計(jì)算框架,創(chuàng)建從Kafka到HIVE的數(shù)據(jù)管道,以分布式的方式從Kafka中拉取數(shù)據(jù),依照HIVE的元數(shù)據(jù)信息將數(shù)據(jù)轉(zhuǎn)換成指定的格式并存儲(chǔ)到文件系統(tǒng)中。同時(shí)保證系統(tǒng)高吞吐率及高可靠性。 在實(shí)現(xiàn)上本質(zhì)是一個(gè)
4、只包含Map任務(wù)的MapReduce程序,包括任務(wù)調(diào)度,數(shù)據(jù)拉取,數(shù)據(jù)存儲(chǔ)及歷史記錄四個(gè)模塊。模塊間交互圖1、任務(wù)調(diào)度模塊該模塊的主要功能會(huì)是負(fù)責(zé)讀取配置信息并統(tǒng)計(jì)需要計(jì)算的任務(wù),分配任務(wù)同時(shí)更新本次執(zhí)行的歷史記錄。2、數(shù)據(jù)拉取模塊只模塊的主要功能是負(fù)責(zé)從kafka指定的位置拉取數(shù)據(jù)。3、數(shù)據(jù)存儲(chǔ)模塊該模塊的主要功能室負(fù)責(zé)將數(shù)據(jù)按照指定的格式存儲(chǔ)到Hive表中去。4、歷史記錄模塊該模塊的主要功能是用來(lái)保存程序運(yùn)行產(chǎn)生的記錄信息。保證Kafka與HIVE數(shù)據(jù)兼容Kafka中的不同類型的數(shù)據(jù)使用Topic進(jìn)行區(qū)分,Hive中不同的數(shù)據(jù)通過(guò)表來(lái)區(qū)分,所以每一個(gè)Topic對(duì)應(yīng)HIVE中的一個(gè)表。將同一
5、個(gè)Topic中的消息添加到一個(gè)HIVE表中。數(shù)據(jù)從kafka遷移到hive表的過(guò)程中設(shè)計(jì)兩個(gè)序列化的過(guò)程,一是對(duì)從kafka中取出的數(shù)據(jù)進(jìn)行解碼,以使這條數(shù)據(jù)能夠正確的轉(zhuǎn)換成鍵值對(duì)的形式供Map方法處理,第二是在向HIVE中寫(xiě)數(shù)據(jù)時(shí)進(jìn)行的序列化過(guò)程,以使HIVE能夠正確識(shí)別,即serde過(guò)程中的Serializer。在寫(xiě)出數(shù)據(jù)時(shí)需要連接HIVE的元數(shù)據(jù)服務(wù),來(lái)獲取HIVE表的元數(shù)據(jù),這些信息包括表數(shù)據(jù)文件存放的位置、分區(qū)方式、serde(序列化與反序列化)方式、壓縮方式,校驗(yàn)方式等。通過(guò)這些信息保證寫(xiě)到HDFS中的數(shù)據(jù)能被HIVE正確處理。軟件測(cè)試結(jié)論1、程序穩(wěn)定性 正常用例: 1、對(duì)異常數(shù)據(jù)
6、的容錯(cuò)能力 2、對(duì)HIVE、kafka、MapReduce依賴服務(wù)的容錯(cuò)能力 3、同時(shí)處理多個(gè) Topic的能力 異常用例: 1、HDFS服務(wù)關(guān)閉后,程序不能自動(dòng)退出。 2、程序運(yùn)行過(guò)程中手動(dòng)關(guān)閉,會(huì)產(chǎn)生重復(fù)處理數(shù)據(jù)的情況2、系統(tǒng)性能瓶頸 1、 Kafka的提供的消費(fèi)能力及HDFS提供的寫(xiě)數(shù)據(jù)的能力都遠(yuǎn)大于數(shù)據(jù)落地插件的處理速度。 數(shù)據(jù)加載的性能瓶頸在數(shù)據(jù)落地插件自身。 2、數(shù)據(jù)兩次編解碼耗時(shí)較多。3、性能測(cè)試結(jié)果 1、單個(gè)map任務(wù)的處理性能與單條數(shù)據(jù)的大小有關(guān),單條數(shù)據(jù)越大,整體處理速度就越快。 2、數(shù)據(jù)落地插件任務(wù)分配機(jī)制合理,在達(dá)到單節(jié)點(diǎn)性能瓶頸前可以通過(guò)增加task任務(wù)數(shù)量的方式提高 整體性能。測(cè)試主要針對(duì)軟件的功能性、穩(wěn)定性及遷移性能進(jìn)行了測(cè)試,測(cè)試結(jié)果如下:展望本文在數(shù)據(jù)遷移時(shí)為保證數(shù)據(jù)既能與kafka數(shù)據(jù)兼容又能被HIVE數(shù)據(jù)兼容,不可避免的需要對(duì)數(shù)據(jù)進(jìn)行編碼兩次,這兩次編碼是順次進(jìn)行的,占用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)務(wù)委托合作合同標(biāo)準(zhǔn)文本
- 企業(yè)項(xiàng)目設(shè)計(jì)合同范例
- 樂(lè)園物業(yè)服務(wù)合同標(biāo)準(zhǔn)文本
- 與個(gè)人簽訂業(yè)務(wù)合同標(biāo)準(zhǔn)文本
- 借貸款公司合同標(biāo)準(zhǔn)文本
- 2025建筑裝飾合同樣本
- 2025新款股權(quán)轉(zhuǎn)讓合同范例
- 上班入職合同標(biāo)準(zhǔn)文本
- 公司借用協(xié)議合同標(biāo)準(zhǔn)文本
- 2025年度綠地城廣告制作類業(yè)務(wù)合同
- 2024-2030年中國(guó)石榴花提取物行業(yè)發(fā)展動(dòng)態(tài)及供需前景預(yù)測(cè)報(bào)告
- 種豬運(yùn)輸合同范本
- UL859(個(gè)人修飾電器標(biāo)準(zhǔn))中文
- JC∕T 2533-2019 預(yù)拌混凝土企業(yè)安全生產(chǎn)規(guī)范
- JBT 3997-2011 金屬切削機(jī)床灰鑄鐵件 技術(shù)條件
- 云南省建筑工程結(jié)構(gòu)實(shí)體檢驗(yàn)檢測(cè)技術(shù)規(guī)程
- 機(jī)械制圖與CAD (第3版) 課件 任務(wù)4.3 減速器從動(dòng)軸零件圖的識(shí)讀與繪制
- 中等職業(yè)學(xué)校公共基礎(chǔ)課程 數(shù)學(xué)《對(duì)數(shù)》教學(xué)課件
- 河南省新鄭市2023-2024學(xué)年七年級(jí)下學(xué)期6月期末生物試題
- 中國(guó)聯(lián)通2020年中級(jí)IT專業(yè)能力認(rèn)證-需求分析試題題庫(kù)
- QBT 3653-1999 羽毛球拍行業(yè)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論