自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

小白入門大數(shù)據(jù),這一篇就夠了

大數(shù)據(jù)
大數(shù)據(jù)這個行業(yè)也是一樣,好像這個互聯(lián)網(wǎng)時代,不知道大數(shù)據(jù)就落伍了一樣,但很多一部分人也只限于了解了大數(shù)據(jù)這個詞,并加上自己想象的定義。

 大數(shù)據(jù)、人工智能( Artificial Intelligence )像當(dāng)年的石油、電力一樣, 正以前所未有的廣度和深度影響所有的行業(yè), 現(xiàn)在及未來公司的核心壁壘是數(shù)據(jù), 核心競爭力來自基于大數(shù)據(jù)的人工智能的競爭。所以不論是計算機專業(yè)的程序員,還是非計算機專業(yè)準(zhǔn)備轉(zhuǎn)行計算機的跨行人員都想學(xué)習(xí)大數(shù)據(jù),從事大數(shù)據(jù)開發(fā)工作。

[[399559]]

但是當(dāng)你站在一個行業(yè)門外的時候,你更多的是看到他的價值和前景,這會促使你義無反顧地往里沖。但當(dāng)你想要跨越這道門檻入門的時候,你開始考慮技術(shù)層面的困難,什么困難呢?那就是我對這個行業(yè)知之甚少,這個行業(yè)是否與我的想象相符?是否和我的發(fā)展方向一致?我應(yīng)該從哪里開始?應(yīng)該如何快速入門?

大數(shù)據(jù)這個行業(yè)也是一樣,好像這個互聯(lián)網(wǎng)時代,不知道大數(shù)據(jù)就落伍了一樣,但很多一部分人也只限于了解了大數(shù)據(jù)這個詞,并加上自己想象的定義。

那么大數(shù)據(jù)到底是什么?用來做什么?如何開始大數(shù)據(jù)的學(xué)習(xí)呢?今天我們從技術(shù)的角度來深入淺出聊一聊。

首先,大數(shù)據(jù)到底是什么?大數(shù)據(jù)只是一個統(tǒng)稱。廣義上,像大數(shù)據(jù)開發(fā)、大數(shù)據(jù)分析、大數(shù)據(jù)挖掘等對大數(shù)據(jù)的操作都可以統(tǒng)稱為大數(shù)據(jù)。狹義上:大數(shù)據(jù)是指在一定時間范圍內(nèi)無法用常規(guī)的軟件分析工具進(jìn)行處理的數(shù)據(jù)集。所以從定義可以看出來,大數(shù)據(jù)最原始的本質(zhì)其實就是數(shù)據(jù)集,只是數(shù)據(jù)集的規(guī)模、體量很大,大到我們無法接受使用常規(guī)軟件處理所花費的時間。

大數(shù)據(jù)用來做什么?我們已經(jīng)明確了大數(shù)據(jù)就是數(shù)據(jù)集,那么數(shù)據(jù)集用來做什么,當(dāng)然是通過對數(shù)據(jù)集進(jìn)行處理、分析,提取有用的信息用于各種業(yè)務(wù)之中。所以大數(shù)據(jù)的作用也是如此,通過提取大數(shù)據(jù)中有價值的信息,再利用這些信息進(jìn)行業(yè)務(wù)賦能,促進(jìn)智慧城市建設(shè)、企業(yè)用戶畫像、人工智能仿生、醫(yī)療疾病診斷等政、企、研、醫(yī)行業(yè)的發(fā)展,為行業(yè)領(lǐng)域帶來新的價值空間。

既然大數(shù)據(jù)有如此多的應(yīng)用場景、廣闊想象空間的發(fā)展前景,那么如何開始接觸學(xué)習(xí)大數(shù)據(jù)呢?

為了大家能夠真正明白,也為了能夠達(dá)到深入淺出的效果,我們在下面說明大數(shù)據(jù)的各種處理手段時會經(jīng)常拿常規(guī)數(shù)據(jù)和大數(shù)據(jù)來對比解釋。

首先大數(shù)據(jù)的數(shù)據(jù)屬性就決定了他的操作空間(處理流程),無外乎數(shù)據(jù)采集→數(shù)據(jù)存儲→數(shù)據(jù)計算→數(shù)據(jù)應(yīng)用。這些操作的背后幾乎涵蓋了當(dāng)前大數(shù)據(jù)行業(yè)的所有產(chǎn)業(yè)鏈。

 

小白入門大數(shù)據(jù),這一篇就夠了

 

大數(shù)據(jù)處理流程

大數(shù)據(jù)采集是大數(shù)據(jù)整個體系的起始端。我們首先需要獲取數(shù)據(jù),傳統(tǒng)數(shù)據(jù)的獲取方式,比如學(xué)生信息的獲取,我們可以采用Excel手寫輸入的方式獲取。但是在這個互聯(lián)網(wǎng)時代,動輒百萬條、千萬條數(shù)據(jù),又有各種各樣的數(shù)據(jù)源,比

如數(shù)據(jù)庫、日志、物聯(lián)網(wǎng)傳感器等等,我們不可能再通過人工或常規(guī)Excel的方式去實時獲取、匯總數(shù)據(jù),這時候就需要針對這種超過普通數(shù)據(jù)集定義的超大數(shù)據(jù)集采用專門的采集工具,來提高數(shù)據(jù)采集效率,使每秒產(chǎn)生的成千上萬數(shù)據(jù)能夠及時被采集到指定的存儲介質(zhì)上,不產(chǎn)生數(shù)據(jù)積壓,避免造成數(shù)據(jù)丟失。使用專門采集工具高效采集數(shù)據(jù)的過程就被叫做大數(shù)據(jù)采集。大數(shù)據(jù)采集,根據(jù)采集的數(shù)據(jù)源不同(數(shù)據(jù)庫、日志、物聯(lián)網(wǎng)信號...),采集的數(shù)據(jù)類型不同(結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)),會用到諸多適應(yīng)于各自場景的采集工具,比如:Flume、Sqoop、Nifi...

Flume是Cloudera提供的(后來成為Apache開源項目)一個高可用,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)墓ぞ?。主要用于采集日志類?shù)據(jù),由于Flume可以通過配置采集端采集模式(spooldir、exec)從而可以做到文件目錄內(nèi)新增文件的增量采集、文件內(nèi)新增文件內(nèi)容的增量采集。Flume還可以通過配置自定義攔截器,過濾不需要的字段,并對指定字段加密處理,將源數(shù)據(jù)進(jìn)行預(yù)處理,實現(xiàn)數(shù)據(jù)脫敏。

Sqoop是在Hadoop(后面會介紹)生態(tài)體系和RDBMS體系之間傳送數(shù)據(jù)的一種工具。最常用的還是通過Sqoop將RDBMS體系(Mysql、Oracle、DB2等)中的結(jié)構(gòu)化數(shù)據(jù)采集并存儲到Hadoop體系(HDFS、Hive、Hbase等)的數(shù)據(jù)倉庫中。

Nifi,由于Nifi可以對來自多種數(shù)據(jù)源的流數(shù)據(jù)進(jìn)行處理,因此廣泛被應(yīng)用于物聯(lián)網(wǎng)(IoAT)的數(shù)據(jù)處理。

通過上面的主流工具,我們基本上能解決99%種場景下的數(shù)據(jù)采集工作,數(shù)據(jù)采集完之后,就要面臨一個不得不考慮的問題:采集的數(shù)據(jù)存在哪里?

常規(guī)數(shù)據(jù)可以存在硬盤、存在傳統(tǒng)單機數(shù)據(jù)庫。但大數(shù)據(jù)時代呢?由于數(shù)據(jù)量爆炸式的增長,單塊硬盤或單機數(shù)據(jù)庫已經(jīng)滿足不了我們的存儲要求了,我們需要更大的存儲空間,要能夠隨著數(shù)據(jù)的增長而增加空間,使我們的數(shù)據(jù)全部存下不溢出。這樣就有兩個方向:一個是堆硬件,提升硬件質(zhì)量,開發(fā)更大存儲能力的硬盤或存儲介質(zhì);一個是堆數(shù)量,找更多塊硬盤來把數(shù)據(jù)按塊存放在不同的硬盤上。

大數(shù)據(jù)的存儲解決方案就是第二種,選擇更加廉價、高效、可擴展的橫向擴展方式來滿足數(shù)據(jù)存儲。既然選擇堆數(shù)量的方式來存儲大數(shù)量級的數(shù)據(jù),那就還要解決一個問題,那就是查詢問題。數(shù)據(jù)可以分批放入不同的硬盤中,我獲取的時候如何準(zhǔn)確快速的找到想要的那一條數(shù)據(jù),放在哪個盤、哪個文件的第幾行呢?這就需要專業(yè)的大數(shù)據(jù)存儲工具來解決這些問題,實現(xiàn)分布式存儲情況下每臺節(jié)點數(shù)據(jù)量的平衡、數(shù)據(jù)冗余備份防止數(shù)據(jù)丟失、數(shù)據(jù)建立索引實現(xiàn)快速查詢等。目前大數(shù)據(jù)中用到的主流存儲系統(tǒng)有哪些呢?比如:HDFS、HBase、Alluxio...

HDFS是Hadoop三大組件之一(另外兩個組件分別是:資源管理組件——YARN,并行計算組件——MapReduce),是一個分布式的文件存儲系統(tǒng),在大數(shù)據(jù)存儲系統(tǒng)中具有不可替代的作用。從各種數(shù)據(jù)源采集的數(shù)據(jù)一般都是存儲在HDFS,HDFS支持?jǐn)?shù)據(jù)的增刪改查,類似于傳統(tǒng)數(shù)據(jù)庫,不過在大數(shù)據(jù)系統(tǒng)中,我們稱之為“數(shù)據(jù)倉庫”。

HBase是一個分布式的NoSql數(shù)據(jù)庫,分布式的特點以及面向列的存儲特性,使得HBase在大數(shù)據(jù)存儲領(lǐng)域應(yīng)用廣泛,主要用于存儲一些半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),并且可以結(jié)合phoenix(感興趣的朋友可以自行百度了解)來實現(xiàn)二級索引。

Alluxio原本叫做Tachyon,是一個基于內(nèi)存的分布式文件系統(tǒng)。它是架構(gòu)在底層分布式文件系統(tǒng)(比如:HDFS、Amazon S3等)和上層分布式計算框架之間(比如后面會提到的MR、Spark、Flink等)的一個中間件,主要職責(zé)是以文件形式在內(nèi)存或其它存儲介質(zhì)中提供數(shù)據(jù)的存取服務(wù),減少數(shù)據(jù)IO性能消耗,加快計算引擎加載數(shù)據(jù)的速度。

如果數(shù)據(jù)采集之后,只是存儲在數(shù)據(jù)倉庫之中,那么這些數(shù)據(jù)沒有任何價值,也無法推動、促進(jìn)我們的業(yè)務(wù)。所以,數(shù)據(jù)存儲之后,就是要考慮數(shù)據(jù)計算的問題了。數(shù)據(jù)如何計算呢?傳統(tǒng)的軟件分析軟件Excel、Mysql等無法承載海量數(shù)據(jù)的分析,因為設(shè)計之初,考慮到的數(shù)據(jù)上線就遠(yuǎn)遠(yuǎn)達(dá)不到大數(shù)據(jù)的入門門檻標(biāo)準(zhǔn)。我們就要尋求一些專業(yè)的大數(shù)據(jù)量的分析計算軟件來應(yīng)對不同特點數(shù)據(jù)集的數(shù)據(jù)計算。數(shù)據(jù)計算從處理效率來分,可以分為:離線批處理、實時處理。如果從處理方式來分,可以分為:數(shù)據(jù)分析、數(shù)據(jù)挖掘。

我們先以離線批處理和實時處理兩個角度來了解數(shù)據(jù)計算處理工具。

大數(shù)據(jù)興起之初,人們對數(shù)據(jù)處理的時效性沒有現(xiàn)在要求那么高,更加注重時間和成本的平衡,基本只是面向“天”為粒度的離線計算場景,就是在第二天才開始處理前一天的數(shù)據(jù)。在這種場景下就誕生了MapReduce,Hadoop三大組件中的并行計算組件。MapReduce計算主要是利用磁盤來進(jìn)行中間結(jié)果數(shù)據(jù)的暫存,這樣就造成數(shù)據(jù)的計算過程,數(shù)據(jù)不斷在內(nèi)存和磁盤間IO,影響了計算效率,在一些數(shù)據(jù)量比較大的情況下,一個MR(MapReduce的簡稱)任務(wù)就能跑一天。MR計算不止慢,MR框架使用還有一定的開發(fā)入門門檻,所以后來又出現(xiàn)了一個數(shù)據(jù)計算工具——Hive,Hive對復(fù)雜的MR程序開發(fā)say no!開發(fā)人員只需要懂SQL語言就能夠進(jìn)行數(shù)據(jù)的增刪改查,Hive會將你的SQL語句在計算機實際計算前轉(zhuǎn)換為MR計算任務(wù),雖然速度還是一樣的慢,但是降低了程序員的開發(fā)門檻。

隨著數(shù)據(jù)應(yīng)用的不斷深入,大數(shù)據(jù)體系的不斷完善,數(shù)據(jù)的價值越來越隨著時效而凸顯,所以越來越多的人對數(shù)據(jù)的時效性提出了更高的要求。在這種情況下,人們開始需求更快速的數(shù)據(jù)計算工具,這就誕生了后來的Impala、Presto等一系列基于純內(nèi)存或以內(nèi)存為主的計算引擎,大大縮短了數(shù)據(jù)的處理時間,提高了數(shù)據(jù)信息提取的效率,使數(shù)據(jù)產(chǎn)生了更多的商業(yè)附加價值。

人們在一些特定場景下,對于數(shù)據(jù)處理的效率要求是沒有上限的。比如,電商系統(tǒng)的實時推薦、雙十一天貓的監(jiān)控大屏等,最深入人心的就是12306車票實時統(tǒng)計。于是,實時流計算的場景就逐漸產(chǎn)生了,這也催生了后來的Spark、Flink這一類實時計算引擎的發(fā)光發(fā)彩。流計算是指對持續(xù)流入的數(shù)據(jù)立即進(jìn)行處理,但是誰也不能保證我上游數(shù)據(jù)一定是勻速寫入,這就需要引入一個叫消息中間件的消息緩沖組件,比如:Kafka、RocketMQ、RabbitMQ等,主要作用就是起到一個限流削峰的作用,就好像一個蓄水池,對于某一時間涌入的大量數(shù)據(jù)進(jìn)行暫存,然后以一個勻速的速率傳遞將消息分批傳送到實時計算引擎進(jìn)行數(shù)據(jù)實時計算。

Spark是一個基于內(nèi)存的計算引擎。Spark的功能組件可以細(xì)分為SparkCore、SparkSql、SparkStreaming、GraphX、MLlib。SparkCore、SparkSql主要是用來做離線數(shù)據(jù)批處理,SparkStreaming則是用來做實時流計算,GraphX是用來做圖計算,MLlib是一個機器學(xué)習(xí)庫。Spark Streaming 支持從多種數(shù)據(jù)源獲取數(shù)據(jù),包括 Kafka、Flume、Twitter... ,從數(shù)據(jù)源獲取數(shù)據(jù)之后,可以使用諸如 map、reduce、join 和 window 等高級函數(shù)進(jìn)行復(fù)雜算法的處理,最后再將計算結(jié)果存儲到文件系統(tǒng)、數(shù)據(jù)庫...中。

Flink認(rèn)為有界數(shù)據(jù)集是無界數(shù)據(jù)流的一種特例,所以說有界數(shù)據(jù)集也是一種數(shù)據(jù)流,事件流也是一種數(shù)據(jù)流。Everything is streams,即Flink可以用來處理任何的數(shù)據(jù),可以支持批處理、流處理、AI、MachineLearning等等。

主流數(shù)據(jù)計算工具了解之后,我們再從數(shù)據(jù)分析和數(shù)據(jù)挖掘的角度講一下數(shù)據(jù)計算。

數(shù)據(jù)分析,一般指分析的目標(biāo)比較明確,比如要從一堆學(xué)生信息中篩選出來性別為男的學(xué)生數(shù)量就是一種數(shù)據(jù)分析,是明確了x和轉(zhuǎn)換函數(shù)f的情況下去獲得y值。而數(shù)據(jù)挖掘則是通過數(shù)學(xué)建模、在給定x和y的情況下,讓機器去發(fā)現(xiàn)使兩個值等價的若干f函數(shù)并利用其他數(shù)據(jù)集,去不斷驗證獲得最匹配的f,最終利用f去目標(biāo)數(shù)據(jù)集進(jìn)行分析,獲取隱藏的數(shù)據(jù)關(guān)聯(lián)。

總體來說,數(shù)據(jù)挖掘更加具有開放性,能夠用來從海量數(shù)據(jù)中找到人們沒有認(rèn)識到的隱藏規(guī)則。目前比較常用的數(shù)據(jù)挖掘的機器學(xué)習(xí)庫主要有SparkML、FlinkML(這里就不展開了)。

數(shù)據(jù)計算之后需要以業(yè)務(wù)需要的方式展示出來,這樣才能使不同的決策部門利用數(shù)據(jù)進(jìn)行輔助決策,所以數(shù)據(jù)展示的方式就很重要,他能影響到數(shù)據(jù)的直觀性和數(shù)據(jù)的價值體現(xiàn)。而大數(shù)據(jù)系統(tǒng)中常用的數(shù)據(jù)展示工具有ECharts、Kibana等...

Echarts是百度開源的一個基于JavaScript的數(shù)據(jù)可視化圖表庫,用于提供直觀,生動,可交互,可個性化定制的數(shù)據(jù)可視化圖表。

Kibana是ELK三件套中的展示組件(其他兩個組件為:日志收集組件——Logstash,分布式搜索引擎——Elasticsearch),提供有好的Web界面展示界面,能夠讓你對 Elasticsearch 數(shù)據(jù)進(jìn)行可視化。

以上介紹了大數(shù)據(jù)的整體處理流程和對應(yīng)流程使用的工具組件。其實除了以上數(shù)據(jù)處理直接相關(guān)的組件,大數(shù)據(jù)系統(tǒng)的穩(wěn)定高效運轉(zhuǎn)還離不開一些輔助性或工具性組件,比如ZooKeeper、Oozie、Hue等...

ZooKeeper簡稱ZK,是一個分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),在大數(shù)據(jù)體系中應(yīng)用廣泛。HDFS、YARN、HBase、Kafka(未來可能移除ZK支持,使用內(nèi)置替代方案)...等組件廣泛采用ZK實現(xiàn)高可用系統(tǒng)的主服務(wù)協(xié)調(diào)管理。

Oozie和Azkaban類似,都是一個定時任務(wù)調(diào)度組件,用來管理Hadoop作業(yè)。Oozie可以將很多不同的作業(yè)(如MR、Java程序、shell腳本、hivesql、sqoop、spark等)按照特定的順序,或串行或并行的組合成一個工作流,上流任務(wù)完成后會自動觸發(fā)下流任務(wù)的執(zhí)行,達(dá)到連貫調(diào)度的目的,能夠極大的提高開發(fā)效率。

Hue是一個可視化的大數(shù)據(jù)組件集成系統(tǒng),能夠集成Hive、HBase、HDFS、Spark等,實現(xiàn)界面可視化操作,對于數(shù)分析工程師來說不用自己實現(xiàn)代碼開發(fā),直接在界面進(jìn)行SQL語句操作或拖拽操作就能利用這些集成組件完成數(shù)據(jù)處理。

以上就是大數(shù)據(jù)系統(tǒng)的一個系統(tǒng)性介紹,包括了大數(shù)據(jù)推進(jìn)歷程、大數(shù)據(jù)處理流程、大數(shù)據(jù)技術(shù)體系等,了解并掌握以上大數(shù)據(jù)處理流程,熟練運用各種工具進(jìn)行數(shù)據(jù)采集、存儲、計算、展示,基本就可以算得上是一個合格的大數(shù)據(jù)工程師了,如果想更深層次的發(fā)展,就需要了解主流大數(shù)據(jù)組件的特性、各種處理工具的原理和調(diào)優(yōu)、大數(shù)據(jù)組件接口的二次開發(fā)等等。

最后說一句,任何時候都不要忘記從官網(wǎng)獲取我們想要知道的關(guān)于大數(shù)據(jù)處理工具的一切特性,養(yǎng)成從官網(wǎng)學(xué)習(xí)新知識、新技術(shù)、新框架的習(xí)慣!

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2023-09-11 08:13:03

分布式跟蹤工具

2020-08-03 10:00:11

前端登錄服務(wù)器

2023-04-24 08:00:00

ES集群容器

2020-10-18 07:32:06

SD-WAN網(wǎng)絡(luò)傳統(tǒng)廣域網(wǎng)

2018-01-17 09:32:45

人工智能卷積神經(jīng)網(wǎng)絡(luò)CNN

2021-11-24 22:42:15

WorkManagerAPI

2018-11-14 11:57:28

2023-10-30 07:12:04

2020-05-14 16:35:21

Kubernetes網(wǎng)絡(luò)策略DNS

2022-06-20 09:01:23

Git插件項目

2023-02-10 09:04:27

2020-02-18 16:20:03

Redis ANSI C語言日志型

2019-08-13 15:36:57

限流算法令牌桶

2022-08-01 11:33:09

用戶分析標(biāo)簽策略

2021-04-08 07:37:39

隊列數(shù)據(jù)結(jié)構(gòu)算法

2022-05-19 08:28:19

索引數(shù)據(jù)庫

2024-07-31 15:39:00

2019-05-14 09:31:16

架構(gòu)整潔軟件編程范式

2018-05-22 08:24:50

PythonPyMongoMongoDB

2023-10-17 08:15:28

API前后端分離
點贊
收藏

51CTO技術(shù)棧公眾號