3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
按數據形態,我們把數據分為結構化數據和非結構化數據兩種。結構化數據如傳統的Data Warehouse數據,欄位有固定的長度和語義,計算機程序可以直接處理非結構化數據有文本數據、圖像數據、自然語言數據等,計算機程序無法直接進行處理,需要進行格式轉換或信息提取。常見的信息獲取組件包括電信特有的探針技術,為獲取網頁數據常用的爬蟲,採集日誌數據的組件Flume,以及用於消息轉發的Kafka消息中間件2.1 探針在電信運營商領域,從電信的路由器、交換機上把數據採集上來的專有設備是探針2.2 網路爬蟲網路爬蟲的主要目的是將互聯網上的網頁下載到本地,形成一個或聯網內容的鏡像備份。2.2.1 基本原理下圖是一個典型的網路爬蟲框架網路爬蟲的工作流程如下:1)首先人工選取一部分種子URL2)將這些URL放入待抓取URL隊列3)從待抓取URL隊列中取出待抓取URL,解析DNS得到主機IP,並將URL對應的網頁下載下來,存儲到自己的網頁庫中。將這些已抓取的URL放入已抓取URL隊列中4)分析已抓取網頁中的其他URL,並將URL放入待抓取的URL隊列中,進行下一個循環。2.2.2 抓取策略1)深度優先遍歷策略2)廣度悠閑遍歷策略3)反向鏈接數策略策略反向鏈接數是指一個網頁被其他網頁鏈接指向的數量。反向鏈接數表示的是一個網頁的內容受到其他人的推薦的程度。因此,很多時候搜索引擎的抓取系統會使用這個指標來評價網頁的重要程度,從而決定不同網頁的抓取先後順序。4)PartialPageRank策略Partial PageRank演算法借鑒了PageRank演算法的思想:對於已經下載的網頁,連同待抓取URL隊列中的URL,形成網頁集合,計算每個頁面的PageRank值,計算完之後,將待抓取URL隊列中的URL按照PageRank值的大小排列,並按照該順序抓取頁面。如果每次抓取一個頁面,就重新計算PageRank值,一種折中方案是:每抓取K個頁面后,重新計算一次PageRank值。但是這種情況還會有一個問題:對於已經下載下來的頁面中分析出的鏈接,也就是我們之前提到的未知網頁那一部分,暫時是沒有PageRank值的。為了解決這個問題,會給這些頁面一個臨時的PageRank值:將這個網頁所有入鏈傳遞進來的PageRank值進行匯總,這樣就形成了該未知頁面的PageRank值,從而參與排序。5)OPIC策略該演算法實際上也是對頁面進行一個重要性打分。在演算法開始前,給所有頁面一個相同的初始現金(cash)。當下載了某個頁面P之後,將P的現金分攤給所有從P中分析出的鏈接,並且將P的現金清空。對於待抓取URL隊列中的所有頁面按照現金數進行排序。6)大站優先策略對於待抓取URL隊列中的所有網頁,根據所屬的網站進行分類。對於待下載頁面數多的網站,優先下載。這個策略也因此叫做大站優先策略。2.2.3 兩個Python爬蟲實例2.3 日誌收集(Flume)任何一個系統在運行過程中都會產生大量有用的數據。Flume是一款分散式日誌收集系統。Flume的邏輯架構如下所示:Flume採用了分層架構:分別為agent,collector和storage1)agent的作用是將數據源的數據發送給collector,數據源包括文件,網路埠等2)collector的作用是將多個agent的數據匯總後,載入到storage中3)storage是存儲系統,可以是一個普通file,也可以是HDFS,HIVE,HBase,分散式存儲等4)Master是管理協調agent和collector的配置等信息,是flume集群的控制器2.4 數據分發中間件(Kafka)數據採集上來后,需要送到後端組件進一步分析,為了簡化傳送邏輯、增強靈活度,在前端和後端的處理之需要一個消息中間件,以保障消息可靠性、匹配前後端的速度差。Kafka架構如下圖所示

本文由yidianzixun提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦