趙珊
摘要:伴隨著云計算、物聯(lián)網等新興技術的不斷發(fā)展,數(shù)據量呈現(xiàn)幾何式的增長,海量龐大的數(shù)據出現(xiàn)標志著大數(shù)據時代的來臨。從海量的數(shù)據資源中提取有價值的信息并反饋給用戶是數(shù)據處理面臨的主要研究方向。本文主要探討Java這門經典的編程語言在當前的數(shù)據環(huán)境下,如何實現(xiàn)對大數(shù)據的加工及優(yōu)化處理,來實現(xiàn)數(shù)字資產的保值增值。
關鍵詞:Java 大數(shù)據 處理技術
中圖分類號:TP315.1 文獻標識碼:A 文章編號:1007-9416(2016)09-0239-01
1 Java處理數(shù)據時的交互方式
大數(shù)據本身就是傳統(tǒng)意義上的數(shù)據的幾何級表現(xiàn)形式。大數(shù)據技術意義在于對這些有價值的數(shù)據進行專業(yè)化處理,通過“加工”實現(xiàn)數(shù)據的“增值”。大數(shù)據處理的一個關鍵環(huán)節(jié)就是數(shù)據處理引擎如何與大數(shù)據有一個良好的連接通道。目前比較主流的數(shù)據處理引擎開發(fā)語言有Java,C#,C++等。
Java作為主流開發(fā)語言的連接數(shù)據庫方式采用JDBC,通過建立一個數(shù)據庫連接池以及一套連接使用、分配、管理策略,連接可以得到高效、安全的復用,避免了數(shù)據庫連接頻繁建立、關閉的開銷。另外,由于對JDBC中的原始連接進行了封裝,隔離了應用本身的處理邏輯和具體數(shù)據庫訪問邏輯,使應用本身的復用成為可能,提高了開發(fā)效率。
從傳統(tǒng)技術發(fā)展來看,一般新技術通常不會跨越太大。特別是軟件開發(fā)技術,為了不過度超前采用一種妥協(xié)的技術發(fā)展方式向下兼容。新技術大多是從傳統(tǒng)方式拓展延伸過來,而不是跨越式的從新研發(fā)一套全新的技術,大數(shù)據處理也遵循著這樣的一個原則。
2 大數(shù)據量下的內存管理
JVM(Java Virtual Machine,Java虛擬機)是Java的核心和基礎,在Java編譯器和OS平臺之間的虛擬處理器。它是一種基于操作系統(tǒng)和硬件平臺并利用軟件方法來實現(xiàn)的抽象的計算機,主要功能是管理分配內存和執(zhí)行垃圾回收。JVM內存結構由堆、棧、本地方法棧、方法區(qū)等部分組成。
當Java一次性從數(shù)據庫加載過多的數(shù)據時,由于查詢結果的記錄首先要讀入JVM內存,大量的數(shù)據占用了內存空間,此時再為實例化對象申請空間時,便出現(xiàn)內存溢出的問題,即使調整內存大小,啟動程序的時候加上-Xmx1024m,將JVM可以使用調至1G內存,很多時候也不能滿足調用數(shù)據量的要求。
3 大數(shù)據量處理時的優(yōu)化方案
通過對JVM使用內存的分析,結合數(shù)據調用處理的研究與實踐,得出的解決方案如下:
(1)客戶端讀取數(shù)據時,不再一次性讀入JVM內存中,采用分批查出所有數(shù)據,每次查詢得到的部分記錄使用恒定內存讀入的方法,避免內存溢出問題。
(2)將查詢出的數(shù)據在JVM內存中經過簡單加工寫入查詢結果文件,對生成的記過文件進行壓縮,目的是減小文件大小,節(jié)省帶寬,加快文件傳輸速度,然后按一定規(guī)則存入本地硬盤。
(3)獲取數(shù)據時,通過批次讀取將壓縮文件直接發(fā)給客戶端,在客戶端解開壓縮文件獲得查詢結果。
4 結語
本文通過Java語言數(shù)據處理時的原理分析,提出了大數(shù)據量數(shù)據加載的解決方案,實現(xiàn)了在不增加硬件開銷的前提下,由于數(shù)據量大導致的內存溢出問題,保證了數(shù)據查詢時系統(tǒng)的高效與穩(wěn)定性。
參考文獻
[1]宋東海,賁可榮,張志祥,等.一種基于類的JAVA多線程程序數(shù)據競爭靜態(tài)檢測算法[J].《計算機工程與科學》,2014.02.