大數(shù)據(jù)開發(fā)相關(guān)術(shù)語解析
Java['dʒɑːvə]
當(dāng)前軟件開發(fā)行業(yè)應(yīng)用最廣、就業(yè)量***的編程語言,在各類編程語言排行榜長期位列***。是企業(yè)軟件開發(fā)的***語言,也是Android系統(tǒng)的開發(fā)語言。
Java吸取了C++語言的眾多優(yōu)點(diǎn),是極好的面向?qū)ο缶幊陶Z言,程序員可以很優(yōu)雅的思維方式編寫強(qiáng)大負(fù)責(zé)的軟件程序。
Maven['mevn]
一種項(xiàng)目對象模型,可以通過一小段描述信息來管理項(xiàng)目的各種依賴之間的關(guān)系,是一個(gè)項(xiàng)目管理工具軟件。
Git[ɡɪt]/SVN
Git是一個(gè)開源的分布式版本控制系統(tǒng),可以有效、高速地實(shí)現(xiàn)從很小到非常大的項(xiàng)目版本管理。Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個(gè)開放源碼的版本控制軟件。
Svn功能與Git類似,但Git應(yīng)用更廣泛。
JSP/Servlet['sɜvlet]
JSP全名為Java Server Pages,中文名叫java服務(wù)器頁面,它可以在web頁面的html文件中利用JSP標(biāo)記插入Java程序代碼,變成.jsp文件。用JSP開發(fā)的Web應(yīng)用是跨平臺的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
Java Servlet是JSP的技術(shù)基礎(chǔ),大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。
Spring[sprɪŋ]
一個(gè)Java的服務(wù)端程序開發(fā)框架,它使開發(fā)邏輯和業(yè)務(wù)邏輯更加清晰,利用這個(gè)框架可以開發(fā)各類企業(yè)級服務(wù)端程序。
SpringMVC
基于Spring之上,遵循MVC(模型-視圖-控制器)設(shè)計(jì)原則的前端web開發(fā)框架,它是基于Servlet技術(shù)實(shí)現(xiàn)的。
SprintBoot/SpringCloud
比SpringMVC更加簡單,更加專注于后端微服務(wù)開發(fā)的后端框架。
SpringCloud是全局微服務(wù)的整合與管理,可以看做是對多個(gè)SpringBoot微服務(wù)的管理。
微服務(wù)就是一小組服務(wù)功能集合。中大型軟件功能眾多,往往需要拆分成很多小功能模塊進(jìn)行開發(fā),每個(gè)小模塊可以單獨(dú)運(yùn)行,就叫做微服務(wù)。
JDBC/MyBatis[mai'beitis]
JDBC,Java DataBase Connectivity即Java和數(shù)據(jù)庫的連通工具。通過這個(gè)標(biāo)準(zhǔn)可以方便的控制和操作數(shù)據(jù)庫。
MyBatis也是一個(gè)用來操作數(shù)據(jù)庫的數(shù)據(jù)持久層框架,但它比JDBC更簡單更好用,行業(yè)應(yīng)用也越來越廣泛。
SSM (SSM 框架集)
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個(gè)開源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。常作為數(shù)據(jù)源較簡單的web項(xiàng)目的框架。
JavaScript['dʒɑvə,skrɪpt]
網(wǎng)頁編程腳本語言,主要用來實(shí)現(xiàn)網(wǎng)頁動(dòng)態(tài)效果和各種功能和業(yè)務(wù)邏輯。JavaScript是開發(fā)者使用最廣泛的語音,沒有之一。JavaScript和Java的關(guān)系類似雷鋒和雷鋒塔的關(guān)系,半毛錢都沒。Java學(xué)不好對于JavaScript沒有任何影響。
Html5
HyperText Markup Language,網(wǎng)頁開發(fā)最主要的編程語言,簡單好學(xué)功能強(qiáng)大。Html5是***版本,2014年發(fā)布。
CSS3
Cascading Style Sheets,層疊樣式表,用來給網(wǎng)頁元素設(shè)定各種樣式,美化頁面。CSS3是***版本,2001年制定。
jQuery[dʒe'kwɪərɪ]
Javascript的一個(gè)框架,就是別人把很多網(wǎng)頁常用功能寫好了打包在一起成為jQuery給大家用。jQuery能夠操作頁面制作動(dòng)畫,以及更多厲害的功能。jQuery曾經(jīng)是網(wǎng)頁開發(fā)的必選工具,但近幾年隨著Vue、react、angular的興起,jQuery已經(jīng)不那么流行了。
Bootstrap['bʊt'stræp]
JS框架,提供了很多現(xiàn)成的網(wǎng)頁元素,可以很快讓網(wǎng)頁變得美觀大方。
MySQL[mai'si:kjuːel]
SQL,結(jié)構(gòu)性查詢語言Structured Query Language,Mysql目前行業(yè)最常用的關(guān)系型數(shù)據(jù)庫,用來存儲(chǔ)各種數(shù)據(jù),可以很方便的查詢搜索。
結(jié)構(gòu)性數(shù)據(jù)一般是指類似Excel表格的數(shù)據(jù)。
NoSQL/Redis[re'dis]/MongoDB['mɒŋgəʊ'di'bi]
NoSQL是非關(guān)系型數(shù)據(jù)庫,和MySQL不同。非關(guān)系型數(shù)據(jù)庫在互聯(lián)網(wǎng)時(shí)代尤其是大數(shù)據(jù)云計(jì)算時(shí)代越來越重要,可以應(yīng)對更多樣的數(shù)據(jù)存儲(chǔ)需要。最常見的非關(guān)系型數(shù)據(jù)庫有Redis、MongoDB和Memcache。同時(shí)這些數(shù)據(jù)庫也經(jīng)常被用來大幅度提高后端軟件的運(yùn)行效率。很好的結(jié)合各種數(shù)據(jù)庫使用,可以使軟件程序性能提高成百上千倍。
數(shù)據(jù)可視化
數(shù)據(jù)可視化,是關(guān)于數(shù)據(jù)視覺表現(xiàn)形式的科學(xué)技術(shù)研究,即如何用圖表來展示復(fù)雜的數(shù)據(jù)關(guān)系和數(shù)據(jù)結(jié)構(gòu),通過表達(dá)、建模以及動(dòng)畫的顯示,對數(shù)據(jù)加以可視化解釋。
數(shù)據(jù)可視化技術(shù)已經(jīng)成為大數(shù)據(jù)技術(shù)的重要組成部分,優(yōu)秀的圖表和數(shù)據(jù)關(guān)系可以為開發(fā)者、項(xiàng)目管理者和企業(yè)高層提供決策輔助支持。
Nginx[n'dʒeninks]/Apache[əˈpætʃɪ] /Tomcat['tɑmkæt]
這三個(gè)都是常用的網(wǎng)絡(luò)服務(wù)器軟件,為網(wǎng)站提供http服務(wù),讓用戶能夠訪問到服務(wù)器上的網(wǎng)頁文件。目前Nginx使用最為廣泛,其他兩個(gè)的使用在逐漸下降。
Hadoop[ha'du:p]
Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。
分布式系統(tǒng)是指運(yùn)行在網(wǎng)絡(luò)上臺計(jì)算機(jī)之上的軟件和系統(tǒng),與我們熟悉的windows只運(yùn)行在單個(gè)計(jì)算機(jī)上不同。
HDFS/MapReduce[mæp rɪ'dʊs]
Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),而MapReduce則為海量的數(shù)據(jù)提供了計(jì)算。
Linux[ˈlɪnəks]/Unix['jʊnɪks]
Unix,初名UNiplexed Information and Computing Service,誕生于1970年貝爾實(shí)驗(yàn)室,是一個(gè)強(qiáng)大的操作系統(tǒng)。類Unix系統(tǒng)是指類似Unix的系統(tǒng),包括我們熟悉的Android、iOS、蘋果電腦系統(tǒng)MacOS、Ubuntu等都是類Unix系統(tǒng)。Android就是基于Linux的。常見的Linux有用于普通電腦的Ubuntu和適合做服務(wù)器的CentOS。
HDFS
Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計(jì)成適合運(yùn)行在通用硬件上的分布式文件系統(tǒng)。它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。
MapReduce[mæp rɪ'dʊs]
MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。它極大地方便了編程人員在不會(huì)分布式并行編程的情況下,將自己的程序運(yùn)行在分布式系統(tǒng)上。
并行運(yùn)算指一次執(zhí)行多個(gè)指令的算法,經(jīng)常是指在分布式系統(tǒng)上多臺計(jì)算機(jī)多個(gè)CPU同時(shí)并發(fā)執(zhí)行計(jì)算。
Hive[haɪv]
Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,可以通過類SQL語句快速實(shí)現(xiàn)簡單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析。
HBase[eɪtʃ beɪs]
HBase是一個(gè)分布式的開源數(shù)據(jù)庫。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫。
結(jié)構(gòu)化數(shù)據(jù)一般是指類似Excel表這樣的結(jié)構(gòu),比如word文檔、圖片、視頻就是非結(jié)構(gòu)的。
Storm[stɔːm]
Storm用于在分布式系統(tǒng)上實(shí)現(xiàn)實(shí)時(shí)處理消息并更新數(shù)據(jù)庫,也可以用于對數(shù)據(jù)流做連續(xù)查詢,一邊計(jì)算,一遍把結(jié)果輸出給用戶。
Hadoop主要是處理一批數(shù)據(jù),對時(shí)效性要求不高,需要處理就提交一個(gè)工作任務(wù),而Storm時(shí)效性更高,比如實(shí)時(shí)錄音錄像、數(shù)據(jù)更新等。
Storm核心組件
Storm核心組件有主節(jié)點(diǎn)、從節(jié)點(diǎn)、進(jìn)程、線程、協(xié)調(diào)服務(wù)等。
數(shù)據(jù)流模型
指大數(shù)據(jù)開發(fā)技術(shù)中數(shù)據(jù)流處理相關(guān)的規(guī)范和設(shè)計(jì)模式。
Scala[ˈskɑːlə]
Scala是一門多范式的編程語言,一種類似java的編程語言,運(yùn)行在Java環(huán)境之上,和Java互聯(lián)互通,集多種語言優(yōu)勢于一身。
Scala是大數(shù)據(jù)技術(shù)的常用語言之一,主要用于Spark相關(guān)開發(fā)。
Spark[spɑːk]
Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是,Spark更加快速,能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。
Spark Core[kɔr]
Spark核心技術(shù),基于彈性分布式數(shù)據(jù)庫RDD技術(shù),這是Spark數(shù)據(jù)讀取、變換、輸出的關(guān)鍵。
Spark SQL
Spark SQL是Spark用于處理結(jié)構(gòu)化數(shù)據(jù)的模塊,能夠適應(yīng)SQL語句操作數(shù)據(jù)庫。
Spark Streaming['striːmɪŋ]
Spark Streaming是用來接收和處理數(shù)據(jù)流的工具,可以對數(shù)據(jù)流進(jìn)行計(jì)算。
Spark MLlib[em ɛl lɪb]
MLlib,機(jī)器學(xué)習(xí)庫Machine Learnig lib,是Spark對常用的機(jī)器學(xué)習(xí)算法的實(shí)現(xiàn)庫,同時(shí)包括相關(guān)的測試和數(shù)據(jù)生成器。Spark的設(shè)計(jì)初衷就符合很多機(jī)器學(xué)習(xí)算法的特點(diǎn)。