大数据基础入门
第一節(jié):為什么要學(xué)習(xí)大數(shù)據(jù)
1、目的: 當(dāng)然是為了找工作啦,賺money啦
2、對比: Java開發(fā) 和 大數(shù)據(jù)開發(fā)
3、當(dāng)前熱門就業(yè)方向:
1.大數(shù)據(jù)研發(fā)
2.大數(shù)據(jù)分析挖掘
3.深度學(xué)習(xí)
4.人工智能
第二節(jié):什么是大數(shù)據(jù)?
舉例:
1、商品推薦:問題:(1)大量的訂單如何存儲?(2)大量的訂單如何計算?
2、天氣預(yù)報: 問題: (1)大量的天氣數(shù)據(jù)如何存儲? (2)大量的天氣數(shù)據(jù)如何計算?
什么是大數(shù)據(jù),本質(zhì)?
(1)數(shù)據(jù)的存儲:分布式文件系統(tǒng)(分布式存儲)
(2)數(shù)據(jù)的計算:分布式計算
第三節(jié): Java 和 大數(shù)據(jù) 是什么關(guān)系?
1、Hadoop:基于Java語言開發(fā)
2、Spark:基 于Scala語言,Scala基于Java語言
第四節(jié):學(xué)習(xí)大數(shù)據(jù)需要的基礎(chǔ)和路線
1、學(xué)習(xí)大數(shù)據(jù)需要的基礎(chǔ)
Java基礎(chǔ) (只需要學(xué)習(xí)Java的標(biāo)準(zhǔn)版JavaSE就可以了) —> 類、繼承、I/0、反射、泛型…
Linux基礎(chǔ) (主要掌握Linux操作系統(tǒng)的理論基礎(chǔ)和服務(wù)器配置實踐知識) —> 創(chuàng)建文件、目錄、vi編輯器…
2、學(xué)習(xí)路線:
(1) Java基礎(chǔ)和Linux基礎(chǔ)
(2) Hadoop的學(xué)習(xí): 體系結(jié)構(gòu)、原理、編程
第一階段:HDFS、MapReduce、 HBase (NoSQL數(shù)據(jù)庫)
第二階段:數(shù)據(jù)分析引擎—> Hive、 Pig
數(shù)據(jù)采集引擎—> sqoop、Flume
第三階段: HUE:Web管理工具
ZooKeeper:實現(xiàn)Hadoop的HA
Oozie::工作流引擎
(3) Spark的學(xué)習(xí)
第一個階段: Scala編程語言
第二個階段: spark Core-----> 基于內(nèi)存,數(shù)據(jù)的計算
第三個階段: Spark SQL ----->類似Oracle中的SQL語句
第四個階段: spark streaming —>進行實時計算(流式計算)
(4) Apache storm: 類似spark streaming —>進行實時計算(流式計算)
NoSQL: Redis基于內(nèi)存的數(shù)據(jù)庫
名詞解釋
Hadoop:
Hadoop解決了什么問題,Hadoop就是解決了大數(shù)據(jù)(大到一臺計算機無法進行存儲,一臺計算機無法在要求的時間內(nèi)進行處理)的可靠存儲和處理。
學(xué)到這里可以作為學(xué)習(xí)大數(shù)據(jù)的一個節(jié)點。
Zookeeper:
zookeeper是一個開源的分布式協(xié)調(diào)服務(wù)框架,主要解決分布式集群中應(yīng)用系統(tǒng)的一致性問題和數(shù)據(jù)管理問題,是Hadoop和Hbase的重要組件。它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護、域名服務(wù)、分布式同步、組服務(wù)等。
他的目標(biāo)就是封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
Mysql:
MySQL大家都部陌生,是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品。
MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件。關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
Sqoop:
這個是用于把Mysql里的數(shù)據(jù)導(dǎo)入到Hadoop里的。當(dāng)然你也可以不用這個,直接把Mysql數(shù)據(jù)表導(dǎo)出成文件再放到HDFS上也是一樣的,當(dāng)然生產(chǎn)環(huán)境中使用要注意Mysql的壓力。
Hive:
hive就是數(shù)據(jù)倉庫的管理工具,通俗的講:hive就是將sql轉(zhuǎn)化為mapreduce程序,對于會SQL語法的來說就是神器,它能讓你處理大數(shù)據(jù)變的很簡單,不會再費勁的編寫MapReduce程序。(Hive和pig掌握一個就可以了)
Oozie:
Oozie起源于雅虎,主要用于 管理 與 組織 Hadoop工作流。Oozie的工作流必須是一個 有向無環(huán)圖,實際上Oozie就相當(dāng)于Hadoop的一個客戶端,當(dāng)用戶需要執(zhí)行多個關(guān)聯(lián)的MR任務(wù)時,只需要將MR執(zhí)行順序?qū)懭雡orkflow.xml,然后使用Oozie提交本次任務(wù),Oozie會托管此任務(wù)流。
Hbase:
這是Hadoop生態(tài)體系中的NOSQL數(shù)據(jù)庫,他的數(shù)據(jù)是按照key和value的形式存儲的并且key是唯一的,所以它能用來做數(shù)據(jù)的排重,它與MYSQL相比能存儲的數(shù)據(jù)量大很多。所以他常被用于大數(shù)據(jù)處理完成之后的存儲目的地。
Kafka:
Kafka是由Apache軟件基金會開發(fā)的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費者在網(wǎng)站中的所有動作流數(shù)據(jù)。 這種動作(網(wǎng)頁瀏覽,搜索和其他用戶的行動)是在現(xiàn)代網(wǎng)絡(luò)上的許多社會功能的一個關(guān)鍵因素。 這些數(shù)據(jù)通常是由于吞吐量的要求而通過處理日志和日志聚合來解決。 對于像Hadoop一樣的日志數(shù)據(jù)和離線分析系統(tǒng),但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是通過Hadoop的并行加載機制來統(tǒng)一線上和離線的消息處理,也是為了通過集群來提供實時的消息。
Spark:
它是用來彌補基于MapReduce處理數(shù)據(jù)速度上的缺點,Spark處理數(shù)據(jù)的速度秒殺MapReduce。
MapReduce是分步對數(shù)據(jù)進行處理的:“從集群中讀取數(shù)據(jù),進行一次處理,再存到集群,再從集群中讀取數(shù)據(jù),進行一次處理,存到集群…”。
Spark會在內(nèi)存中以接近“實時”的時間完成所有的數(shù)據(jù)分析:“從集群中讀取數(shù)據(jù),完成所有必須的分析處理(依賴多個算子),將結(jié)果寫會集群,完成”。
Spark特別適合做迭代運算,它是用scala編寫的。Java語言或者Scala都可以操作它。
備注:
僅為記錄學(xué)習(xí)過程,如有不正確的地方,請大佬多多指點
相互學(xué)習(xí),共同進步
總結(jié)
- 上一篇: 管家婆打印模板设置_B端移动设计 |
- 下一篇: Itext学习(一)----官方网站学习