李志欽,桑 園
(鄭州西亞斯學(xué)院,河南 新鄭 451150)
面對(duì)大數(shù)據(jù)技術(shù)的不斷發(fā)展,應(yīng)用開(kāi)發(fā)技術(shù)多種多樣,Java以其獨(dú)特的優(yōu)勢(shì)獲得一席之地。相對(duì)于其他編程語(yǔ)言,Java應(yīng)用廣泛。Java簡(jiǎn)單易學(xué),功能強(qiáng)大,大量的開(kāi)源庫(kù)簡(jiǎn)化了開(kāi)發(fā)過(guò)程。一些主流大數(shù)據(jù)開(kāi)發(fā)工具都是基于Java的,這意味著利用Java處理大數(shù)據(jù)問(wèn)題時(shí)在程序遷移、資源可用性、設(shè)備性能、安全穩(wěn)定性、成本控制等方面更具優(yōu)勢(shì)。應(yīng)加深對(duì)Java編程語(yǔ)言在大數(shù)據(jù)開(kāi)發(fā)中的研究,進(jìn)而實(shí)現(xiàn)大數(shù)據(jù)開(kāi)發(fā)效益的最大化。
Java編程語(yǔ)言是當(dāng)今最主流的編程語(yǔ)言之一。Java編程語(yǔ)言是在C語(yǔ)言和C++語(yǔ)言基礎(chǔ)上發(fā)展而來(lái)的一種編程語(yǔ)言,它在聲明變量、操作符形式、參數(shù)的傳遞、流程的控制等方面與C語(yǔ)言、C++語(yǔ)言高度相似,繼承了C++語(yǔ)言面向?qū)ο蠹夹g(shù)的核心思想,但同時(shí),Java編程語(yǔ)言在此基礎(chǔ)上進(jìn)一步完善,舍棄了C語(yǔ)言中難以理解的指針、運(yùn)算符重載、多重繼承等特性,增加了垃圾回收機(jī)制,減少程序所占的內(nèi)存。Java又引入了異常處理、泛型編程、類型安全、自動(dòng)裝拆箱等。這些改變讓Java編程語(yǔ)言容易被開(kāi)發(fā)人員熟練掌握,可以讓他們把更多的時(shí)間投入到大數(shù)據(jù)研發(fā)上。主流的大數(shù)據(jù)框架及其生態(tài)中的組件大部分都是基于Java語(yǔ)言的,因此,使用Java進(jìn)行大數(shù)據(jù)開(kāi)發(fā)具有敏捷、高效的優(yōu)勢(shì)。
Java編程語(yǔ)言是面向?qū)ο笳Z(yǔ)言,程序開(kāi)發(fā)過(guò)程符合人們?nèi)粘K季S。Java語(yǔ)法特性簡(jiǎn)潔明了,而C語(yǔ)言和C++語(yǔ)言語(yǔ)法特性復(fù)雜,初學(xué)者不容易上手,程序代碼可讀性較差,編程邏輯也較為復(fù)雜,相較而言,Java就沒(méi)有這些問(wèn)題。對(duì)開(kāi)發(fā)人員來(lái)講,在程序設(shè)計(jì)過(guò)程中,非常重要是要考慮整個(gè)程序結(jié)構(gòu)的復(fù)雜性,Java的簡(jiǎn)潔語(yǔ)法結(jié)構(gòu)可以有效地降低開(kāi)發(fā)人員在程序設(shè)計(jì)、實(shí)現(xiàn)等環(huán)節(jié)的出錯(cuò)概率,簡(jiǎn)化了程序結(jié)構(gòu),提高了開(kāi)發(fā)效率,并且易于后期維護(hù)。同時(shí),Java編程語(yǔ)言擁有大量的第三方類庫(kù),如解析HTML,如果使用C語(yǔ)言或C++語(yǔ)言這類語(yǔ)言,多半只能由開(kāi)發(fā)人員編寫(xiě)解析算法庫(kù),但如果使用Java編程語(yǔ)言就可以直接導(dǎo)入并快速進(jìn)行HTML解析。Java編程語(yǔ)言語(yǔ)法結(jié)構(gòu)的簡(jiǎn)潔性可以讓程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的大數(shù)據(jù)程序開(kāi)發(fā)。
目前,Hadoop幾乎已經(jīng)成為大數(shù)據(jù)的代名詞,Hadoop包括HDFS、MapReduce和YARN等組件,其中,HDFS是存儲(chǔ)數(shù)據(jù)的地方,MapReduce對(duì)數(shù)據(jù)進(jìn)行處理計(jì)算,YARN是體現(xiàn)Hadoop平臺(tái)概念的重要組件,有了它,大數(shù)據(jù)生態(tài)體系的其他軟件就能在Hadoop上運(yùn)行。 但是Hadoop及其組件都是基于Java編程語(yǔ)言開(kāi)發(fā)的,開(kāi)發(fā)人員學(xué)習(xí)Hadoop的首要條件是要學(xué)會(huì)Java編程語(yǔ)言。除此之外,Apache基于Java的HBase和Accumulo以及基于ElasticSearchas開(kāi)發(fā)的Hive,、Flink等很多大數(shù)據(jù)開(kāi)源項(xiàng)目也都是使用Java編程語(yǔ)言來(lái)開(kāi)發(fā)。開(kāi)發(fā)人員在學(xué)習(xí)大數(shù)據(jù)組件時(shí),必定要對(duì)相關(guān)組件進(jìn)行深入探究,這個(gè)過(guò)程中要翻閱項(xiàng)目的源代碼,這需要學(xué)習(xí)者的Java基礎(chǔ),反之,如果大數(shù)據(jù)組件采用的是非常冷門(mén)編程語(yǔ)言開(kāi)發(fā)的,那么很多學(xué)習(xí)者在看源碼時(shí),還需學(xué)習(xí)其他相關(guān)知識(shí),這必然要花費(fèi)大量時(shí)間和精力,所以,將Java編程語(yǔ)言作為大數(shù)據(jù)開(kāi)發(fā)基礎(chǔ)語(yǔ)言是必要的。
對(duì)于任意一個(gè)編程語(yǔ)言,它若可以跨平臺(tái)運(yùn)行或遷移,那么將顯著降低開(kāi)發(fā)人員的工作量。C語(yǔ)言的跨平臺(tái)性不及Java,它是編譯執(zhí)行的,編譯器與平臺(tái)相關(guān),編譯生成的可執(zhí)行文件與平臺(tái)相關(guān)。C++語(yǔ)言也有上述特性,它主要在Windows系統(tǒng)上使用,跨平臺(tái)移植也較為復(fù)雜。Java編程語(yǔ)言是解釋執(zhí)行的,只要運(yùn)行Java應(yīng)用程序的操作系統(tǒng)上具備Java虛擬機(jī)JVM(Java Virtual Machine)即可,由JVM來(lái)負(fù)責(zé)Java程序在該系統(tǒng)中的運(yùn)行,這樣Java編程語(yǔ)言就可以跨平臺(tái)運(yùn)行。目前,大數(shù)據(jù)及其相關(guān)軟件運(yùn)行平臺(tái)復(fù)雜,不僅僅是在單一的操作系統(tǒng)上運(yùn)行,Java程序的跨平臺(tái)特性可以提高大數(shù)據(jù)開(kāi)發(fā)的效率,同時(shí)有利于大數(shù)據(jù)應(yīng)用系統(tǒng)安全穩(wěn)定的運(yùn)行和后期維護(hù)工作的開(kāi)展。
在社會(huì)生產(chǎn)過(guò)程中,大數(shù)據(jù)的影響無(wú)處不在。由于大量Java人才的支持,使得大數(shù)據(jù)應(yīng)用越來(lái)越廣泛,行業(yè)應(yīng)用門(mén)檻也越來(lái)越低,如電子商務(wù)領(lǐng)域,它們最早利用大數(shù)據(jù)進(jìn)行精準(zhǔn)營(yíng)銷,再如醫(yī)療行業(yè),以前醫(yī)生診斷時(shí)會(huì)發(fā)現(xiàn)缺乏相關(guān)病例或治療經(jīng)驗(yàn),對(duì)疾病的定性和確定治療方案是困難的,現(xiàn)在可以借助大數(shù)據(jù)平臺(tái)廣泛收集病例和治療方案,從而實(shí)現(xiàn)智慧醫(yī)療。大數(shù)據(jù)的廣泛應(yīng)用也提升了Java編程語(yǔ)言在大數(shù)據(jù)開(kāi)發(fā)中的地位。
目前,市面上流行的大數(shù)據(jù)開(kāi)源框架和組件大部分都使用Java編程語(yǔ)言開(kāi)發(fā),例如,Elasticsearch(為云構(gòu)建的分布式RESTful搜索引擎),EHCache(開(kāi)源分布式緩存),Hadoop(開(kāi)源分布式存儲(chǔ),并對(duì)非常大的數(shù)據(jù)集進(jìn)行分布式處理),Solr(開(kāi)源企業(yè)搜索平臺(tái)),Neo4j(開(kāi)源圖形數(shù)據(jù)庫(kù))等等?,F(xiàn)在的大數(shù)據(jù)開(kāi)發(fā)是建立在Java編程語(yǔ)言的基礎(chǔ)之上的。
隨著5G技術(shù)的成熟,大數(shù)據(jù)技術(shù)得到了進(jìn)一步的發(fā)展,人們生活的方方面面都受到了大數(shù)據(jù)的影響,但大數(shù)據(jù)的開(kāi)發(fā)和深度應(yīng)用離不開(kāi)Java編程語(yǔ)言。Java是一種成熟的編程語(yǔ)言,它優(yōu)異的跨平臺(tái)性與大數(shù)據(jù)復(fù)雜運(yùn)行平臺(tái)相得益彰,同時(shí)還具備簡(jiǎn)單、面向?qū)ο?、分布式、健壯性、安全性、結(jié)構(gòu)中立、解釋性、開(kāi)源、多線程、動(dòng)態(tài)性等眾多優(yōu)點(diǎn),使得Java與大數(shù)據(jù)技術(shù)相互促進(jìn)、和諧發(fā)展。
近年來(lái),信息技術(shù)的不斷進(jìn)步,為大數(shù)據(jù)技術(shù)的應(yīng)用市場(chǎng)提供了廣闊的發(fā)展空間,就目前大數(shù)據(jù)應(yīng)用開(kāi)發(fā)技術(shù)而言,大數(shù)據(jù)技術(shù)與Java語(yǔ)言的結(jié)合共同構(gòu)成了大數(shù)據(jù)應(yīng)用的高效開(kāi)發(fā)模式。
Java語(yǔ)言是當(dāng)今最主流的開(kāi)發(fā)語(yǔ)言之一,作為成熟的編程語(yǔ)言和我國(guó)豐富的Java人才庫(kù),Java在大數(shù)據(jù)應(yīng)用領(lǐng)域?qū)⒗^續(xù)綻放光彩。