?

Java千萬級別數據處理與優化

2016-11-09 00:28趙珊
數字技術與應用 2016年9期
關鍵詞:處理技術大數據

趙珊

摘要:伴隨著云計算、物聯網等新興技術的不斷發展,數據量呈現幾何式的增長,海量龐大的數據出現標志著大數據時代的來臨。從海量的數據資源中提取有價值的信息并反饋給用戶是數據處理面臨的主要研究方向。本文主要探討Java這門經典的編程語言在當前的數據環境下,如何實現對大數據的加工及優化處理,來實現數字資產的保值增值。

關鍵詞:Java 大數據 處理技術

中圖分類號:TP315.1 文獻標識碼:A 文章編號:1007-9416(2016)09-0239-01

1 Java處理數據時的交互方式

大數據本身就是傳統意義上的數據的幾何級表現形式。大數據技術意義在于對這些有價值的數據進行專業化處理,通過“加工”實現數據的“增值”。大數據處理的一個關鍵環節就是數據處理引擎如何與大數據有一個良好的連接通道。目前比較主流的數據處理引擎開發語言有Java,C#,C++等。

Java作為主流開發語言的連接數據庫方式采用JDBC,通過建立一個數據庫連接池以及一套連接使用、分配、管理策略,連接可以得到高效、安全的復用,避免了數據庫連接頻繁建立、關閉的開銷。另外,由于對JDBC中的原始連接進行了封裝,隔離了應用本身的處理邏輯和具體數據庫訪問邏輯,使應用本身的復用成為可能,提高了開發效率。

從傳統技術發展來看,一般新技術通常不會跨越太大。特別是軟件開發技術,為了不過度超前采用一種妥協的技術發展方式向下兼容。新技術大多是從傳統方式拓展延伸過來,而不是跨越式的從新研發一套全新的技術,大數據處理也遵循著這樣的一個原則。

2 大數據量下的內存管理

JVM(Java Virtual Machine,Java虛擬機)是Java的核心和基礎,在Java編譯器和OS平臺之間的虛擬處理器。它是一種基于操作系統和硬件平臺并利用軟件方法來實現的抽象的計算機,主要功能是管理分配內存和執行垃圾回收。JVM內存結構由堆、棧、本地方法棧、方法區等部分組成。

當Java一次性從數據庫加載過多的數據時,由于查詢結果的記錄首先要讀入JVM內存,大量的數據占用了內存空間,此時再為實例化對象申請空間時,便出現內存溢出的問題,即使調整內存大小,啟動程序的時候加上-Xmx1024m,將JVM可以使用調至1G內存,很多時候也不能滿足調用數據量的要求。

3 大數據量處理時的優化方案

通過對JVM使用內存的分析,結合數據調用處理的研究與實踐,得出的解決方案如下:

(1)客戶端讀取數據時,不再一次性讀入JVM內存中,采用分批查出所有數據,每次查詢得到的部分記錄使用恒定內存讀入的方法,避免內存溢出問題。

(2)將查詢出的數據在JVM內存中經過簡單加工寫入查詢結果文件,對生成的記過文件進行壓縮,目的是減小文件大小,節省帶寬,加快文件傳輸速度,然后按一定規則存入本地硬盤。

(3)獲取數據時,通過批次讀取將壓縮文件直接發給客戶端,在客戶端解開壓縮文件獲得查詢結果。

4 結語

本文通過Java語言數據處理時的原理分析,提出了大數據量數據加載的解決方案,實現了在不增加硬件開銷的前提下,由于數據量大導致的內存溢出問題,保證了數據查詢時系統的高效與穩定性。

參考文獻

[1]宋東海,賁可榮,張志祥,等.一種基于類的JAVA多線程程序數據競爭靜態檢測算法[J].《計算機工程與科學》,2014.02.

猜你喜歡
處理技術大數據
淺析城市生活污水處理技術現狀及發展趨勢
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合