大數據主要學習哪些內容?

仲琪443


對於零基礎想要學習大數據的人,一開始入門可能不會太簡單。學習大數據至少需要掌握一門計算機編程語言,計算機編程語言有很多,Java是目前使用的比較廣泛的編程語言之一。所以,學習大數據,掌握好Java是必不可少的。

另外學習大數據必須要學習大數據中心常識,大數據技術體系很複雜,與物聯網、移動互聯網、人工智能、雲核算等都有著精密的關係。所以,Hadoop生態體系;HDFS技術;HBASE技術;Sqoop運用流程;數據倉庫東西HIVE;大數據離線剖析Spark、Python言語;數據實時剖析Storm等都是學習大數據需要了解和掌握的。

從事大數據工作,免不了要分析數據。如果從事數據剖析師,就需要了解一定的數學常識。需要有一定的公式核算能力,瞭解常用計算模型算法。而如果從事數據發掘工程師,就需要能夠熟練運用各類算法,對數學的要求是很高的。


理工楠


想要學好大數據需掌握以下技術:

1. Java編程技術

Java編程技術是大數據學習的基礎,Java是一種強類型語言,擁有極高的跨平臺能力,可以編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序等,是大數據工程師最喜歡的編程工具,因此,想學好大數據,掌握Java基礎是必不可少的!

2.Linux命令

對於大數據開發通常是在Linux環境下進行的,相比Linux操作系統,Windows操作系統是封閉的操作系統,開源的大數據軟件很受限制,因此,想從事大數據開發相關工作,還需掌握Linux基礎操作命令。

3. Hadoop

Hadoop是大數據開發的重要框架,其核心是HDFS和MapReduce,HDFS為海量的數據提供了存儲,MapReduce為海量的數據提供了計算,因此,需要重點掌握,除此之外,還需要掌握Hadoop集群、Hadoop集群管理、YARN以及Hadoop高級管理等相關技術與操作!

4. Hive

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行,十分適合數據倉庫的統計分析。對於Hive需掌握其安裝、應用及高級操作等。

5. Avro與Protobuf

Avro與Protobuf均是數據序列化系統,可以提供豐富的數據結構類型,十分適合做數據存儲,還可進行不同語言之間相互通信的數據交換格式,學習大數據,需掌握其具體用法。

6.ZooKeeper

ZooKeeper是Hadoop和Hbase的重要組件,是一個為分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組件服務等,在大數據開發中要掌握ZooKeeper的常用命令及功能的實現方法。

7. HBase

HBase是一個分佈式的、面向列的開源數據庫,它不同於一般的關係數據庫,更適合於非結構化數據存儲的數據庫,是一個高可靠性、高性能、面向列、可伸縮的分佈式存儲系統,大數據開發需掌握HBase基礎知識、應用、架構以及高級用法等。

8.phoenix

phoenix是用Java編寫的基於JDBC API操作HBase的開源SQL引擎,其具有動態列、散列加載、查詢服務器、追蹤、事務、用戶自定義函數、二級索引、命名空間映射、數據收集、行時間戳列、分頁查詢、跳躍查詢、視圖以及多租戶的特性,大數據開發需掌握其原理和使用方法。

9. Redis

Redis是一個key-value存儲系統,其出現很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關係數據庫起到很好的補充作用,它提供了Java,C/C++,C#,PHP,Java,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便,大數據開發需掌握Redis的安裝、配置及相關使用方法。

10. Flume

Flume是一款高可用、高可靠、分佈式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定製)的能力。大數據開發需掌握其安裝、配置以及相關使用方法。

11. SSM

SSM框架是由Spring、SpringMVC、MyBatis三個開源框架整合而成,常作為數據源較簡單的web項目的框架。大數據開發需分別掌握Spring、SpringMVC、MyBatis三種框架的同時,再使用SSM進行整合操作。

12.Kafka

Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,其在大數據開發應用上的目的是通過Hadoop的並行加載機制來統一線上和離線的消息處理,也是為了通過集群來提供實時的消息。大數據開發需掌握Kafka架構原理及各組件的作用和使用方法及相關功能的實現!

13.Scala

Scala是一門多範式的編程語言,大數據開發重要框架Spark是採用Scala語言設計的,想要學好Spark框架,擁有Scala基礎是必不可少的,因此,大數據開發需掌握Scala編程基礎知識!

14.Spark

Spark是專為大規模數據處理而設計的快速通用的計算引擎,其提供了一個全面、統一的框架用於管理各種不同性質的數據集和數據源的大數據處理的需求,大數據開發需掌握Spark基礎、SparkJob、Spark RDD、spark job部署與資源分配、Spark shuffle、Spark內存管理、Spark廣播變量、Spark SQL、Spark Streaming以及Spark ML等相關知識。

15.Azkaban

Azkaban是一個批量工作流任務調度器,可用於在一個工作流內以一個特定的順序運行一組工作和流程,可以利用Azkaban來完成大數據的任務調度,大數據開發需掌握Azkaban的相關配置及語法規則。想學習好大數據可以關注公眾號程序員大牛 有視頻資源分享一起學習

16.Python與數據分析

Python是面向對象的編程語言,擁有豐富的庫,使用簡單,應用廣泛,在大數據領域也有所應用,主要可用於數據採集、數據分析以及數據可視化等,因此,大數據開發需學習一定的Python知識。

17.Solr與Es搜索引擎

海量數據建立搜索引擎,方便用戶搜索數據。

18.爬蟲技術

爬取重要數據存儲分析。

19.根據用戶喜好,推薦各種算法,需要用戶瞭解一些算法知識,數學知識等,這個對軟件學習人員要求就較高了。

總之,大數據需要學習的技術很多,在這裡不一一舉例說明了,技術的更新迭代也比較快。學到老活到老,沒有學的完技術,只有一直不懈努力。


代碼接盤俠


感謝悟空,我來回答這個問題

大數據相關崗位目前基本都屬於大缺口,高工資的黃金職業,這吸引了很多想要追趕時代潮流或是改變自己職業方向的人爭相學習。大數據相關知識,自學難度大,參加培訓成本又偏高,要如何選擇才好呢?我們先來了解一下大數據的主要學習內容有哪些再來決定吧! 學習大數據,要從Java開始學起,如果已經有Java編程語言了,學習大數據就會相對輕鬆很多。在掌握了大數據的基本編程語言之後,就要正式進入大數據相關知識的學習了。

首先是基礎階段。

這一階段包括:關係型數據庫原理、LINUX操作系統原理及應用。在掌握了這些基礎知識後,會安排這些基礎課程的進階課程,即:數據結構與算法、MYSQL數據庫應用及開發、SHELL腳本編程。在掌握了這些內容之後,大數據基礎學習階段才算是完成了。

接下來是大數據專業學習的第二階段:大數據理論及核心技術。第二階段也被分為了基礎和進階兩部分,先理解基礎知識,再進一步對知識內容做深入的瞭解和實踐。基礎部分包括:布式存儲技術原理與應用、分佈式計算技術、HADOOP集群搭建、運維;進階內容包括:HDFS高可靠、ZOOKEEPER、CDH、Shuffle、HADOOP源碼分析、HIVE、HBASE、Mongodb、HADOOP項目實戰。 完成了這部分內容的學習,學員們就已經掌握了大數據專業大部分的知識,並具有了一定的項目經驗。但為了學員們在大數據專業有更好的發展,所學知識能更廣泛地應用到大數據相關的各個崗位,有個更長遠的發展前景。

第三階段叫做數據分析挖掘及海量數據高級處理技術。基礎部分有:PYTHON語言、機器學習算法、FLUME+KAFKA;進階部分有:機器學習算法庫應用、實時分析計算框架、SPARK技術、PYTHON高級語言應用、分佈式爬蟲與反爬蟲技術、實時分析項目實戰、機器學習算法項目實戰。

以上便是大數據的主要學習內容。相信在掌握了以上大數據專業知識後,學員們一定能夠在將來的工作中得心應手,完成自己的職業理想。


趙傑小更新


學習大數據,要從Java開始學起,如果已經有Java編程語言了,學習大數據就會相對輕鬆很多。在掌握了大數據的基本編程語言之後,就要正式進入大數據相關知識的學習了。

第一階段:

關係型數據庫原理、LINUX操作系統原理及應用。在掌握了這些基礎知識後,會安排這些基礎課程的進階課程,

即:數據結構與算法、MYSQL數據庫應用及開發、SHELL腳本編程。在掌握了這些內容之後,大數據基礎學習階段才算是完成了。

第二階段

大數據理論及核心技術。

第二階段也被分為了基礎和進階兩部分,先理解基礎知識,再進一步對知識內容做深入的瞭解和實踐。基礎部分包括:布式存儲技術原理與應用、分佈式計算技術、HADOOP集群搭建、運維;進階內容包括:HDFS高可靠、ZOOKEEPER、CDH、Shuffle、HADOOP源碼分析、HIVE、HBASE、Mongodb、HADOOP項目實戰。

完成了這部分內容的學習,學員們就已經掌握了大數據專業大部分的知識,並具有了一定的項目經驗。但為了學員們在大數據專業有更好的發展,所學知識能更廣泛地應用到大數據相關的各個崗位,有個更長遠的發展前景。

第三階段

數據分析挖掘及海量數據高級處理技術。

基礎部分有:PYTHON語言、機器學習算法、FLUME+KAFKA;

進階部分有:機器學習算法庫應用、實時分析計算框架、SPARK技術、PYTHON高級語言應用、分佈式爬蟲與反爬蟲技術、實時分析項目實戰、機器學習算法項目實戰。

以上便是大數據的主要學習內容。相信在掌握了以上大數據專業知識後,學員們一定能夠在將來的工作中得心應手,完成自己的職業理想。


東華禪醫


java(Java se,javaweb)

Linux(shell,高併發架構,lucene,solr)

Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)

機器學習(R,mahout)

Storm(Storm,kafka,redis)

Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spark graphx)

Python(python,spark python)

雲計算平臺(docker,kvm,openstack)

名詞解釋

對於小白學習大數據需要注意的點有很多,但無論如何,既然你選擇了進入大數據行業,那麼便只顧風雨兼程。正所謂不忘初心、方得始終,學習大數據你最需要的還是一顆持之以恆的心。

一、Linux

lucene: 全文檢索引擎的架構

solr: 基於lucene的全文搜索服務器,實現了可配置、可擴展並對查詢性能進行了優化

二、Hadoop

HDFS: 分佈式存儲系統,包含NameNode,DataNode。NameNode:元數據,DataNode。DataNode:存數數據。

yarn: 可以理解為MapReduce的協調機制,本質就是Hadoop的處理分析機制,分為ResourceManager NodeManager。

MapReduce: 軟件框架,編寫程序。

Hive: 數據倉庫 可以用SQL查詢,可以運行Map/Reduce程序。用來計算趨勢或者網站日誌,不應用於實時查詢,需要很長時間返回結果。

HBase: 數據庫。非常適合用來做大數據的實時查詢。Facebook用Hbase存儲消息數據並進行消息實時的分析

ZooKeeper: 針對大型分佈式的可靠性協調系統。Hadoop的分佈式同步等靠Zookeeper實現,例如多個NameNode,active standby切換。

Sqoop: 數據庫相互轉移,關係型數據庫和HDFS相互轉移

Mahout: 可擴展的機器學習和數據挖掘庫。用來做推薦挖掘,聚集,分類,頻繁項集挖掘。

Chukwa: 開源收集系統,監視大型分佈式系統,建立在HDFS和Map/Reduce框架之上。顯示、監視、分析結果。

Ambari: 用於配置、管理和監視Hadoop集群,基於Web,界面友好。

二、Cloudera

Cloudera Manager: 管理 監控 診斷 集成

Cloudera CDH:(Cloudera's Distribution,including Apache Hadoop) Cloudera對Hadoop做了相應的改變,發行版本稱為CDH。

Cloudera Flume: 日誌收集系統,支持在日誌系統中定製各類數據發送方,用來收集數據。

Cloudera Impala: 對存儲在Apache Hadoop的HDFS,HBase的數據提供直接查詢互動的SQL。

Cloudera hue: web管理器,包括hue ui,hui server,hui db。hue提供所有CDH組件的shell界面的接口,可以在hue編寫mr。

三、機器學習/R

R: 用於統計分析、繪圖的語言和操作環境,目前有Hadoop-R

mahout: 提供可擴展的機器學習領域經典算法的實現,包括聚類、分類、推薦過濾、頻繁子項挖掘等,且可通過Hadoop擴展到雲中。

四、storm

Storm: 分佈式,容錯的實時流式計算系統,可以用作實時分析,在線機器學習,信息流處理,連續性計算,分佈式RPC,實時處理消息並更新數據庫。

Kafka: 高吞吐量的分佈式發佈訂閱消息系統,可以處理消費者規模的網站中的所有動作流數據(瀏覽,搜索等)。相對Hadoop的日誌數據和離線分析,可以實現實時處理。目前通過Hadoop的並行加載機制來統一線上和離線的消息處理

Redis: 由c語言編寫,支持網絡、可基於內存亦可持久化的日誌型、key-value型數據庫。

五、Spark

Scala: 一種類似java的完全面向對象的編程語言。

jblas: 一個快速的線性代數庫(JAVA)。基於BLAS與LAPACK,矩陣計算實際的行業標準,並使用先進的基礎設施等所有的計算程序的ATLAS藝術的實現,使其非常快。

Spark: Spark是在Scala語言中實現的類似於Hadoop MapReduce的通用並行框架,除了Hadoop MapReduce所具有的優點,但不同於MapReduce的是job中間輸出結果可以保存在內存中,從而不需要讀寫HDFS,因此Spark能更好的適用於數據挖掘與機器學習等需要迭代的MapReduce算法。可以和Hadoop文件系統並行運作,用過Mesos的第三方集群框架可以支持此行為。

Spark SQL: 作為Apache Spark大數據框架的一部分,可用於結構化數據處理並可以執行類似SQL的Spark數據查詢

Spark Streaming:一種構建在Spark上的實時計算框架,擴展了Spark處理大數據流式數據的能力。

Spark MLlib: MLlib是Spark是常用的機器學習算法的實現庫,目前(2014.05)支持二元分類,迴歸,聚類以及協同過濾。同時也包括一個底層的梯度下降優化基礎算法。MLlib以來jblas線性代數庫,jblas本身以來遠程的Fortran程序。

Spark GraphX: GraphX是Spark中用於圖和圖並行計算的API,可以在Spark之上提供一站式數據解決方案,可以方便且高效地完成圖計算的一整套流水作業。

Fortran: 最早出現的計算機高級程序設計語言,廣泛應用於科學和工程計算領域。

BLAS: 基礎線性代數子程序庫,擁有大量已經編寫好的關於線性代數運算的程序。

LAPACK: 著名的公開軟件,包含了求解科學與工程計算中最常見的數值線性代數問題,如求解線性方程組、線性最小二乘問題、特徵值問題和奇異值問題等。

ATLAS: BLAS線性算法庫的優化版本。

Spark Python: Spark是由scala語言編寫的,但是為了推廣和兼容,提供了java和python接口。

六、Python

Python: 一種面向對象的、解釋型計算機程序設計語言。

七、雲計算平臺

Docker: 開源的應用容器引擎

kvm: (Keyboard Video Mouse)

openstack: 開源的雲計算管理平臺項目


舊人舊城舊事


第一:大數據重新定義了數據的價值。大數據既代表了技術,同時也代表了一個產業,更代表了一個發展的趨勢。大數據技術指的是圍繞數據價值化的一系列相關技術,包括數據的採集、存儲、安全、分析、呈現等等;大數據產業指的是以大數據技術為基礎的產業生態,大數據的產業生態目前尚未完善,還有較大的發展空間;發展趨勢指的是大數據將成為一個重要的創新領域。

第二:大數據為智能化社會奠定了基礎。人工智能的發展需要三個基礎,分別是數據、算力和算法,所以大數據對於人工智能的發展具有重要的意義。目前在人工智能領域之所以在應用效果上有較為明顯的改善,一個重要的原因是目前有了大量的數據支撐,這會全面促進算法的訓練過程和驗證過程,從而提升算法的應用效果。

第三:大數據促進了社會資源的數據化進程。大數據的發展使得數據產生了更大的價值,這個過程會在很大程度上促進社會資源的數據化進程,而更多的社會資源實現數據化之後,大數據的功能邊界也會得到不斷的拓展,從而帶動一系列基於大數據的創新。


林凱文


Hadoop flink flume hbase spark kafka redis es等


weal1992


大數據就是數據收集並分析。

數據收集需要用到數據庫,數據庫知識必不可少。

數據分析需要用到各種模糊算法。


Eric221490590


數據統計與分析,概率論


分享到:


相關文章: