點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!?。?/span>
文章前言
我們在流式計算數(shù)據(jù)加工流程中,有個場景是實現(xiàn)一種基于流式數(shù)據(jù)里面ip轉換成對應的歸屬地信息,這個場景首先想到是如何找一個符合條件的ip映射庫,而這個ip映射庫需滿足如下條件:
1. 性能好:因為實時數(shù)據(jù)量大,每條數(shù)據(jù)都需要實時調用,獲取ip映射關系,所以性能要好,如果延時較大,會影響后面流程節(jié)點處理;
2. 開源,能擴展:開源,能內網(wǎng)部署,并提供擴展功能,支持加新的ip映射關系;
3. 方便調用:支持api調用,且精準率要高。
通過調研,開源ip2region.db數(shù)據(jù)庫符合我們上面實際場景需求,本文檔主要介紹在flink流式計算中如何使用了ip2region,通過測試程序了解flink 是如何加載外部文件機制,如需了解ip2region更多詳情,可自行到官網(wǎng)地址查閱https://github.com/lionsoul2014/ip2region
功能實現(xiàn)
1. 下載項目
git clone https://github.com/lionsoul2014/ip2region.git
2. 引用maven依賴
程序引用ip2region依賴。
<dependency>
<groupId>org.lionsoulgroupId>
<artifactId>ip2regionartifactId>
<version>1.7.2version>
dependency>
3. demo編寫
api比較簡單就三行代碼,采用的是memory查詢算法。
打包測試
程序打包成功后,將程序提交到flink on yarn 環(huán)境之前,我們要考慮ip2regiog.db存儲的位置及加載方式,否則在分布式環(huán)境下flink程序是無否讀到該數(shù)據(jù)庫:
方式一:ip2region.db庫放入hadoop各計算節(jié)點:
將ip2region.db數(shù)據(jù)庫文件放入hadoop各計算節(jié)點上指定位置上(如:/home/gpadmin/jar_repo/config/ip2region.db),由分配到此計算節(jié)點flink任務到指定目錄下加載對應的數(shù)據(jù)庫文件,實現(xiàn)ip歸屬轉換。
1)新建basic.config配置文件,加入配置項
ip2region.db.file.path:/home/ip2region.db //指定讀取的路徑。
2)提交測試程序到y(tǒng)arn
flink run -m yarn-cluster -p 1 -yjm 1024 -ytm 1024 -ynm
ipregiontest -c com.shsnc.fk.task.metricnormal.MetricsCollectTask regiondb.jar basic.config
輸出計算結果:
2021-12-17 16:27:26,470 INFO
com.XXXXX.fk.task.dataprocess.function.DataProcessPreRichMap
Func [] - regin:中國|0|XXX|XXX|XX
3)分析加載流程
我們在flink run 啟動命行里面,沒有直接指向ip2region.db加載方式,而是在應用程序加載配置項獲取對應的數(shù)據(jù)庫文件存儲位置,通過觀察任務提交到flink on yarn 環(huán)境過程中,發(fā)現(xiàn)提交任務過程,tm自動會將該數(shù)據(jù)庫文件放入yarn任務緩存目錄下(Task ClassPath),任務運行過程中會到緩存目錄下找到數(shù)據(jù)庫文件。
ps -ef|grep container_1636698971952_0029_01_000002(容器id)。
ll /proc/進程號。
這種方式測試程序可以找到ip2region.db數(shù)據(jù)庫文件,并且能計算出所需要ip歸屬,缺點是每臺hadoop計算節(jié)點上都要將ip2region.db數(shù)據(jù)庫文件放入指定位置,否則會提示讀不到數(shù)據(jù)庫文件現(xiàn)象,如果集群環(huán)境節(jié)點較多使用起來并不方便。
方式二:一次性加載方式
通過檢查flink run命令參數(shù),發(fā)現(xiàn)-yt 參數(shù)方式很好解決我們當前面臨的問題,先看一下參數(shù)的使用說明:
參數(shù)方式方式是 -yt 目錄名,該參數(shù)意思是在指定目錄中傳輸文件,處理流程如下:
-yt 目錄名--hdfs(存儲)--tm(下載)-tm(classpath)。
1)提交任務
flink run -m yarn-cluster -p 1 -yjm 1024 -ytm 1024 -yt
/home/gpadmin/jar_repo/config -ynm ipregiontest -c com.XXXXX.fk.task.metricnormal.MetricsCollectTask regiondb.jar basic.config
注意這里指定是目錄,而不是指定的是具體加載的文件。
2)hdfs查找存儲位置
hdfs dfs -find hdfs://master:port/ -iname “ip2region.db”
可以看出flink 任務在提交過程中,會將ip2region.db自動存儲在hdfs上flink對應的任務目錄下,同時把-yt 提向的目錄(config )也存儲了。
3)自動下載
檢查每個haoop計算節(jié)點,tm會自動到hdfs上下載ip2region.db存放到緩存目錄下(Task ClassPath),所以任務運行過程就要讀到ip2region.db數(shù)據(jù)庫文件,通過api很方便獲取ip歸屬。
文章小結
方案二相比方案一優(yōu)勢明顯,只需提交任務的時候指定外部文件在存儲的目錄,提交的過程,會自動分發(fā)到各個計算節(jié)占的任務所在的classpath中,很好解決了外部文件加載的問題。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/129568.html
摘要:實際時間以官網(wǎng)為準地址在線查詢這個工具不錯的,可以同時查詢純真數(shù)據(jù)的數(shù)據(jù),還有淘寶數(shù)據(jù)這四個平臺顯示的數(shù)據(jù),可以作為歸屬地的參考最后如果您還有哪些純真數(shù)據(jù)庫的查詢網(wǎng)站,也可以分享一下哦國內目前查詢IP的地方有很多,比如:ip138、ipip.net、ip.cn等很多平臺,都可以查詢到IP。一般國內民用查詢較多的是ip138.com,目前國內很多比如:百度查詢IP或站長工具等都是調用ip138...
自研實時計算模塊介紹及運維數(shù)據(jù)應用場景實施 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:可以通過大數(shù)據(jù)生態(tài)的一系列工具生態(tài)來解決大數(shù)據(jù)問題數(shù)據(jù)分片主要有兩種方式哈希和范圍。哈希的問題是范圍查詢支持不佳,范圍的問題是可能冷熱數(shù)據(jù)不均。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續(xù))后端好書閱讀與推薦(續(xù)二)后端好書閱讀與推薦(續(xù)三)后端好書閱讀與推薦(續(xù)四)后端好書閱讀與推薦(續(xù)五)后端好書閱讀與推薦(續(xù)六) Elasticsearch權威指南 El...
摘要:可以通過大數(shù)據(jù)生態(tài)的一系列工具生態(tài)來解決大數(shù)據(jù)問題數(shù)據(jù)分片主要有兩種方式哈希和范圍。哈希的問題是范圍查詢支持不佳,范圍的問題是可能冷熱數(shù)據(jù)不均。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續(xù))后端好書閱讀與推薦(續(xù)二)后端好書閱讀與推薦(續(xù)三)后端好書閱讀與推薦(續(xù)四)后端好書閱讀與推薦(續(xù)五)后端好書閱讀與推薦(續(xù)六) Elasticsearch權威指南 El...
摘要:為了方便廣大的開發(fā)者,特此統(tǒng)計了網(wǎng)上諸多的免費,為您收集免費的接口服務,做一個的搬運工,以后會每月定時更新新的接口。將長段中文切詞分開。 為了方便廣大的開發(fā)者,特此統(tǒng)計了網(wǎng)上諸多的免費API,為您收集免費的接口服務,做一個api的搬運工,以后會每月定時更新新的接口。有些接口來自第三方,在第三方注冊就可以成為他們的會員,免費使用他們的部分接口。 百度AccessToken:針對HTTP ...
閱讀 1459·2023-01-11 13:20
閱讀 1812·2023-01-11 13:20
閱讀 1263·2023-01-11 13:20
閱讀 2005·2023-01-11 13:20
閱讀 4226·2023-01-11 13:20
閱讀 2879·2023-01-11 13:20
閱讀 1488·2023-01-11 13:20
閱讀 3807·2023-01-11 13:20