之前的是單機版的根據ip位址計算歸屬地,當資料量小的時候還可以,但是在大資料實際生產中是不行的,必須將它改造成乙個spark程式,然後在spark集群上執行
spark程式和單機版的程式不一樣,下面來仔細分析一下spark程式的執行流程
首先是乙個spark集群,集群中有master和worker,啟動master和worker之後,worker會和master建立連線並向master傳送心跳,這時候提交乙個sparksubmit,也就是driver給master,然後master會向spark進行通訊,讓worker啟動executor,然後executor就會和driver就行通訊了, 根據ip位址計算出歸屬地這個spark程式是寫在driver端的,但是執行計算是在execoutor端,也就是說driver端只告訴執行邏輯,並不參與任何的計算和儲存,在driver端建立了rdd之後,一旦出發執行就會建立task,然後driver會通過網路傳送到executor端,然後會在executor端實現根據ip位址計算出歸屬地的結果,但是如果ip位址的規則檔案不是放在hdfs中的,而是放在driver端的機器上的,那麼executor端計算的時候就拿不到這個ip位址規則檔案,這個時候就引出了spark中的廣播變數了,driver通過網路將ip位址規則傳送個每個executor上,executor上的多個task通過這個ip位址規則來進行匹配,匹配結束之後會生成許多小檔案,然後將相同分割槽的檔案聚合到一起,最後儲存到mysql中
Spark之根據日誌對IP位置統計
根據ip計算訪問者歸屬地,按照省計算訪問次數,將計算好的結果寫入mysql中 日誌檔案型別 20090121000133586141000 117.101.219.241 12.zgwow.com launcher index.htm mozilla 4.0 compatible msie 7.0 ...
根據網域名稱獲取ip位址
1如何查詢 網域名稱對應的ip位址 在電腦左下角搜尋cmd 在命令提示符中輸入 ping www.pm25.in 在電腦左下角搜尋執行,輸入cmd 在命令提示符中輸入 ping www.pm25.in 得到ip 106.187.49.54 2如何檢查獲取的ip是否正確?c windows syste...
perl根據ip位址獲取mac位址
有時候需要根據一台主機的ip位址獲取其mac位址,這是可以實現的,但這個ip位址必須是同乙個乙太網內的ip位址。在perl的模組中net arp可以實現這個功能。但是它的arp lookup函式只能從本機的arp快取表中取 被查詢ip 的mac,如果恰恰有,能取到,沒問題。但是如果arp快取沒有 被...