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