









摘要:社會進步離不開新聞傳播,新聞的傳播和共享是提高人類素質的重要方法。為改善新聞的服務水平,采用云計算的先進理念和先進技術,設計了一個新聞云原型平臺,為新聞行業提供服務。該平臺引入Hadoop作為新聞數據的存儲核心,使用Hive數據庫解決數據轉換和查找,能夠完成海量數據的檢索。對設計的方案進行了部分測試,達到了設計要求。
關鍵詞:Hadoop;Hive;云計算;新聞
中圖分類號:G127;TP311 文獻標識碼:A 文章編號:1673-8268(2014)04-0115-06
云計算為Internet用戶提供了一種數據管理方式,用戶通過云計算能夠存儲和保護數據。基于云計算的云平臺技術,能夠將混雜紛亂的大量城市信息作為數據進行分析并存儲,以達成構建“和諧城市”的目標。重慶市由此推出的“城市云”概念,是城市IT設施中最重要的組成部分,它使建設“數字宜居城市”成為可能。同時,城市云也為城市的公共設施服務建設以及可持續發展提供了可靠保障。構建基于云計算的新聞媒體交互式平臺是促進城市云建設的重點之一。
云計算是一種商業應用,該服務具有超大規模、虛擬化、高可靠性、高可擴展性、通用性等特點。云計算的應用數據和IT資源通過網絡提供給用戶使用,其用戶非常廣泛,如企業政府、學術機構、個人等。它是按量計費的商業模型,擁有簡化的服務接口。代表性的云計算系統包括IBM、微軟、亞馬遜等。
一、新聞云建設目標
目前,在各個新聞中心的IT基礎架構中,應用系統下的不同層面使用獨立的服務器,即分散式架構。也就是說,計算、OS、中間件、數據庫、Web、ftp、域控制器等層面之間相互獨立。此外,在現有的基礎之上,將來需逐步擴展其他應用,比如綜合分析等,以便構造出更加完善的基礎架構。利用云計算的先進理念和先進技術,建立起一個為新聞行業提供基礎設施服務、應用平臺級服務和應用軟件級服務的公用信息網絡平臺,實現管理媒體部門用戶8 000家、重點個人用戶100萬個,建立文字、攝影、音樂、音像、影視等新聞媒體庫,實現大數量級媒體信息交互的目標。
二、新聞云架構
新聞云平臺包括基礎設施、管理平臺、虛擬化、新聞應用四個子平臺(見圖1)。
基礎設施平臺主要包括計算、存儲、網絡等設備,是云平臺的硬件支持系統。通過對基礎設施平臺的擴展,可進一步提高平臺承載能力,同時支持網絡熱備、負載均衡、異構系統集成等關鍵技術研究。
虛擬化平臺主要通過虛擬化技術屏蔽底層的硬件差異,實現對計算和存儲、網絡和軟件、數據和用戶等資源的高效部署和管理,為用戶使用提供穩定、良好的運行環境。通過虛擬化平臺的建設,將進一步提高平臺的整體運維能力,同時支持虛擬化、并行計算、分布式存儲等關鍵技術的研究。
云計算管理平臺實現對所有資源的集中管理、監控和調度,同時提供完整的用戶計算資源申請、審批、調配的服務流程管理。
云平臺通過虛擬機方式提供新聞瀏覽、查詢、收藏、訂閱和信息門戶等服務。
三、新聞云服務
云端服務為客戶端提供各種應用服務,能夠充分和多樣化地滿足用戶的需求,該應用服務包含瀏覽、查詢、收藏和訂閱四個選項標簽(見圖2)。
(一)瀏覽
用戶在登陸云端的虛擬平臺之后可以按照自己的意愿和愛好來實時瀏覽和閱讀新聞事件。閱讀內容包含摘要、重大新聞、熱圖、視頻、頭條、音頻和報種等。
(1)報種:用戶可以隨意閱讀諸如《重慶日報》、《重慶晚報》、《重慶晨報》等不同的報紙;
(2)摘要:用戶選擇摘要瀏覽,目錄服務器返回摘要列表,以供用戶選擇自己實際想要的摘要作為閱讀內容;
(3)重大新聞:用戶申請重大新聞瀏覽服務,目錄服務器會返回帶有星級標識的重大新聞列表,重大新聞標識可由一星到五星分別用來表示新聞的重要性;
(4)熱圖:根據用戶的請求,服務器返回與用戶輸入的關鍵詞有關的并且是當下搜索最為頻繁的圖片,由于所有的圖片并非一定是用戶實際搜索想要的,也考慮到服務器的響應速度和負載,所以此時返回縮略圖,用戶可以選擇自己感興趣的圖片進而看到原圖;
(5)視頻:根據用戶的請求,服務器返回用戶搜索的視頻列表,有兩種類型以供用戶選擇:普通畫質和高清畫質;
(6)音頻:根據用戶的請求,服務器返回按照用戶輸入的關鍵詞排序的音頻列表,有兩種類型以供用戶選擇:普通音質和高音質;
(7)頭條:根據用戶輸入的關鍵詞,服務器將對新聞列表進行排序,隨后返回對應的頭條新聞列表。
(二)查詢
除了實時閱讀之外,用戶還可以按照自己感興趣的內容進行選擇性查看。用戶可以按照八個關鍵詞形成的三種模式進行查詢。三種模式為資源列表、形成文檔和聯合模式。八個關鍵詞分別是時間、地點、人物、事件、類型、摘要、標簽和連接符。
(1)時間:用戶可以按照事件發生的時間進行搜索;
(2)地點:用戶可以按照事件發生的地點查詢;
(3)人物:事件中涉及的主要人物;
(4)事件:事件的總體概括;
(5)類型:用戶搜索的新聞媒體類型;
(6)摘要:用戶可以按照自己的需要查詢摘要中的有關信息;
(7)標簽:用戶查詢時可以使用標簽作為查詢關鍵詞,標簽有五種,分別對應不同的重要等級的新聞;
(8)連接符:連接同一新聞事件中不同新聞媒體的符號,允許用戶搜索與當前查看內容為同一新聞事件的不同媒體類型。
(三)收藏
根據不同用戶的需要,云服務向用戶提供收藏服務。在該服務中,允許用戶收藏前次瀏覽或者查詢過程中標記過的書簽和關鍵字,同時,系統會自動保存用戶的瀏覽習慣,并借此自動設置用戶的偏好。
(四)訂閱
可以根據用戶的不同需求,提供不同的訂閱服務。訂閱服務有三種類型:訂閱摘要、訂閱詳細內容和自定義訂閱。
四、數據分析處理及存儲
當需要處理的數據來到數據處理中心,需要對其進行三個步驟的處理(見圖3)。首先,對數據進行預處理;其次,對數據所包含的同質以及異質新聞進行處理;最后,建立索引表并分配給服務器存儲。
(一)預處理
在數據的預處理過程中,首先對數據進行格式標準化。所謂格式標準化就是將各種格式的數據轉換為標準格式;然后再搜索敏感關鍵字,對于多次出現敏感關鍵字的新聞數據進行清理,刪除錯誤的、負面的、不科學和不真實的數據。
(二)同質新聞事件和異質新聞事件的處理
對數據是否為同一新聞事件進行判斷并處理,其過程如下:首先將預處理完成的數據進行內容比對,設定相異閾值M,內容相似度低于M的,則判定數據不是同一事件,然后對其建立索引并分布存儲;設定相容閾值N,若不同數據之間相似度高于N,則判定數據重復,刪除其中一個,只保留另外一個,將所有數據進行判定之后,進入下一步,建立索引。
(三)建立索引并分布存儲
為上一步處理的所有數據建立索引,將所有數據的索引形成索引表存放在目錄服務器中,用戶向目錄服務器遞交服務申請,由目錄服務器負責返回服務申請和數據地址映射。數據索引以特征字符串的形式組織和排序,在目錄服務器形成索引表。特征字符串(其中數字為特征項長度,沒有單位標識的,默認單位為字節)的格式如圖4所示。
特征字符串格式說明:在字符串中,每個字符都有每個字符的含義,具體內容如下:
(1)時間:長度為8字節,格式為:yyyymmdd,年份4位,月份2位,日期2位;
(2)地點:長度為20字節,每2個字節為一個漢字,若地點字數不足10字,則剩余字節加注結束標志;
(3)人物:長度為10字節,每2個字節為一個漢字,若姓名字數不足5字,則剩余字節加注結束標志;
4)事件:長度為20字節,每2個字節為一個漢字,若事件字數不足10字,則剩余字節加注結束標志;
(5)摘要頭:長度為1位,若為0則表示此項不是摘要頭,為1則表示是摘要頭;
(6)正文頭:長度為1位,若為0則表示此項不是正文頭,為1則表示是正文頭,摘要頭和正文頭不能相同;
(7)連接符:長度為4字節,連接符表示是否有數據與當前數據關系相連(即陳述的是同一新聞事件),相同新聞事件的不同媒體之間的連接符相同;
(8)標簽:表示當前新聞事件的重要程度,分為5個等級;
(9)校驗位:長度為1位,用以校驗特征字符串。
將所有條目的特征字符串整合、排序并映射到主機地址和存儲路徑,形成索引表,存放在目錄服務器,以便管理和用戶查詢(見表1)。
五、文件存儲格式
考慮到新聞媒體的多樣化,對各種媒體確定唯一存儲格式并作為標準格式,以便于存儲和管理維護,如圖5所示。
(一)視頻
為了便于用戶觀看,保證視頻資源的流暢,采用后綴為flv的流媒體格式。為了滿足不同用戶的需求,視頻分為一般畫質和高清畫質。
(二)音頻
為了方便用戶,同時考慮到存儲空間的大小,采用后綴為mp3的壓縮格式,分為一般音質和高音質。
(三)圖片
在所有圖片格式中,jpg格式圖片在同等畫質下壓縮比更高、體積更小,便于網絡傳輸,其廣泛支持Internet標準的特性也使得它脫穎而出。
(四)文本
文本包括摘要、正文、頭條和評論等內容。因為在用戶界面會有格式描述符,所以在存儲時就沒有必要加入更多的格式,所以采用tXt格式的記事本文件可以最大限度地節約空間和加快傳輸速度。
六、系統測試
(一)新聞云手機客戶端測試
該新聞客戶端是用Android編寫的一個可以與云端進行數據交互、提供實時更新新聞的一個新聞客戶端。客戶端跟服務器的通信主要是依據Http協議,它詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,通過因特網傳送萬維網文檔的數據傳送協議。本新聞客戶端引用A-pache公司提供的用于客戶端與服務器通信的Ht-tp封裝包。所使用的Android控件主要有Aetivi。ty,ListView,Button,EditView等。UI設計工具使用了Photoshop、Droiddraw等工具。手機客戶端構架如圖6所示。
Http定義了與服務器交互的不同方法,最基本的方法有四種,分別是get,post,put和delete。URL全稱是資源描述符,我們可以這樣認為:一個URL地址,它用于描述一個網絡上的資源,而Http中的get,post,put,delete就對應著這個資源的查、改、增、刪四個操作。本客戶端使用了HttpGet和HttpPost兩種和服務器通信的方法。HttpGet用于客戶端不需要向服務器傳送數據,而是直接取得服務器端的數據,比如說打開新聞客戶端軟件,服務器直接把最近的熱點新聞推送到客戶端。Http.Post用于客戶端向服務器提交數據,服務器接受并根據客戶端提交的數據返回相應數據到客戶端。數據編碼統一采用GBK編碼。
服務器是用的虛擬在Pc機上的Apache服務器,客戶端每一個種類的新聞請求對應在服務器上就有一個被發布的Servlet。服務器從數據庫取到相應的數據后把數據拼湊成類似Json格式,通過HttpServle類的方法把數據以字符串的格式傳輸到客戶端。客戶端在接收到服務器傳輸過來的字符串后,通過生成JsonO bjeet數據的方法把字符串轉換為Json格式的數據。Json格式數據如下所示:{“title”:張無忌,“time”:2014-03-27,“con—tent”:譴責昆明暴力事件實施者},客戶端通過取得title,time,content三個標簽就可以獲得它們所對應的數據。
基于對項目優化的考慮,本新聞客戶端的所有圖片均使用外鏈圖片,服務器只需傳送圖片的URL到客戶端,客戶端根據URL通過Http協議從網絡上下載圖片,首先以字節的形式保存在數組中,然后通過BitmapFactory的DecodeByteArray方法將字節數據轉換為Bitmap格式的數據,Bitmap格式的數據可以直接以圖片的方式顯示在An—droid界面上。
UI設計小組把新聞客戶端的背景圖片完全設計好后,主界面使用TextView顯示導航,導航可包括娛樂、汽車、女性、政治、財經、房產、游戲、科技和軍事等內容。由于手機屏幕的限制,本客戶端使用HorizontalScrollView類實現可左右滑動導航,使用ListView顯示新聞,ButtonView實現屏幕下方的各個按鈕等。其主界面如圖7所示。
點擊新聞列表中的某一條新聞,就可顯示該新聞的詳細內容。在主界面點擊放大鏡樣式的圖標即可跳轉到搜索界面,將想要搜索的內容上傳到云端,云端將相對應的新聞返回并顯示到手機客戶端上。例如:在搜索框里輸入cloud compu—ting,然后點擊搜索,就會顯示出云端與cloud corn—puting相關的新聞。運行截圖如圖8所示。
(二)客戶機測試
使用Hadoop云計算平臺,Hadoop包括兩大核心,即分布式存儲系統和分布式計算系統。其中分布式存儲系統采用HDFS進行存儲,HDFS是Hadoop的存儲云。主節點運行文件管理進程(namenode),從節點實現文件存儲進程(datanode)。而分布式計算系統采用MapReduce進行計算。MapReduce是Hao—doop的計算云,主節點運行任務管理進程(jobtrack—er),從節點運行任務執行進程(tasktracker)。
新聞云測試平臺使用三臺PC搭建Hadoop環境,詳細內容如表2所示。
MySQL是輕量級數據庫,因為存儲空間有限,所以對大數據的處理能力十分有限,就算是Oracle等世界頂尖級數據庫公司也力不從心,Hadoop應運而生,以價格優勢以及超強的數據庫能力成為下一代數據庫解決方案。
Hive是建立在Hadoop上的數據倉庫基礎構架。Hive提供SQL解析引擎,它將SQL語句轉譯成MapReduce,然后在Hadoop上執行。Hive的表其實就是HDFS的目錄,按表名把文件夾分開。Hive將元數據存儲在數據庫中,目前只支持Mysql和Derby。
在Hive環境下建立數據庫并建表,與輕量級數據庫字段相對應。通過Java程序將Mysql表中數據導出后上傳到Hadoop的Hive數據庫指定表的目錄下,就將此表導入到了剛才建立的數據庫中,對Hive執行查詢并將結果保存到本地。這樣就將輕量級數據庫的表信息通過Hadoop處理并保存到了本地。在數據處理部分可以進行例如輿情分析、數據清洗等工作。針對傳統機器內存的限制和如今數據量不斷增大的問題,這種云架構打破了傳統的物理機瓶頸,只要增加廉價的運算節點就可以不斷提高整個Hadoop架構的處理能力。
整個瀏覽系統采用了J2EE的標準,使用了Browser/Server架構,簡化且規范了應用系統的開發與部署。前臺的頁面用Jsp完成,頁面設計用div+CSS+javascript的設計方式;后臺在Java環境下完成,使用Servlet和Javabean結構。
用戶在瀏覽器中輸出信息,提交表單,確認提交后,form表單將數據通過Http協議傳遞給Tomcat服務器中發布的Web項目,即Url中指定的Servlet。Tomcat容器將接收的表單數據交給Servlet,再由Servlet處理。Servlet調用相應的處理類驗證用戶信息,處理類操作數據庫返回驗證信息,若驗證成功Servlet將驗證查詢數據庫,并將生成的Jsp通過Ht—tp返回給客戶端瀏覽器,圖9為新聞云頁面。
七、結論
本文設計了一個基于云計算的新聞云平臺,該平臺包括基礎設施、管理平臺、虛擬化、新聞應用四個子平臺,為客戶端提供瀏覽、查詢、收藏和訂閱等基本功能服務。對新聞數據進行三個步驟的處理,即對數據進行預處理,對數據所包含的同質以及異質新聞進行處理和建立索引表,分配給服務器存儲。考慮到新聞媒體的多樣化,對各種不同媒體,確定唯一存儲格式作為標準格式,以便于存儲和管理維護。為驗證方案的有效性,搭建了基于Hadoop的云平臺,其中分布式存儲系統采用HDFS進行存儲,分布式計算系統采用MapRe—duce進行計算,使用Hive提供SQL解析引擎,將SQL語句轉譯成MapReduce,然后在Hadoop上執行,完成海量數據的檢索。同時設計了基于Pc機和Android移動終端的新聞云客戶端。