大數據開發相關術語解析
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的設計初衷就符合很多機器學習算法的特點。