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