大數據稀牛
A. 什麼是大數據時代
隨著雲時代的來臨,大數據(Big data)也吸引了越來越多的關注。《著雲台》的分析師團隊認為,大數據(Big data)通常用來形容一個公司創造的大量非結構化和半結構化數據,這些數據在下載到關系型資料庫用於分析時會花費過多時間和金錢。大數據分析常和雲計算聯繫到一起,因為實時的大型數據集分析需要像MapRece一樣的框架來向數十、數百或甚至數千的電腦分配工作。
簡言之,從各種各樣類型的數據中,快速獲得有價值信息的能力,就是大數據技術。明白這一點至關重要,也正是這一點促使該技術具備走向眾多企業的潛力。 大數據的4個「V」,或者說特點有四個層面:第一,數據體量巨大。從TB級別,躍升到PB級別;第二,數據類型繁多。前文提到的網路日誌、視頻、圖片、地理位置信息等等。第三,價值密度低。以視頻為例,連續不間斷監控過程中,可能有用的數據僅僅有一兩秒。第四,處理速度快。1秒定律。最後這一點也是和傳統的數據挖掘技術有著本質
的不同。業界將其歸納為4個「V」——Volume,Variety,Value,Velocity。 物聯網、雲計算、移動互聯網、車聯網、手機、平板電腦、PC以及遍布地球各個角落的各種各樣的感測器,無一不是數據來源或者承載的方式 著雲台
例子包括網路日誌,RFID,感測器網路,社會網路,社會數據(由於數據革命的社會),互聯網文本和文件;互聯網搜索索引;呼叫詳細記錄,天文學,大氣科學,基因組學,生物地球化學,生物,和其他復雜和/或跨學科的科研,軍事偵察,醫療記錄;攝影檔案館視頻檔案;和大規模的電子商務。
大的數據需要特殊的技術,以有效地處理大量的容忍經過時間內的數據。適用於大數據的技術,包括大規模並行處理(MPP)資料庫,數據挖掘電網,分布式文件系統,分布式資料庫,雲計算平台,互聯網,和可擴展的存儲系統。
一些但不是所有的MPP的關系資料庫的PB的數據存儲和管理的能力。隱含的負載,監控,備份和優化大型數據表的使用在RDBMS的。
斯隆數字巡天收集在其最初的幾個星期,比在天文學的歷史,早在2000年的整個數據收集更多的數據。自那時以來,它已經積累了140兆兆 位元組的信息。這個望遠鏡的繼任者,大天氣巡天望遠鏡,將於2016年在網上和將獲得的數據,每5天沃爾瑪處理超過100萬客戶的交易每隔一小時,反過來進口量資料庫估計超過2.5 PB的是相當於167次,在美國國會圖書館的書籍 。
FACEBOOK處理400億張照片,從它的用戶群。解碼最初的人類基因組花了10年來處理時,現在可以在一個星期內實現。
「大數據」的影響,增加了對信息管理專家的需求,甲骨文,IBM,微軟和SAP花了超過15億美元的在軟體智能數據管理和分析的專業公司。這個行業自身價值超過1000億美元,增長近10%,每年兩次,這大概是作為一個整體的軟體業務的快速。 大數據已經出現,因為我們生活在一個社會中有更多的東西。有46億全球行動電話用戶有1億美元和20億人訪問互聯網。
基本上,人們比以往任何時候都與數據或信息交互。 1990年至2005年,全球超過1億人進入中產階級,這意味著越來越多的人,誰收益的這筆錢將成為反過來導致更多的識字信息的增長。思科公司預計,到2013年,在互聯網上流動的交通量將達到每年667艾位元組。
最早提出「大數據」時代已經到來的機構是全球知名咨詢公司麥肯錫。麥肯錫在研究報告中指出,數據已經滲透到每一個行業和業務職能領域,逐漸成為重要的生產因素;而人們對於海量數據的運用將預示著新一波生產率增長和消費者盈餘浪潮的到來。
「麥肯錫的報告發布後,大數據迅速成為了計算機行業爭相傳誦的熱門概念,也引起了金融界的高度關注。」隨著互聯網技術的不斷發展,數據本身是資產,這一點在業界已經形成共識。「如果說雲計算為數據資產提供了保管、訪問的場所和渠道,那麼如何盤活數據資產,使其為國家治理、企業決策乃至個人生活服務,則是大數據的核心議題,也是雲計算內在的靈魂和必然的升級方向。」
事實上,全球互聯網巨頭都已意識到了「大數據」時代,數據的重要意義。包括EMC、惠普(微博)、IBM、微軟(微博)在內的全球IT 巨頭紛紛通過收購「大數據」相關廠商來實現技術整合,亦可見其對「大數據」的重視。
「大數據」作為一個較新的概念,目前尚未直接以專有名詞被我國政府提出來給予政策支持。不過,在12月8日工信部發布的物聯網「十二五」規劃上,把信息處理技術作為4項關鍵技術創新工程之一被提出來,其中包括了海量數據存儲、數據挖掘、圖像視頻智能分析,這都是大數據的重要組成部分。而另外3項關鍵技術創新工程,包括信息感知技術、信息傳輸技術、信息安全技術,也都與「大數據」密切相關。
B. 大數據如何入門
聽說你想要學大數據?你確定你搞清楚概念了嗎?我們來做個小測驗吧:
數據分析師在公司是干什麼的?
大數據和普通數據最大的區別是什麼?
你的日常工作中根本接觸不到大數據,你真正想學的是大數據嗎?
有點蒙圈了吧。魚君正是要幫你在最短的時間內理清這些概念,找准自己前進的方向。
大數據之「大」數據,大家會陌生嗎?不會。我們每天的日常生活都會接觸到數據。淘寶購物時貨比三家的價格,年終考核之後發給我們的獎金,發表在知乎上的文章的評論數量,這些都是數據。
從人們會計數開始,數據就有了,數據分析也是。那麼大數據呢?
說到大數據,你就繞不開互聯網。在互聯網出現之前,雖然政府部門和一些公共事業單位通過日積月累獲得了較大量的數據,但並沒有形成足夠的影響力。直到互聯網產品的出現,由於它收集用戶數據的便利性,通常在一天之內就能夠累計其他行業可能一年才能獲取的數據量。
數據量的升級造成演算法和硬體都必須要升級,操作起來的技術難度也就會提高很多。這個時候,就需要專業的技術和平台來完成存儲,處理和分析大數據的工作。比如說,大家都聽過的Hadoop平台,MapRece演算法。都是大數據時代的產物。
因此,我認為,大數據的核心,就在於大。
有一定規模的互聯網公司都會成立專門的大數據部門來管理自己產品所收集到的大數據。數據量越大,處理難度就越高,相應的,可能挖掘到的內涵也會更多。於是,大數據就成了一個產業,一個火熱的產業。
大數據圈子裡的人在大數據行業這個圈子裡,公司提供的職位大致分為三類:數據分析師,數據產品經理,數據工程師。他們緊密合作,共同驅動公司的數據決策文化。
那麼,著三種職位都是做什麼的?又該怎麼入行呢?
數據分析師
數據分析師,是使用大數據的人。核心是掌握各種數據分析工具和數據分析技能,目標是為公司管理層和產品團隊提供分析報告,幫助他們做決策。
實際工作中,數據會被處理成各種不同的類型提供給數據分析師使用,有比較原始的,有比較簡單好用的。因此,數據分析師需要掌握R, SQL,Excel, Python基礎編程等多種技能,以及熟練掌握常用的數據分析方法。
如果你立志於成為一個數據分析師甚至數據科學家,那麼我強烈建議你進行系統的學習。
數據產品經理
數據產品經理是設計數據產品的人。核心技能是數據需求分析和數據產品的設計,和其他的互聯網產品經理並沒有本質的不同。實際工作中,數據產品經理需要收集不同用戶的數據需求並且設計出好用的數據產品提供給大家,幫助他們「用數據做決定」。
怎麼入門呢?關於具體的進階流程,我希望你聽一下我在一塊聽聽上做的講座《4步讓你成為大數據產品經理》,會為你提供非常全面的介紹。
常見的推薦入門書籍有《人人都是產品經理》,《The DatawareHouse Toolkit》,《Lean Analytics》等等。
數據工程師
數據工程師,簡單分兩種,一類是數據挖掘工程師,另外一類是大數據平台工程師。工程師的基本技能當然是寫代碼,寫高質量的代碼。
數據挖掘工程師主要工作是開發大數據流水線以及和數據分析師一起完成數據挖掘項目,而數據平台工程師主要工作是維護大數據平台。
因此,理工科背景出身,掌握C, C#, Python等編程/腳本語言,熟悉各種基礎演算法即可以勝任。
如何用數據做決策
對於那些並不想轉行進入大數據圈子的人,我們要學的究竟是什麼?
我相信,在我們的日常工作中,特別是業績不佳,找不到突破口的時候,都曾想過能否用數據來幫助自己。因為我們都曾或多或少聽過一些牛逼的數據案例,比如紙尿布與啤酒之類。
舉一個簡單的例子,你經營的餐館現在狀況不佳。你可以自己拍腦袋想一堆的新點子來嘗試改善現狀。你也可以,收集整理數據,通過分析找出根本原因,並提出對應解決方案,從而扭轉局面。後者聽起來似乎更加靠譜一些。
那麼,你該收集什麼數據,做什麼分析,這就是你需要學習的:「如何用數據做決策」。從這個角度講,我認為:
人人都應該是數據分析師
學習系統的數據決策和數據分析思維,我們可以從這篇文章開始:從0到1搭建數據分析知識體系。我自己工作中常用的數據分析方法都被囊括在裡面,如果趨勢分析,多維分解,用戶分群,漏斗分析等等。請不要小看一篇文章,知識在精不在多。
你還可以從一本簡單好讀的《誰說菜鳥不會數據分析》開始搭建你的數據分析思維。
關於數據分析的書籍太多了,眾口難調,隨便一搜就有一大堆推薦。而其中所講的知識和理論其實都是類似的。最終要讓他們發揮作用,還是要和實踐結合起來。
因此,我認為,在自己的生意和工作中多實踐數據分析,多思考,遇到問題多在社群中提問和大家探討,是最好的學習辦法。我自己也一直是這樣踐行的。
帶著問題去學習,是最好的方式。
在這個過程中,隨著你對數據的深入了解,掌握更多的數據分析語言和工具。從Excel到SQL,甚至到R和Python。你所能使用的數據量也會越來越大。但你大可不必一開始就扎入這些工具的學習中,那樣會收效甚微。
C. 大數據如何入門
導讀:
第一章:初識Hadoop
第二章:更高效的WordCount
第三章:把別處的數據搞到Hadoop上
第四章:把Hadoop上的數據搞到別處去
第五章:快一點吧,我的SQL
第六章:一夫多妻制
第七章:越來越多的分析任務
第八章:我的數據要實時
第九章:我的數據要對外
第十章:牛逼高大上的機器學習
經常有初學者會問,自己想往大數據方向發展,該學哪些技術,學習路線是什麼樣的,覺得大數據很火,就業很好,薪資很高……首先,如果你確定了想往這個方面發展,先考慮自己的過去從業經歷、專業、興趣是什麼。計算機專業——操作系統、硬體、網路、伺服器?軟體專業——軟體開發、編程、寫代碼?還是數學、統計學專業——對數據和數字特別感興趣?
其實這就是想告訴你大數據的三個發展方向,平台搭建/優化/運維/監控、大數據開發/設計/架構、數據分析/挖掘。
先扯一下大數據的4V特徵:
數據量大,TB->PB
數據類型繁多,結構化、非結構化文本、日誌、視頻、圖片、地理位置等;
商業價值高,但是這種價值需要在海量數據之上,通過數據分析與機器學習更快速的挖掘出來;
處理時效性高,海量數據的處理需求不再局限在離線計算當中。
Hadoop 1.0、Hadoop 2.0
MapRece、HDFS
NameNode、DataNode
JobTracker、TaskTracker
Yarn、ResourceManager、NodeManager
HDFS目錄操作命令;
上傳、下載文件命令;
提交運行MapRece示常式序;
打開Hadoop WEB界面,查看Job運行狀態,查看Job運行日誌。
知道Hadoop的系統日誌在哪裡。
- SELECT word,COUNT(1) FROM wordcount GROUP BY word;
- 這時,使用Flume採集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個消費者同時消費,其中一個消費者,就是將數據同步到HDFS。
- 至此,大數據平台底層架構已經成型了,其中包括了數據採集、數據存儲與計算(離線和實時)、數據同步、任務調度與監控這幾大模塊。接下來是時候考慮如何更好的對外提供數據了。
現如今,正式為了應對大數據的這幾個特點,開源的大數據框架越來越多,越來越強,先列舉一些常見的:
文件存儲: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,請使用第一步和第二步,能讓它跑起來就行。
建議先使用安裝包命令行安裝,不要使用管理工具安裝。
另外:Hadoop1.0知道它就行了,現在都用Hadoop 2.0.
1.4嘗試使用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的話:
這便是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,提交運行。
此時,你的認知中「大數據平台」是這樣的:
總結:
為什麼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提供了一些封裝好的演算法,以及特徵處理、特徵選擇的方法。
那麼把機器學習部分加進 「大數據平台」。
D. 大數據學習需要哪些課程
主修課程:面向對象程序設計、Hadoop實用技術、數據挖掘、機器學習、數據統計分析、高等數學、Python編程、JAVA編程、資料庫技術、Web開發、Linux操作系統、大數據平台搭建及運維、大數據應用開發、可視化設計與開發等
E. 怎樣學習大數據
首先我們要了解Java語言和Linux操作系統,這兩個是學習大數據的基礎,學習的順序不分前後。
Java :只要了解一些基礎即可,做大數據不需要很深的Java 技術,學java SE 就相當於有學習大數據基礎。
Linux:因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的扎實一些,學好Linux對你快速掌握大數據相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置,能少踩很多坑,學會shell就能看懂腳本這樣能更容易理解和配置大數據集群。還能讓你對以後新出的大數據技術學習起來更快。
Hadoop:這是現在流行的大數據處理平台幾乎已經成為大數據的代名詞,所以這個是必學的。Hadoop裡麵包括幾個組件HDFS、MapRece和YARN,HDFS是存儲數據的地方就像我們電腦的硬碟一樣文件都存儲在這個上面,MapRece是對數據進行處理計算的,它有個特點就是不管多大的數據只要給它時間它就能把數據跑完,但是時間可能不是很快所以它叫數據的批處理。
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的。
F. 從java開發轉到大數據開發,去哪裡學習比較好
現在幾乎所有的IT培訓機構的大數據培訓都是先學javase,隨便一個都可以讓之前有java基礎的直接學習大數據的開發。這沒有什麼稀奇的,不過真正好的確實是少見。
G. 大數據培訓學校學哪些內容
以下介紹的課程主要針對零基礎大數據工程師每個階段進行通俗易懂簡易介紹,方面大家更好的了解大數據學習課程。課程框架是科多大數據的零基礎大數據工程師課程。
一、 第一階段:靜態網頁基礎(html+CSS)
1. 難易程度:一顆星
2. 課時量(技術知識點+階段項目任務+綜合能力)
3. 主要技術包括:html常用標簽、CSS常見布局、樣式、定位等、靜態頁面的設計製作方式等
4. 描述如下:
從技術層面來說,該階段使用的技術代碼很簡單、易於學習、方便理解。從後期課程層來說,因為我們重點是大數據,但前期需要鍛煉編程技術與思維。經過我們多年開發和授課的項目經理分析,滿足這兩點,目前市場上最好理解和掌握的技術是J2EE,但J2EE又離不開頁面技術。所以第一階段我們的重點是頁面技術。採用市場上主流的HTMl+CSS。
二、 第二階段:JavaSE+JavaWeb
1. 難易程度:兩顆星
2. 課時量(技術知識點+階段項目任務+綜合能力)
3. 主要技術包括:java基礎語法、java面向對象(類、對象、封裝、繼承、多態、抽象類、介面、常見類、內部類、常見修飾符等)、異常、集合、文件、IO、MYSQL(基本SQL語句操作、多表查詢、子查詢、存儲過程、事務、分布式事務)JDBC、線程、反射、Socket編程、枚舉、泛型、設計模式
4. 描述如下:
稱為Java基礎,由淺入深的技術點、真實商業項目模塊分析、多種存儲方式的設計
與實現。該階段是前四個階段最最重要的階段,因為後面所有階段的都要基於此階段,也是學習大數據緊密度最高的階段。本階段將第一次接觸團隊開發、產出具有前後台(第一階段技術+第二階段的技術綜合應用)的真實項目。
三、 第三階段:前端框架
1. 難易程序:兩星
2. 課時量(技術知識點+階段項目任務+綜合能力):64課時
3. 主要技術包括:Java、Jquery、註解反射一起使用,XML以及XML解析、解析dom4j、jxab、jdk8.0新特性、SVN、Maven、easyui
4. 描述如下:
前兩個階段的基礎上化靜為動,可以實現讓我們網頁內容更加的豐富,當然如果從市場人員層面來說,有專業的前端設計人員,我們設計本階段的目標在於前端的技術可以更直觀的鍛煉人的思維和設計能力。同時我們也將第二階段的高級特性融入到本階段。使學習者更上一層樓。
四、 第四階段:企業級開發框架
1. 難易程序:三顆星
2. 課時量(技術知識點+階段項目任務+綜合能力)
3. 主要技術包括:Hibernate、Spring、SpringMVC、log4j slf4j 整合、myBatis、struts2、Shiro、redis、流程引擎activity, 爬蟲技術nutch,lucene,webServiceCXF、Tomcat集群和熱備、MySQL讀寫分離
4. 描述如下:
如果將整個JAVA課程比作一個糕點店,那前面三個階段可以做出一個武大郎燒餅(因為是純手工-太麻煩),而學習框架是可以開一個星巴克(高科技設備-省時省力)。從J2EE開發工程師的任職要求來說,該階段所用到的技術是必須掌握,而我們所授的課程是高於市場(市場上主流三大框架,我們進行七大框架技術傳授)、而且有真實的商業項目驅動。需求文檔、概要設計、詳細設計、源碼測試、部署、安裝手冊等都會進行講解。
五、 第五階段: 初識大數據
1. 難易程度:三顆星
2. 課時量(技術知識點+階段項目任務+綜合能力)
3. 主要技術包括:大數據前篇(什麼是大數據,應用場景,如何學習大資料庫,虛擬機概念和安裝等)、Linux常見命令(文件管理、系統管理、磁碟管理)、Linux Shell編程(SHELL變數、循環控制、應用)、Hadoop入門(Hadoop組成、單機版環境、目錄結構、HDFS界面、MR界面、簡單的SHELL、java訪問hadoop)、HDFS(簡介、SHELL、IDEA開發工具使用、全分布式集群搭建)、MapRece應用(中間計算過程、Java操作MapRece、程序運行、日誌監控)、Hadoop高級應用(YARN框架介紹、配置項與優化、CDH簡介、環境搭建)、擴展(MAP 端優化,COMBINER 使用方法見,TOP K,SQOOP導出,其它虛擬機VM的快照,許可權管理命令,AWK 與 SED命令)
4. 描述如下:
該階段設計是為了讓新人能夠對大數據有一個相對的大概念怎麼相對呢?在前置課程JAVA的學習過後能夠理解程序在單機的電腦上是如何運行的。現在,大數據呢?大數據是將程序運行在大規模機器的集群中處理。大數據當然是要處理數據,所以同樣,數據的存儲從單機存儲變為多機器大規模的集群存儲。
(你問我什麼是集群?好,我有一大鍋飯,我一個人可以吃完,但是要很久,現在我叫大家一起吃。一個人的時候叫人,人多了呢? 是不是叫人群啊!)
那麼大數據可以初略的分為: 大數據存儲和大數據處理所以在這個階段中呢,我們課程設計了大數據的標准:HADOOP大數據的運行呢並不是在咋們經常使用的WINDOWS 7或者W10上面,而是現在使用最廣泛的系統:LINUX。
六、 第六階段:大數據資料庫
1. 難易程度:四顆星
2. 課時量(技術知識點+階段項目任務+綜合能力)
3. 主要技術包括:Hive入門(Hive簡介、Hive使用場景、環境搭建、架構說明、工作機制)、Hive Shell編程(建表、查詢語句、分區與分桶、索引管理和視圖)、Hive高級應用(DISTINCT實現、groupby、join、sql轉化原理、java編程、配置和優化)、hbase入門、Hbase SHELL編程(DDL、DML、Java操作建表、查詢、壓縮、過濾器)、細說Hbase模塊(REGION、HREGION SERVER、HMASTER、ZOOKEEPER簡介、ZOOKEEPER配置、Hbase與Zookeeper集成)、HBASE高級特性(讀寫流程、數據模型、模式設計讀寫熱點、優化與配置)
4. 描述如下:
該階段設計是為了讓大家在理解大數據如何處理大規模的數據的同時。簡化咋們的編寫程序時間,同時提高讀取速度。
怎麼簡化呢?在第一階段中,如果需要進行復雜的業務關聯與數據挖掘,自行編寫MR程序是非常繁雜的。所以在這一階段中我們引入了HIVE,大數據中的數據倉庫。這里有一個關鍵字,數據倉庫。我知道你要問我,所以我先說,數據倉庫呢用來做數據挖掘分析的,通常是一個超大的數據中心,存儲這些數據的呢,一般為ORACLE,DB2,等大型資料庫,這些資料庫通常用作實時的在線業務。
總之,要基於數據倉庫分析數據呢速度是相對較慢的。但是方便在於只要熟悉SQL,學習起來相對簡單,而HIVE呢就是這樣一種工具,基於大數據的SQL查詢工具,這一階段呢還包括HBASE,它為大數據裡面的資料庫。納悶了,不是學了一種叫做HIVE的數據「倉庫」了么?HIVE是基於MR的所以查詢起來相當慢,HBASE呢基於大數據可以做到實時的數據查詢。一個主分析,另一個主查詢
七、 第七階段:實時數據採集
1. 難易程序:四顆星
2. 課時量(技術知識點+階段項目任務+綜合能力)
3. 主要技術包括:Flume日誌採集,KAFKA入門(消息隊列、應用場景、集群搭建)、KAFKA詳解(分區、主題、接受者、發送者、與ZOOKEEPER集成、Shell開發、Shell調試)、KAFKA高級使用(java開發、主要配置、優化項目)、數據可視化(圖形與圖表介紹、CHARTS工具分類、柱狀圖與餅圖、3D圖與地圖)、STORM入門(設計思想、應用場景、處理過程、集群安裝)、STROM開發(STROM MVN開發、編寫STORM本地程序)、STORM進階(java開發、主要配置、優化項目)、KAFKA非同步發送與批量發送時效,KAFKA全局消息有序,STORM多並發優化
4. 描述如下:
前面的階段數據來源是基於已經存在的大規模數據集來做的,數據處理與分析過後的結果是存在一定延時的,通常處理的數據為前一天的數據。
舉例場景:網站防盜鏈,客戶賬戶異常,實時徵信,遇到這些場景基於前一天的數據分析出來過後呢?是否太晚了。所以在本階段中我們引入了實時的數據採集與分析。主要包括了:FLUME實時數據採集,採集的來源支持非常廣泛,KAFKA數據數據接收與發送,STORM實時數據處理,數據處理秒級別
八、 第八階段:SPARK數據分析
1. 難易程序:五顆星
2. 課時量(技術知識點+階段項目任務+綜合能力)
3. 主要技術包括:SCALA入門(數據類型、運算符、控制語句、基礎函數)、SCALA進階(數據結構、類、對象、特質、模式匹配、正則表達式)、SCALA高級使用(高階函數、科里函數、偏函數、尾迭代、自帶高階函數等)、SPARK入門(環境搭建、基礎結構、運行模式)、Spark數據集與編程模型、SPARK SQL、SPARK 進階(DATA FRAME、DATASET、SPARK STREAMING原理、SPARK STREAMING支持源、集成KAFKA與SOCKET、編程模型)、SPARK高級編程(Spark-GraphX、Spark-Mllib機器學習)、SPARK高級應用(系統架構、主要配置和性能優化、故障與階段恢復)、SPARK ML KMEANS演算法,SCALA 隱式轉化高級特性
4. 描述如下:
同樣先說前面的階段,主要是第一階段。HADOOP呢在分析速度上基於MR的大規模數據集相對來說還是挺慢的,包括機器學習,人工智慧等。而且不適合做迭代計算。SPARK呢在分析上是作為MR的替代產品,怎麼替代呢? 先說他們的運行機制,HADOOP基於磁碟存儲分析,而SPARK基於內存分析。我這么說你可能不懂,再形象一點,就像你要坐火車從北京到上海,MR就是綠皮火車,而SPARK是高鐵或者磁懸浮。而SPARK呢是基於SCALA語言開發的,當然對SCALA支持最好,所以課程中先學習SCALA開發語言。
在科多大數據課程的設計方面,市面上的職位要求技術,基本全覆蓋。而且並不是單純的為了覆蓋職位要求,而是本身課程從前到後就是一個完整的大數據項目流程,一環扣一環。
比如從歷史數據的存儲,分析(HADOOP,HIVE,HBASE),到實時的數據存儲(FLUME,KAFKA),分析(STORM,SPARK),這些在真實的項目中都是相互依賴存在的。
H. 大數據培訓課程大綱要學什麼課程
課綱不一樣,看是大數據開發還是大數據分析了,我學的大數據分析可視化,學的主要有Python入門、sql、oracle、tableau、帆軟、Informatica、Excel等等
我剛出來半年,視頻錄播可能還不算落後,有視頻可***
I. 大數據學習一般都學什麼
您好,大數據學習一般分為6個階段
第一階段
JavaSE基礎核心
第二階段內
資料庫關鍵技術容
第三階段
大數據基礎核心
第四階段
Spark生態體系框架&大數據精選項目
第五階段
Spark生態體系框架&企業無縫對接項目
第六階段
Flink流式數據處理框架
大數據是最近幾年新興的專業,發展的前景是非常好的,選擇大數據是沒有錯的!