tft每日頭條

 > 科技

 > 怎麼部署ovf模闆

怎麼部署ovf模闆

科技 更新时间:2025-03-05 00:57:01

導語:穿梭機是緻誠與宜信基礎研發部合作開發的包含實時清洗、衍生變量計算、和數據融合入庫等功能的一體化系統。


一、簡介

一般而言,大數據處理流程主要包括數據采集、數據處理、數據存儲、數據挖掘和數據應用等環節,大數據處理流程每個環節的數據質量最終決定了大數據産品的質量。相較于傳統的軟件,大數據産品要有大量的數據規模、快速的數據處理、精确的數據分析等特點。

“穿梭機”便是用于銜接大規模的數據采集和海量的數據存儲,并在其中實現快速的數據處理的重要樞紐。本文将結合大數據處理流程介紹穿梭機在實踐當中的演進,正如穿梭機這個名字,我們希望繁雜瑣碎的數據碎片,如同穿梭時空一樣,以一個幹淨有價值的新姿态呈現到我們面前。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)1

二、數據的采集、處理和存儲

從大數據處理流程的第一個環節開始。數據采集,就是通過各種方式收集數據,比如異構數據庫、日志、用戶事件和公開信息等,是大數據産生的源頭。異構數據的遷移有Apache Sqoop等批量數據傳輸組件,日志收集有Logstash等日志收集組件,公開信息采集有各種爬蟲組件。

由于采集數據的方式不同,數據又可分為結構化數據和非結構化數據。比如來自Oracle、MySQL的數據,對字段和結構有着嚴格的定義,因此他們是結構化數據。而來自MongoDB、ElasticSearch的數據,通常字段不統一,結構不相同,是非結構化數據。同樣,日志和采集的公開信息,他們也是非結構化數據。

公開信息采集是我們重要的大數據來源,其更貼近互聯網的一側,我們利用公有雲來搭建數據采集中心。在系統演進過程中,采集中心已經具備了任務分級、彈性收縮、實時監控等的功能,可以合理支配資源、分配任務,使得數據采集在有限的硬件條件下盡可能高效。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)2

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)3

采集完數據,第二步是對數據進行處理。由于原始數據産生自外部網站、服務接口等不确定的數據源,往往會出現數據缺失、錯位或錯誤等問題,在存儲之前,會進行數據預處理,數據預處理一般包含過濾丢棄、去除重複、歸一化、修正錯誤、結構化等數據清洗工作。在這之後,還會根據業務特點和數據種類,做進一步的處理,從而提高數據的價值性、可用性、時效性和準确性。

數據處理完成之後,根據數據的用途和結構,将其寫入合适的存儲。比如用于模糊搜索的數據,将其寫到ElasticSearch。對于格式複雜、涉及多層嵌套的數據,将其寫入MongoDB。對于大體積很少修改的數據,将其寫入HDFS。

對于數據分析和數據應用,由于不屬于穿梭機的工作範圍,本文不再展開闡述。

三、穿梭機的前世今生

雲環境資源有限,計算能力較低,大量的計算更适合于放在本地環境,但受限于雲環境和本地環境的先天隔絕,數據傳輸的時效性和數據計算的準确性是一直以來最受關注的點。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)4

穿梭機項目誕生之初,我們在雲上搭建了臨時的中轉數據庫,采集到的數據先實時存儲在中轉數據庫中,次日淩晨再将前一天的數據批量拉回本地數據庫,然後在本地對前一天的數據進行離線計算,最後将離線計算的結果分發到其他存儲。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)5

這是一條比較長的鍊路,每個環節也無法保證自身的高可用。數據保存在中轉數據庫時,數據本身已經丢失了一定的時效性。并且,由于次日才對數據做處理,很難第一時間發現數據源頭的問題,故障響應時間也因此延長。

随着系統的演進和Wormhole的加入(Wormhole 是一個一站式流式處理雲平台解決方案,詳見edp963/wormhole),業務中的痛點被逐漸的解決,時效性和準确性得到了很高的提升。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)6

現在,我們将采集下來的數據實時發送到消息隊列Kafka,Wormhole以Kafka為Source端,對數據進行統一的處理,處理完成後,由Wormhole寫到各個Sink端。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)7

從高可用上分析,依托于Zookeeper,Kafka集群本身實現了高可用,确保其作為數據管道,可以可靠地傳輸數據。Wormhole,作為運行在YARN集群上的Application,同樣保證了高可用。移除了本地中心庫,數據直接寫入業務相關存儲,消除了單點故障導緻的系統風險,所以目前數據處理的可靠性得到了保證。

從時效上分析,采集到的數據實時發送到Kafka,延遲在毫秒級,Wormhole實時處理寫入存儲,延遲在秒級。所以現在的架構,從數據采集到存儲,實現了秒級延遲。從數據的計算方式來說,原來數據是離線計算,時效是T 1甚至是T N,現在改為實時計算,時效提升為T 0,或者可以說是秒級延遲。

從架構上分析,這是一個Kappa架構。通過Kafka來保存近期的數據,每類數據保存在不同的Topic中,根據不同的業務需求來精細地控制每類數據的保留時間。當需要對某種數據重新計算或者新的計算時,就可以通過控制Flow消費數據的位置來實現,然後将結果保存在新的存儲當中。在這種架構下,我們完成了所有數據的數據清洗、數據融合和衍生變量計算等工作。

由于采集的數據多為非結構化的數據,用Wormhole實現了數據結構化。我們使用了UMS_Extension來定義數據的格式和類型,數據在真正處理之前,經過了一次字段和類型的統一,這減輕了數據處理的複雜程度。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)8

在數據的處理過程中,由于數據清洗過程的複雜,單一的SQL難以處理所有的情況,我們大量使用Custom Class Transformation。為此,我們開發了Custom Class框架和單元測試框架。

通過不同的繼承即可實現不同級别數據結構的轉換,使得開發人員更能專注于對數據本身的處理。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)9

有了很多Custom Class Transformation類,我們就需要簡單的方式對代碼進行單元測試。為此,我們基于TestNG開發了Transformation單元測試框架,使用注解即可進行方便的測試,保證了數據處理的準确性。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)10

最後,我們使用非關系型數據庫來保存處理好的數據,如ElasticSearch和MongoDB。使用Wormhole的Sink Schema功能,在數據輸出之前再對字段和類型做一次統一,并且支持輸出類似JSON的複雜類型,把好數據處理的最後一道關。

怎麼部署ovf模闆(Wormhole在緻誠穿梭機項目中的應用)11

至此,介紹完了緻誠穿梭機項目的前世今生。

寫在最後:

目前,得益于Wormhole實時流式處理方式,數據處理的壓力被分散開來,機器資源消耗峰值得以降低。在3個節點的集群中(單節點Xeon E5-2680,2.40GHz,64GB),在CPU使用率低于50%,内存使用率低于60%的情況下,穿梭機每天承擔着千萬級的數據處理,數十GB的數據累計。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved