大數據初學者應該怎麼學

記住學到這里可以作為你學大數據的一個節點。

Zookeeper:這是個萬金油,安裝Hadoop的HA的時候就會用到它,以後的Hbase也會用到它。它一般用來存放一些相互協作的信息,這些信息比較小一般不會超過1M,都是使用它的軟體對它有依賴,對於我們個人來講只需要把它安裝正確,讓它正常的run起來就可以了。

Mysql:我們學習完大數據的處理了,接下來學習學習小數據的處理工具mysql資料庫,因為一會裝hive的時候要用到,mysql需要掌握到什麼層度那?你能在Linux上把它安裝好,運行起來,會配置簡單的許可權,修改root的密碼,創建資料庫。這里主要的是學習SQL的語法,因為hive的語法和這個非常相似。

Sqoop:這個是用於把Mysql里的數據導入到Hadoop里的。當然你也可以不用這個,直接把Mysql數據表導出成文件再放到HDFS上也是一樣的,當然生產環境中使用要注意Mysql的壓力。

Hive:這個東西對於會SQL語法的來說就是神器,它能讓你處理大數據變的很簡單,不會再費勁的編寫MapRece程序。有的人說Pig那?它和Pig差不多掌握一個就可以了。

Oozie:既然學會Hive了,我相信你一定需要這個東西,它可以幫你管理你的Hive或者MapRece、Spark腳本,還能檢查你的程序是否執行正確,出錯了給你發報警並能幫你重試程序,最重要的是還能幫你配置任務的依賴關系。我相信你一定會喜歡上它的,不然你看著那一大堆腳本,和密密麻麻的crond是不是有種想屎的感覺。

Hbase:這是Hadoop生態體系中的NOSQL資料庫,他的數據是按照key和value的形式存儲的並且key是唯一的,所以它能用來做數據的排重,它與MYSQL相比能存儲的數據量大很多。所以他常被用於大數據處理完成之後的存儲目的地。

Kafka:這是個比較好用的隊列工具,隊列是干嗎的?排隊買票你知道不?數據多了同樣也需要排隊處理,這樣與你協作的其它同學不會叫起來,你干嗎給我這么多的數據(比如好幾百G的文件)我怎麼處理得過來,你別怪他因為他不是搞大數據的,你可以跟他講我把數據放在隊列里你使用的時候一個個拿,這樣他就不在抱怨了馬上灰流流的去優化他的程序去了,因為處理不過來就是他的事情。而不是你給的問題。當然我們也可以利用這個工具來做線上實時數據的入庫或入HDFS,這時你可以與一個叫Flume的工具配合使用,它是專門用來提供對數據進行簡單處理,並寫到各種數據接受方(比如Kafka)的。

Spark:它是用來彌補基於MapRece處理數據速度上的缺點,它的特點是把數據裝載到內存中計算而不是去讀慢的要死進化還特別慢的硬碟。特別適合做迭代運算,所以演算法流們特別稀飯它。它是用scala編寫的。Java語言或者Scala都可以操作它,因為它們都是用JVM的。

② 怎樣進行大數據的入門級學習

怎樣進行大數據的入門級學習?

文 | 郭小賢

數據科學並沒有一個獨立的學科體系,統計學,機器學習,數據挖掘,資料庫,分布式計算,雲計算,信息可視化等技術或方法來對付數據。

但從狹義上來看,我認為數據科學就是解決三個問題:

1. datapre-processing;(數據預處理)

2. datainterpretation;(數據解讀)

3.datamodeling and analysis.(數據建模與分析)

這也就是我們做數據工作的三個大步驟:

1、原始數據要經過一連串收集、提取、清洗、整理等等的預處理過程,才能形成高質量的數據;

2、我們想看看數據「長什麼樣」,有什麼特點和規律;

3、按照自己的需要,比如要對數據貼標簽分類,或者預測,或者想要從大量復雜的數據中提取有價值的且不易發現的信息,都要對數據建模,得到output。

這三個步驟未必嚴謹,每個大步驟下面可能依問題的不同也會有不同的小步驟,但按我這幾年的經驗來看,按照這個大思路走,數據一般不會做跑偏。

這樣看來,數據科學其實就是門復合型的技術,既然是技術就從編程語言談起吧,為了簡練,只說說R和python。但既然是薦數據科學方面的書,我這里就不提R/Python編程基礎之類的書了,直接上跟數據科學相關的。

R programming

如果只是想初步了解一下R語言已經R在數據分析方面的應用,那不妨就看看這兩本:

R inaction:我的R語言大數據101。其實對於一個沒有任何編程基礎的人來說,一開始就學這本書,學習曲線可能會比較陡峭。但如果配合上一些輔助材料,如官方發布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的問題集(Newest 『r』 Questions),遇到復雜的問題可在上面搜索,總會找到解決方案的。這樣一來,用這本書拿來入門學習也問題不大。而且這本書作者寫得也比較輕松,緊貼實戰。

Dataanalysis and graphics using R:使用R語言做數據分析的入門書。這本書的特點也是緊貼實戰,沒有過多地講解統計學理論,所以喜歡通過情境應用來學習的人應該會喜歡這本入門書。而且這本書可讀性比較強,也就是說哪怕你手頭沒電腦寫不了代碼,有事沒事拿出這本書翻一翻,也能讀得進去。

但如果你先用R來從事實實在在的數據工作,那麼上面兩本恐怕不夠,還需要這些:

Modernapplied statistics with S:這本書里統計學的理論就講得比較多了,好處就是你可以用一本書既復習了統計學,又學了R語言。(S/Splus和R的關系就類似於Unix和Linux,所以用S教程學習R,一點問題都沒有)

Datamanipulation with R:這本書實務性很強,它教給你怎麼從不同格式的原始數據文件里讀取、清洗、轉換、整合成高質量的數據。當然和任何一本注重實戰的書一樣,本書也有豐富的真實數據或模擬數據供你練習。對於真正從事數據處理工作的人來說,這本書的內容非常重要,因為對於任何研究,一項熟練的數據預處理技能可以幫你節省大量的時間和精力。否則,你的研究總是要等待你的數據。

RGraphics Cookbook:想用R做可視化,就用這本書吧。150多個recipes,足以幫你應付絕大多數類型的數據。以我現在極業余的可視化操作水平來看,R是最容易做出最漂亮的圖表的工具了。

Anintroction to statistical learning with application in R:這本書算是著名的the element of statistical learning的姊妹篇,後者更注重統計(機器)學習的模型和演算法,而前者所涉及的模型和演算法原沒有後者全面或深入,但卻是用R來學習和應用機器學習的很好的入口。

Ahandbook of statistical analysis using R:這本書內容同樣非常扎實,很多統計學的學生就是用這本書來學慣用R來進行統計建模的。

Python

Think Python,ThinkStats,Think Bayes:這是AllenB. Downey寫的著名的Think X series三大卷。其實是三本精緻的小冊子,如果想快速地掌握Python在統計方面的操作,好好閱讀這三本書,認真做習題,答案鏈接在書里有。這三本書學通了,就可以上手用Python進行基本的統計建模了。

PythonFor Data Analysis: 作者是pandas的主要開發者,也正是Pandas使Python能夠像R一樣擁有dataframe的功能,能夠處理結構比較復雜的數據。這本書其實analysis講得不多,說成數據處理應該更合適。掌握了這本書,處理各種糟心的數據就問題不大了。

Introctionto Python for Econometrics, Statistics and DataAnalysis:這本書第一章就告訴你要安裝Numpy, Scipy, Matplotlib, Pandas, IPython等等。然後接下來的十好幾章就是逐一介紹這幾個庫該怎麼用。很全面,但讀起來比較枯燥,可以用來當工具書。

PracticalData Analysis: 這本書挺奇葩,貌似很暢銷,但作者把內容安排得東一榔頭西一棒子,什麼都講一點,但一個都沒講透。這本書可以作為我們學習數據分析的一個索引,看到哪塊內容有意思,就順著它這個藤去摸更多的瓜。

PythonData Visualization Cookbook: 用Python做可視化的教材肯定不少,我看過的也就這一本,覺得還不錯。其實這類書差別都不會很大,咬住一本啃下來就是王道。

Exploratory Data Analysis 和 Data Visualization

Exploratory DataAnalysis:John Tukey寫於1977年的經典老教材,是這一領域的開山之作。如今EDA已經是統計學里的重要一支,但當時還是有很多人對他的工作不屑一顧。可他愛數據,堅信數據可以以一種出人意料的方式呈現出來。正是他的努力,讓數據可視化成為一門無比迷人的技術。但這本書不推薦閱讀了,內容略過時。要想完整地了解EDA,推薦下一本:

ExploratoryData Analysis with MATLAB:這本書雖然標題帶了個MATLAB,但實際上內容幾乎沒怎麼講MATLAB,只是每講一個方法的時候就列出對應的MATALB函數。這本書的重要之處在於,這是我讀過的講EDA最系統的一本書,除了對visualization有不輸於John Tucky的講解外,對於高維的數據集,通過怎樣的方法才能讓我們從中找到潛在的pattern,這本書也做了詳盡的講解。全書所以案例都有對應的MATALB代碼,而且還提供了GUI(圖形用戶界面)。所以這本書學起來還是相當輕松愉悅的。

VisualizeThis:中譯本叫「鮮活的數據」,作者是個「超級數據迷」,建立了一個叫http://flowingdata.com的網頁展示他的數據可視化作品,這本書告訴你該選擇什麼樣的可視化工具,然後告訴你怎樣visualize關系型數據、時間序列、空間數據等,最後你就可以用數據講故事了。如果你只想感受一下數據可視化是個什麼,可以直接點開下面這個鏈接感受下吧!A tour through the visualization zoo(A TourThrough the Visualization Zoo)

Machine Learning & Data Mining

這一塊就不多說了,不是因為它不重要,而是因為它太太太重要。所以這一部分就推兩本書,都是」世界名著「,都比較難讀,需要一點點地啃。這兩本書拿下,基本就算是登堂入室了。其實作為機器學習的延伸和深化,概率圖模型(PGM)和深度學習(deep learning)同樣值得研究,特別是後者現在簡直火得不得了。但PGM偏難,啃K.Daphne那本大作實在太燒腦,也沒必要,而且在數據領域的應用也不算很廣。deep learning目前工業界的步子邁得比學術界的大,各個domain的應用如火如荼,但要有公認的好教材問世則還需時日,所以PGM和deep learning這兩塊就不薦書了。

TheElement of Statistical Learning:要學機器學習,如果讓我只推薦一本書,我就推薦這本巨著。Hastie、Tibshirani、Friedman這三位大牛寫書寫得太用心了,大廈建得夠高夠大,結構也非常嚴謹,而且很有前瞻性,納入了很多前沿的內容,而不僅僅是一部綜述性的教材。(圖表也做得非常漂亮,應該是用R語言的ggplot2做的。)這本書注重講解模型和演算法本身,所以需要具備比較扎實的數理基礎,啃起這本書來才不會太吃力。事實上掌握模型和演算法的原理非常重要。機器學習(統計學習)的庫現在已經非常豐富,即使你沒有完全搞懂某個模型或演算法的原理和過程,只要會用那幾個庫,機器學習也能做得下去。但你會發現你把數據代進去,效果永遠都不好。但是,當你透徹地理解了模型和演算法本身,你再調用那幾個庫的時候,心情是完全不一樣的,效果也不一樣。

DataMining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 數據挖掘的教材汗牛充棟,之所以推薦這本韓家煒爺爺的,是因為雖然他這本書的出發點是應用,但原理上的內容也一點沒有落下,內容非常完整。而且緊跟時代,更新的很快,我看過的是第二版,就已經加進去了social network analysis這種當時的前沿內容。現在已經有第三版了,我還沒看過,但應該也加入了不少新內容。其實這本書並不難讀,只是篇幅較長,啃起來比較耗時。

其實這兩本書里單拎出來一塊內容可能又是幾本書的節奏,比如bayesian方法,再拿出兩三本書來講也不為過,我個人用到的比較多,而且也確實有不少好書。但並非是所有data scientist都要用到,所以這一塊就不再細說。

還有一些印象比較深刻的書:

Big DataGlossary: 主要講解大數據處理技術及工具,內容涵蓋了NoSQL,MapRece,Storage,Servers,NLP庫與工具包,機器學習工具包,數據可視化工具包,數據清洗,序列化指南等等。總之,是一本辭典式的大數據入門指導。

Mining ofMassive Datasets:這本書是斯坦福大學Web Mining的講義,裡面很多內容與韓家煒的Data Mining那本書重合,但這本書里詳細地講了MapRece的設計原理,PageRank(Google創業時期的核心排序演算法,現在也在不斷優化更新)講解得也比較詳細。

DevelopingAnalytic Talent: 作者是個從事了十幾年數據工作的geek,技術博客寫得很有個人風格,寫的內容都比較偏門,通常只有具備相關數據處理經驗的人能體會出來,絲毫不照顧初學者的感受。比如他會談到當數據流更新太快時該怎麼辦,或者MapRece在什麼時候不好用的問題,才不管你懂不懂相關基礎原理。所以這本書不太適合初學者閱讀。這本書其實是作者的博客文章的集結,用how to become a data scientist的邏輯把他近幾年的博客文章串聯了起來。

Past, Present and Future of Statistical Science:這本書是由COPSS(統計學社大大委員會,由國際各大統計學會的帶頭人組成)在50周年出版的一本紀念冊,裡面有50位統計學家每人分別貢獻出的一兩篇文章,有的回憶了自己當年如何走上統計學這條路,有的探討了一些統計學的根本問題,有的談了談自己在從事的前沿研究,有的則給年輕一代寫下了寄語。非常有愛的一本書。

其它資料

Harvard Data Science:這是H大的Data science在線課,我沒有修過,但口碑很好。這門課需要費用8千刀左右,比起華盛頓大學的4千刀的Data science在線課雖貴一倍,但比斯坦福的14千刀要便宜將近一半(而且斯坦福的更偏計算機)。如果想自學,早有好心人分享了slides:(https://drive.google.com/folderview?id=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=sharing)和homeworks and solutions: (https://github.com/cs109/content)

PyData:PyData是來自各個domain的用Python做數據的人每年舉行一次的聚會,期間會有各路牛人舉行一些規模不大的seminar或workshop,有好心人已經把video上傳到github,有興趣的去認領吧(DataTau/datascience-anthology-pydata · GitHub)

工具

R/Python/MATLAB(必備):如果是做數據分析和模型開發,以我的觀察來看,使用這三種工具的最多。R生來就是一個統計學家開發的軟體,所做的事也自然圍繞統計學展開。MATLAB雖然算不上是個專業的數據分析工具,但因為很多人不是專業做數據的,做數據還是為了自己的domain expertise(特別是科學計算、信號處理等),而MATLAB又是個強大無比的Domain expertise工具,所以很多人也就順帶讓MATLAB也承擔了數據處理的工作,雖然它有時候顯得效率不高。Python雖然不是做數據分析的專業軟體,但作為一個面向對象的高級動態語言,其開源的生態使Python擁有無比豐富的庫,Numpy, Scipy 實現了矩陣運算/科學計算,相當於實現了MATLAB的功能,Pandas又使Python能夠像R一樣處理dataframe,scikit-learn又實現了機器學習。

SQL(必備):雖然現在人們都說傳統的關系型資料庫如Oracle、MySQL越來越無法適應大數據的發展,但對於很多人來說,他們每天都有處理數據的需要,但可能一輩子都沒機會接觸TB級的數據。不管怎麼說,不論是用關系型還是非關系型資料庫,SQL語言是必須要掌握的技能,用什麼資料庫視具體情況而定。

MongoDB(可選):目前最受歡迎的非關系型資料庫NoSQL之一,不少人認為MongoDB完全可以取代mySQL。確實MongoDB方便易用,擴展性強,Web2.0時代的必需品。

Hadoop/Spark/Storm(可選): MapRece是當前最著名也是運用最廣泛的分布式計算框架,由Google建立。Hadoop/Spark/storm都是基於MapRece的框架建立起來的分布式計算系統,要說他們之間的區別就是,Hadoop用硬碟存儲數據,Spark用內存存儲數據,Storm只接受實時數據流而不存儲數據。一言以蔽之,如果數據是離線的,如果數據比較復雜且對處理速度要求一般,就Hadoop,如果要速度,就Spark,如果數據是在線的實時的流數據,就Storm。

OpenRefine(可選):Google開發的一個易於操作的數據清洗工具,可以實現一些基本的清洗功能。

Tableau(可選):一個可交互的數據可視化工具,操作簡單,開箱即用。而且圖表都設計得非常漂亮。專業版1999美刀,終身使用。媒體和公關方面用得比較多。

Gephi(可選):跟Tableau類似,都是那種可交互的可視化工具,不需要編程基礎,生成的圖表在美學和設計上也是花了心血的。更擅長復雜網路的可視化。

來自知乎

以上是小編為大家分享的關於怎樣進行大數據的入門級學習?的相關內容,更多信息可以關注環球青藤分享更多干貨

③ 新人如何入門大數據技術

在學習的過程中,也可以適當擴展一下自身的知識面,包括學習一些分布式開發框架等等,但是對於已經就業的初級職場人來說,學習大數據一定要從崗位任務入手。

當前大數據產業鏈上,崗位的劃分通常分為三大類,其一是大數據開發,其二是大數據分析,其三是大數據運維,而這三大類崗位又有很多細分的崗位,不同的團隊對於從業者的知識結構也有不同的要求。以大數據分析崗位為例,很多從事BI的團隊,對於從業者的編程能力要求並不高,對於資料庫知識的要求比較高,所以職場新人首先要了解自己的工作任務,然後再制定學習規劃。

產業領域往往會採用商用的大數據平台,並不像在學生時代,往往有大塊的學習時間來學習開源的大數據平台,比如Hadoop等,所以在學習時,要搞清楚企業所採用的技術平台,然後把技術平台的結構和API搞清楚,這是比較重要的。當前商用大數據平台往往都有比較完善的技術描述文檔,通常也會有很多案例可以學習,這些都會明顯提升學習效率。

最後,對於職場新人來說,一定要重視與技術團隊中的技術骨幹進行交流,不斷明確自己的學習方向和學習內容,這是非常重要的,學會溝通是初級職場人最應該掌握的能力。

關於新人如何入門大數據技術,青藤小編就和您分享到這里了。如果你對大數據工程有濃厚的興趣,希望這篇文章能夠對你有所幫助。如果您還想了解更多數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。

④ 如何入門大數據

如果只是想初步了解一下R語言已經R在數據分析方面的應用,那不妨就看看這兩本:
R in action:我的R語言大數據101。其實對於一個沒有任何編程基礎的人來說,一開始就學這本書,學習曲線可能會比較陡峭。但如果配合上一些輔助材料

⑤ 如何入門大數據

學習大數據的兩大基礎就是JAVA和Linux,學習順序不分前後。需要同時掌握,才可以繼續大數據課程的學習。
Java:大家都知道Java的方向有JavaSE、JavaEE、JavaME,學習大數據要學習那個方向呢?
只需要學習Java的標准版JavaSE就可以了,像Servlet、JSP、Tomcat、Struts、Spring、Hibernate,Mybatis都是JavaEE方向的技術在大數據技術里用到的並不多,只需要了解就可以了,當然Java怎麼連接資料庫還是要知道的,像JDBC一定要掌握一下,有同學說Hibernate或Mybites也能連接資料庫啊,為什麼不學習一下,我這里不是說學這些不好,而是說學這些可能會用你很多時間,到最後工作中也不常用,我還沒看到誰做大數據處理用到這兩個東西的,當然你的精力很充足的話,可以學學Hibernate或Mybites的原理,不要只學API,這樣可以增加你對Java操作資料庫的理解,因為這兩個技術的核心就是Java的反射加上JDBC的各種使用。
Linux:因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的扎實一些,學好Linux對你快速掌握大數據相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置,能少踩很多坑,學會shell就能看懂腳本這樣能更容易理解和配置大數據集群。還能讓你對以後新出的大數據技術學習起來更快。

⑥ 大數據開發是不是很難學沒有基礎可不可以學習呢

沒有一份高薪的工作是簡單地,都需要付出時間精力去好好學習,而大數據專技術門檻是有的屬,純技術需要不少IT知識儲備積淀,如果是投入精力要學習大數據,是沒有問題的,我兒子也是沒有基礎,當時決定去光環,當時他也是擔心的不行,就怕自己學不會,但是真的學習過程中,也沒有特別困難的!

⑦ 怎樣進行大數據的入門級學習

1、原始數據要經過一連串收集、提取、清洗、整理等等的預處理過程,才能形成高質量的數據;
2、我們想看看數據「長什麼樣」,有什麼特點和規律;
3、按照自己的需要,比如要對數據貼標簽分類,或者預測,或者想要從大量復雜的數據中提取有價值的且不易發現的信息,都要對數據建模,得到output。

⑧ 大數據如何入門

導讀:

第一章:初識Hadoop

第二章:更高效的WordCount

第三章:把別處的數據搞到Hadoop上

第四章:把Hadoop上的數據搞到別處去

第五章:快一點吧,我的SQL

第六章:一夫多妻制

第七章:越來越多的分析任務

第八章:我的數據要實時

第九章:我的數據要對外

第十章:牛逼高大上的機器學習

經常有初學者會問,自己想往大數據方向發展,該學哪些技術,學習路線是什麼樣的,覺得大數據很火,就業很好,薪資很高……首先,如果你確定了想往這個方面發展,先考慮自己的過去從業經歷、專業、興趣是什麼。計算機專業——操作系統、硬體、網路、伺服器?軟體專業——軟體開發、編程、寫代碼?還是數學、統計學專業——對數據和數字特別感興趣?

其實這就是想告訴你大數據的三個發展方向,平台搭建/優化/運維/監控、大數據開發/設計/架構、數據分析/挖掘。

先扯一下大數據的4V特徵:

  • 數據量大,TB->PB

  • 數據類型繁多,結構化、非結構化文本、日誌、視頻、圖片、地理位置等;

  • 商業價值高,但是這種價值需要在海量數據之上,通過數據分析與機器學習更快速的挖掘出來;

  • 處理時效性高,海量數據的處理需求不再局限在離線計算當中。

  • 現如今,正式為了應對大數據的這幾個特點,開源的大數據框架越來越多,越來越強,先列舉一些常見的:

    文件存儲:Hadoop HDFS、Tachyon、KFS

    離線計算:Hadoop MapRece、Spark

    流式、實時計算:Storm、Spark Streaming、S4、Heron

    K-V、NOSQL資料庫:HBase、Redis、MongoDB

    資源管理:YARN、Mesos

    日誌收集:Flume、Scribe、Logstash、Kibana

    消息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ

    查詢分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

    分布式協調服務:Zookeeper

    集群管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager

    數據挖掘、機器學習:Mahout、Spark MLLib

    數據同步:Sqoop

    任務調度:Oozie

    ······

    第一章:初識Hadoop

    1.1學會網路與Google

    不論遇到什麼問題,先試試搜索並自己解決。

    Google首選,翻不過去的,就用網路吧。

    1.2參考資料首選官方文檔

    特別是對於入門來說,官方文檔永遠是首選文檔。

    相信搞這塊的大多是文化人,英文湊合就行,實在看不下去的,請參考第一步。

    1.3先讓Hadoop跑起來

    Hadoop可以算是大數據存儲和計算的開山鼻祖,現在大多開源的大數據框架都依賴Hadoop或者與它能很好的兼容。

    關於Hadoop,你至少需要搞清楚以下是什麼:

  • Hadoop 1.0、Hadoop 2.0

  • MapRece、HDFS

  • NameNode、DataNode

  • JobTracker、TaskTracker

  • Yarn、ResourceManager、NodeManager

  • 自己搭建Hadoop,請使用第一步和第二步,能讓它跑起來就行。

    建議先使用安裝包命令行安裝,不要使用管理工具安裝。

    另外:Hadoop1.0知道它就行了,現在都用Hadoop 2.0.

    1.4嘗試使用Hadoop

  • HDFS目錄操作命令;

  • 上傳、下載文件命令;

  • 提交運行MapRece示常式序;

  • 打開Hadoop WEB界面,查看Job運行狀態,查看Job運行日誌。

  • 知道Hadoop的系統日誌在哪裡。

  • 1.5了解它們的原理

    MapRece:如何分而治之;

    HDFS:數據到底在哪裡,什麼是副本;

    Yarn到底是什麼,它能幹什麼;

    NameNode到底在幹些什麼;

    ResourceManager到底在幹些什麼;

    1.6自己寫一個MapRece程序

    仿照WordCount例子,自己寫一個(照抄也行)WordCount程序,

    打包並提交到Hadoop運行。

    不會Java的話,Shell、Python都可以,有個東西叫Hadoop Streaming。

    如果能認真完成了以上幾步,恭喜你,你的一隻腳已經進來了。

    第二章:更高效的WordCount

    2.1學點SQL吧

    如果不懂資料庫的童鞋先學習使用SQL句。

    2.2 SQL版WordCount

    在1.6中,你寫(或者抄)的WordCount一共有幾行代碼?

    如果用SQL的話:

  • SELECT word,COUNT(1) FROM wordcount GROUP BY word;

  • 這便是SQL的魅力,編程需要幾十行,甚至上百行代碼,SQL一句就搞定;使用SQL處理分析Hadoop上的數據,方便、高效、易上手、更是趨勢。不論是離線計算還是實時計算,越來越多的大數據處理框架都在積極提供SQL介面。

    2.3安裝配置Hive

    Hive算是數據倉庫工具,安裝不難,網上有很多教程,配置完成後,可以正常進入Hive命令行。

    2.4試試使用Hive

    嘗試在Hive中創建wordcount表,並運行2.2中的SQL語句。在Hadoop WEB界面中找到剛才運行的SQL任務。看SQL查詢結果是否和1.4中MapRece中的結果一致。

    明明寫的是SQL,為什麼Hadoop WEB界面中看到的是MapRece任務?

    2.5學會Hive的基本命令

    創建、刪除表;載入數據到表;下載Hive表的數據;並學習更多關於Hive的語法和命令。

    以上如果按照第一章和第二章的流程認真完整的走了一遍後,應該已經具備以下技能和知識點:

    0和Hadoop2.0的區別

    MapRece的原理(還是那個經典的題目,一個10G大小的文件,給定1G大小的內存,如何使用Java程序統計出現次數最多的10個單詞及次數);

    HDFS讀寫數據的流程;向HDFS中PUT數據;從HDFS中下載數據;

    自己會寫簡單的MapRece程序,運行出現問題,知道在哪裡查看日誌;

    會寫簡單的SELECT、WHERE、GROUP BY等SQL語句;

    Hive SQL轉換成MapRece的大致流程;

    Hive中常見的語句:創建表、刪除表、往表中載入數據、分區、將表中數據下載到本地;

    從上面的學習,你已經了解到,HDFS是Hadoop提供的分布式存儲框架,它可以用來存儲海量數據,MapRece是Hadoop提供的分布式計算框架,它可以用來統計和分析HDFS上的海量數據,而Hive則是SQL On Hadoop,Hive提供了SQL介面,開發人員只需要編寫簡單易上手的SQL語句,Hive負責把SQL翻譯成MapRece,提交運行。

    此時,你的認知中「大數據平台」是這樣的:


  • 這時,使用Flume採集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個消費者同時消費,其中一個消費者,就是將數據同步到HDFS。
  • 總結:

    為什麼Spark比MapRece快。

    使用SparkSQL代替Hive,更快的運行SQL。

    使用Kafka完成數據的一次收集,多次消費架構。

    自己可以寫程序完成Kafka的生產者和消費者。

    前面的學習已經掌握了大數據平台中的數據採集、數據存儲和計算、數據交換等大部分技能,而這其中的每一步,都需要一個任務(程序)來完成,各個任務之間又存在一定的依賴性,比如,必須等數據採集任務成功完成後,數據計算任務才能開始運行。如果一個任務執行失敗,需要給開發運維人員發送告警,同時需要提供完整的日誌來方便查錯。

    第七章:越來越多的分析任務

    不僅僅是分析任務,數據採集、數據交換同樣是一個個的任務。這些任務中,有的是定時觸發,有點則需要依賴其他任務來觸發。當平台中有幾百上千個任務需要維護和運行時候,僅僅靠crontab遠遠不夠了,這時便需要一個調度監控系統來完成這件事。調度監控系統是整個數據平台的中樞系統,類似於AppMaster,負責分配和監控任務。

    7.1 Apache Oozie

    1. Oozie是什麼?有哪些功能?

    2. Oozie可以調度哪些類型的任務(程序)?

    3. Oozie可以支持哪些任務觸發方式?

    4.安裝配置Oozie。

    7.2其他開源的任務調度系統

    Azkaban

    light-task-scheler

    alibaba/zeus

    ……

    此時:


    第八章:數據要實時

    在第六章介紹Kafka的時候提到了一些需要實時指標的業務場景,實時基本可以分為絕對實時和准實時,絕對實時的延遲要求一般在毫秒級,准實時的延遲要求一般在秒、分鍾級。對於需要絕對實時的業務場景,用的比較多的是Storm,對於其他准實時的業務場景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話,也可以自己寫程序來做。

    8.1 Storm

    1. 什麼是Storm?有哪些可能的應用場景?

    2. Storm由哪些核心組件構成,各自擔任什麼角色?

    3. Storm的簡單安裝和部署。

    4. 自己編寫Demo程序,使用Storm完成實時數據流計算。

    8.2 Spark Streaming

    1. 什麼是Spark Streaming,它和Spark是什麼關系?

    2. Spark Streaming和Storm比較,各有什麼優缺點?

    3. 使用Kafka + Spark Streaming,完成實時計算的Demo程序。

    此時:


  • 至此,大數據平台底層架構已經成型了,其中包括了數據採集、數據存儲與計算(離線和實時)、數據同步、任務調度與監控這幾大模塊。接下來是時候考慮如何更好的對外提供數據了。
  • 第九章:數據要對外

    通常對外(業務)提供數據訪問,大體上包含以下方面:

    離線:比如,每天將前一天的數據提供到指定的數據源(DB、FILE、FTP)等;

    離線數據的提供可以採用Sqoop、DataX等離線數據交換工具。

    實時:比如,在線網站的推薦系統,需要實時從數據平台中獲取給用戶的推薦數據,這種要求延時非常低(50毫秒以內)。

    根據延時要求和實時數據的查詢需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。

    OLAP分析:OLAP除了要求底層的數據模型比較規范,另外,對查詢的響應速度要求也越來越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的數據模型比較規模,那麼Kylin是最好的選擇。

    即席查詢:即席查詢的數據比較隨意,一般很難建立通用的數據模型,因此可能的方案有:Impala、Presto、SparkSQL。

    這么多比較成熟的框架和方案,需要結合自己的業務需求及數據平台技術架構,選擇合適的。原則只有一個:越簡單越穩定的,就是最好的。

    如果你已經掌握了如何很好的對外(業務)提供數據,那麼你的「大數據平台」應該是這樣的:


    第十章:牛逼高大上的機器學習

    這里本人也沒有接觸太多,稍微講一下我們的業務場景應用,遇到的能用機器學習解決的問題大概這么三類:

    分類問題:包括二分類和多分類,二分類就是解決了預測的問題,就像預測一封郵件是否垃圾郵件;多分類解決的是文本的分類;

    聚類問題:從用戶搜索過的關鍵詞,對用戶進行大概的歸類。

    推薦問題:根據用戶的歷史瀏覽和點擊行為進行相關推薦。

    大多數行業,使用機器學習解決的,也就是這幾類問題。

    入門學習線路:

    數學基礎;

    機器學習實戰(Machine Learning in Action),懂Python最好;

    SparkMlLib提供了一些封裝好的演算法,以及特徵處理、特徵選擇的方法。

    那麼把機器學習部分加進 「大數據平台」。


⑨ 如何進行大數據的入門級學習

學科知識:數據分析所涉及的專業知識
統計學:參數檢驗、非參檢驗、回歸分析、抽樣技術、多元統計分析法、時間序列、隨機過程等
計算機:數電模電、操作系統、組成原理、微機原理、匯編、編譯原理、圖形學、資料庫、軟體工程等,必須了解資料庫的結構和基本原理,知道所使用的數據怎麼處理出來的,同時還需要有從資料庫提取所需數據的能力(比如使用SQL進行查詢);
金融學:如果你從事這個行業的數據分析,相關專業知識是必須的,如:宏觀微觀、投資學、貨幣金融、金融市場和金融機構等;
數學:微積分、線性代數等;
社會學:社會學量化統計,如問卷調查與統計分析;大數據只是資料的整合和相關性分析,不做任何推論,可能產生偏差,但是社會學可以在數據分析基礎上進行理論詮釋並驗證理論模型;因此,社會學的學習,對從事營銷類數據分析人員有幫助。
從基礎學起,遇到不懂的問題翻書本,杜絕手高眼低,堅持,堅持,再堅持。
相關軟體:從事數據分析方面工作必備工具
數據分析報告類:Microsoft Office軟體等,如果現在你不會excel表格基本處理,不會做ppt報告,那隻能說你離大數據相關崗位還差很遠;現在數據呈現不單單是表格形式,更多的需要可視化圖表,所以掌握可視化軟體很重要,BDP、ECharts、iCharts 、FusionCharts XT、Pizza Pie Charts等,根據個人喜好選擇咯;
專業數據分析軟體:你必須會用一些常用的專業數據分析工具,比如SPSS、SAS、Matlab等,這些工具可以幫助我們完成專業性的演算法或模型分析,還要學習python、R等;
資料庫:hive、hadoop、impala等資料庫相關知識;
輔助工具:思維導圖工具(MindManager),可以幫助我們整理思路。
數據分析基礎=理論+工具+思維,只有理論沒有實際運用是紙上談兵,只想著去用沒有理論支撐也是瞎忙活,相輔相成,缺一不可;要把這些數據分析基礎運用到實際業務中,琢磨其中的邏輯思維,真正發揮數據的價值。

⑩ 怎樣入門大數據

大數據入門,建議從編程基礎開始,然後逐步進入到技術框架的學習:

1、linux基礎

要會基本的linux操作,比如用戶管理,許可權,shell編程之類的。

2、一門JVM系語言:

當前大數據生態JVM系語言類的比重極大,某種程度上說是壟斷也不為過。建議學習Java或Scala。

3、計算處理框架:

分為離線批處理和流式處理,離線處理以Hadoop MapRece、Spark為主,流計算以Apache Storm,Apache Spark Streaming以及Apache Flink為代表。