電子商務(wù)網(wǎng)站建設(shè)和管理的含義百度競價(jià)登陸
文章目錄
- 1.6編程語言的選擇
- 1.6.1java和Scala
- 1.6.2Python
- 1.6.3SQL
1.6編程語言的選擇
大數(shù)據(jù)編程一般會使用Java、Scala和python等編程語言,Flink目前也支持上述3種語言。
1.6.1java和Scala
Java支持多線程,其生態(tài)圈中可用的第三方庫眾多。Java虛擬機(jī)(Java Virtval Machine,JVM)保證了程序的可移植性,可以快速部署到不同計(jì)算機(jī)上,是很多分布式系統(tǒng)首選的編程語言,比如Hadoop和Flink的絕大多數(shù)代碼都是用Java編寫的,這些框架提供了豐富的文檔,網(wǎng)絡(luò)社區(qū)的支持。
Scala是一門基于JVM的編程語言。Scala的特色是函數(shù)式編程。在并行計(jì)算方面,Scala支持Actor模型,Actor模型是一種更為先進(jìn)的并行計(jì)算編程模型,很多大數(shù)據(jù)框架都基于Actor模型。Spark、Flink和Kafka都是基于Actor模型的大數(shù)據(jù)框架。Scala可以直接調(diào)用Java的代碼,相比Java,Scala代碼更為簡潔和緊湊。
1.6.2Python
Python有大量第三方庫,支持Web、科學(xué)計(jì)算和機(jī)器學(xué)習(xí),被廣泛應(yīng)用到人工智能領(lǐng)域。大數(shù)據(jù)生態(tài)圈的各項(xiàng)技術(shù)對Python支持力度也很大,Hadoop、Spark、Kafka、HBase等技術(shù)都有Python版本的API。Flink的Python API名為PyFlink,相比于Java和Scala還不夠完善,且PyFlink在不斷迭代、完善。
1.6.3SQL
SQL并不是一種全能的編程語言,而是一種在數(shù)據(jù)庫上對數(shù)據(jù)進(jìn)行操作的語言。Flink把面向結(jié)構(gòu)化查詢的需求封裝成了表(Table),對外提供Table API和SQL的調(diào)用接口,提供了非常成熟的SQL支持。