1. 發現公司里的大數據開發掙得很多,想轉行,
您好:
大數據來技術前景我們是毋自庸置疑的,而對於學習更是爭先恐後。在這些人中,不乏有已經在IT圈混跡好幾年的程序員,自然也有初出茅廬的零基礎小白。說實話,大數據不比編程學習,還是需要一定的基礎的,時間起碼需要半年左右。
想要成為一個優秀的大數據人才並不容易,你不僅需要系統的學習理論知識,熟練掌握技能技巧,還需要具備一定的開發經驗,而這些僅靠自學是遠遠不夠的,比較好的方式就是參加專業學習。希望可以幫到你。
2. 大數據如何入門
首先我們要了解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的。
3. 大數據需要學編程嗎
很多人了解到大數據發展的前景和空間很好,適合發展自己的職業生涯,導致很多零基礎的想要加入大數據的學習中
首先,0基礎入門大數據,先從一門編程語言入手。我建議,如果你想往大數據開發方向走,學習Java,想學數據分析或者數據挖掘,那就選Python。
為什麼一開始的入門要學習編程呢?
這就跟問學習為什麼要學會拿畫筆、學習音樂為什麼要練發聲一樣,因為它是基礎啊!
學習大數據,不能只看數據,不能只設計演算法,關鍵是要通過編程把演算法來實現,看演算法是否對數據有一定的效果。如果不學一門語言,你就不能和計算機對話,就沒有辦法讓計算機來處理數據,也就不能證明你的想法和演算法的有效性和准確性。
既然編程是基礎,重要性就不用我在多說了吧,一定要學好哦。
0基礎學習大數據需要Java基礎
Java:開發需求最多的編程語言之一,可以從事網站開發、桌面程序設計、游戲開發、安卓後台開發、全棧開發等。它可以說是大數據最基礎的編程語言,一是大數據的本質是海量數據的計算,查詢與存儲,後台開發很容易接觸到大數據量存取的應用場景;二是Java天然的優勢,大數據的組件很多是用Java開發的。
零基礎小白想學習大數據,需要從Java基礎開始學起,可以把Java語言作為第一個入門語言。一般來說,學會JavaSE就可以了,但能掌握JavaEE的話會更好。
JavaSE:變數、循環、if等等;面向對象;I/O輸入和輸出(HDFS會用到);反射、泛型,MR查詢;JDBC:操作關系型資料庫(RDBMS)(HIVE會用到)。
大數據需要學習Linux系統管理、Shell編程設計、Maven
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。Shell是一個用C語言編寫的程序,它是用戶使用Linux的橋梁;Shell既是一種命令語言,又是一種程序設計語言。Shell是一個命令解釋器,解釋執行用戶所輸入的命令和程序。Maven是一個項目管理工具,可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理。
大數據技術往往運行在Linux環境下,大數據的分布式集群(Hadoop,Spark)都是搭建在多台Linux系統上,對集群的執行命令都是在Linux終端窗口輸入......想從事大數據相關工作,需要掌握Linux系統操作方法和相關命令。
4. 我也已經25歲其實就有轉行的打算了,想轉數據分析大數據行業,我大學本科是和這個專業相關的,
讀研期間多跟著導師做項目,有些導師手上有很多橫向項目,是參與實踐回的良好途徑,其實有人答讀研期間跟上班一樣忙,不要讓學校時光虛度。另外,你年齡不小了,可以在讀書期間思考以後就業的問題,讀書時成家政策也支持,當然有合適的結婚對象才行。
5. hadoop作用
1.hadoop有三個主要的核心組件:HDFS(分布式文件存儲)、MAPREDUCE(分布式的計算)、YARN(資源調度),現在雲計算包括大數據和虛擬化進行支撐。
在HADOOP(hdfs、MAPREDUCE、yarn)大數據處理技術框架,擅長離線數據分析.
Zookeeper 分布式協調服務基礎組件,Hbase 分布式海量資料庫,離線分析和在線業務處理。
Hive sql 數據倉庫工具,使用方便,功能豐富,基於MR延遲大,可以方便對數據的分析,並且數據的處理可以自定義方法進行操作,簡單方便。
Sqoop數據導入導出工具,將數據從數據導入Hive,將Hive導入資料庫等操作。
Flume數據採集框架,可以從多種源讀取數據。
Azkaban對操作進行管理,比如定時腳本執行,有圖形化界面,上傳job簡單,只需要將腳本打成bao,可直接上傳。
2.hadoop的可以做離散日誌分析,一般流程是:
將web中的數據取過來【通過flume】,然後通過預處理【maprece,一般只是使用map就可以了】,就是將數據中沒有用處的數據去除掉,將數據轉換【比如說時間的格式,Agent的組合】,並將數據進行處理之後以固定格式輸出,由Hive處理,Hive是作用是將數據轉換出一個表,RTL就是寫SQL的一個過程,將數據進行分析,然後將數據報表統計,這個時候使用的是pig數據分析【hive一般作為庫,pig做分析,我沒有使用pig,因為感覺還沒有hive的HQL處理方便】,最後將含金量最大的數據放入到mysql中,然後將mysql中的數據變為可視圖化的工具。
推薦的使用:當我們瀏覽一各網頁的時候,將數據的值值傳遞給後台保存到log中,後台將數據收集起來,hadoop中的fiume可以將數據拿到放入到HDFS中,原始的數據進行預處理,然後使用HIVE將數據變為表,進行數據的分析,將有價值的數據放入到mysql,作為推薦使用,這個一般是商城,數據的來源也是可以通過多種方式的,比如說隱形圖片、js、日誌等都可以作為採集數據的來源。
3.hadoop中的HDFS有兩個重要的角色:NameNode、datanode,Yarn有兩個主要的主角:ResourceManager和nodeManager.
4.分布式:使用多個節點協同完成一項或者多項業務功能的系統叫做分布式系統,分布式一般使用多個節點組成,包括主節點和從節點,進行分析
5.maprece:是使用較少的代碼,完成對海量數據的處理,比如wordCount,統計單詞的個數。
實現思想:將單詞一個一個的遍歷,然後將單詞加1處理,但是這是集群,那麼就每個節點計算自己節點的數據,然後最後交給一個統計的程序完成就可以了,最後將單詞和結果輸出。
6. hadoop的hdfs的某個目錄裡面有兩個文件然後想進行文件中key對應的value相乘操作
參考wordcount程序,然後修改:
在map階段將key和value分別拿到(和wordcount不同,你這里只需要對每行版按照空格或者\t分隔權分別取到key和value即可,不用想wordcount對value賦值為1),
在rece階段對同一個key的value序列進行相乘(wordcount是對同一個key的序列value進行相加的)。
7. 如何連接hive metastore
最好先啟動metasotre然後再啟動hiveserverhive--servicemetastore-----------StartupHiveEmbeddedhive--servicehiveserver-----------StartupHiveStandalone(如果metastore配置成remote方式那就應該把metastore也啟動)測試standalone,必須用remotemysql那種設置howtoconfigeration,prefertohive--servicehiveserver2---.rts,andcan'.,startingwithHive0.11.0hadoopjar/opt/mapr/hadoop/hadoop-0.20.2/hadoop-0.20.2-dev-examples.jarwordcount/user/root/wcin/user/root/wcout1
8. 零基礎應該如何學習Hadoop
關於Hadoop,首先我們需要了解Hadoop 1.0、Hadoop 2.0、MapRece、HDFS、NameNode、DataNode、JobTracker、TaskTracker、Yarn、ResourceManager、NodeManager。並且還要自己學會如何搭建Hadoop,先讓它跑起來。(建議先使用安裝包命令行安裝,不要使用管理工具安裝。現在都用Hadoop 2.0)
HDFS目錄操作命令;上傳、下載文件命令;提交運行MapRece示常式序;打開Hadoop WEB界面,查看Job運行狀態,查看Job運行日誌。知道Hadoop的系統日誌在哪裡。以上完成之後,就應該去了解他們各個的原理了。例如:MapRece:如何分而治之;HDFS:數據到底在哪裡,究竟什麼才是副本;Yarn到底是什麼,它能幹什麼;NameNode到底在幹些什麼;Resource Manager到底在幹些什麼;
其次,我們可以自己寫一個(照抄也行)WordCount程序,打包並提交到Hadoop運行。你不會Java、Shell、Python都可以,有個東西叫Hadoop Streaming。如果你認真完成了以上幾步,恭喜你,你的一隻腳已經進來了。
再其次,一定要學習SQL,它會對你的工作有很大的幫助。就像是你寫(或者抄)的WordCount一共有幾行代碼,但是你用SQL就非常簡單了,例如:SELECT word,COUNT(1) FROM wordcount GROUP BY word;這便是SQL的魅力,編程需要幾十行,甚至上百行代碼,而SQL一行搞定;使用SQL處理分析Hadoop上的數據,方便、高效、易上手、更是趨勢。不論是離線計算還是實時計算,越來越多的大數據處理框架都在積極提供SQL介面。另外就是SQL On Hadoop之Hive於大數據而言一定要學習的。
最後,學會Hive的基本命令:創建、刪除表;載入數據到表;下載Hive表的數據;MapRece的原理(還是那個經典的題目,一個10G大小的文件,給定1G大小的內存,如何使用Java程序統計出現次數最多的10個單詞及次數);HDFS讀寫數據的流程;向HDFS中PUT數據;從HDFS中下載數據;自己會寫簡單的MapRece程序,運行出現問題,知道在哪裡查看日誌;會寫簡單的Select、Where、group by等SQL語句;Hive SQL轉換成MapRece的大致流程;Hive中常見的語句:創建表、刪除表、往表中載入數據、分區、將表中數據下載到本地。
關於零基礎應該如何學習Hadoop,青藤小編就和您分享到這里了。如果您對大數據工程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。