『壹』 零基礎學習 Hadoop 該如何下手
想學習Hadoop,可是苦於自己沒有任何的基礎,不知道該如何下手,也不知道自己能不能學會。其實零基礎學習hadoop,沒有想像的那麼困難。現在我把自己的學習思路整理一下,希望對大家有幫助。
怎麼才能學好Hadoop,進入雲的世界,這里給幾點建議:
1.打好你的java基礎,C我就不說了,那是基本功。
2.詳細研究,理解一下現在大型網站包括Sina,騰訊網(門戶),Weibo,天貓,京東(電商)的架構與實現,先從自己的角度去理解,然後去跟實際情況做比對,提升自己對數據和技術的敏感程度。在這個階段,如果能分門別類的規劃出不同類型網站的需求和使用的特定方向的技術,對「雲」和「大數據」的理解就更加透徹而非表層停留。
3.科班的同學,在學校的以基礎為根基,在公司的以業務為導向,這樣的技術才不盲目,這樣的技術才腳踏實地。對很多人來說,技術都不是一生的職業導向,那麼,提升自己的眼界,站在更高的角度思考問題就顯得尤為重要,從自己,到團隊,公司,再到整個業界,眼界寬廣了,技術也就是你的左膀右臂。
Hadoop分為兩個大塊:HDFS和MapRece。
HDFS - Hadoop Distributed FileSystem。這個概念很好,但是其實我不覺得很實用。但是如果你之後要往Non SQL方面深入的話這個還是很重要,HDFS是HBASE的基礎,Hbase又可以延伸到Big Table,DynamoDB,Mango等。HDFS概念不難,Hadoop The Definitive Guide裡面講的很清楚,看書就好。
MapRece -前面說最好看英文版,因為不管中文怎麼翻譯,Map,Rece都是沒辦法像讀英文那樣容易理解的。這裡面有個YARN的概念,是最最最重要的。MapRece是管數據怎麼流動的,YARN是管集群中的資源怎麼分配的。除了YARN以外,MapRece還有幾個很重要的概念,比如Partition, combine, shuffle, sort,都在書里很小的位置,但是都對理解整個MapRece非常有幫助。
關於Hadoop的使用方式:
感覺現在各個公司使用Hadoop的方式都不一樣,主要我覺得有兩種吧。
第一種是long running cluster形式,比如Yahoo,不要小看這個好像已經沒什麼存在感的公司,Yahoo可是Hadoop的元老之一。這種就是建立一個Data Center,然後有幾個上千Node的Hadoop Cluster一直在運行。比較早期進入Big Data領域的公司一般都在使用或者使用過這種方式。
另一種是只使用MapRece類型。畢竟現在是Cloud時代,比如AWS的Elastic MapRece。這種是把數據存在別的更便宜的地方,比如s3,自己的data center, sql database等等,需要分析數據的時候開啟一個Hadoop Cluster,Hive/Pig/Spark/Presto/Java分析完了就關掉。不用自己做Admin的工作,方便簡潔。
所以個人如果要學Hadoop的話我也建議第二種,AWS有免費試用時間,可以在這上面學習。最重要的是你可以嘗試各種不同的配置對於任務的影響,比如不同的版本,不同的container size,memory大小等等,這對於學習Spark非常有幫助。
我直接是白手起家搞hadoop的,沒有看權威指南,不懂就google之。我開始也沒研究源代碼,我先研究Hadoop是怎麼跑起來的,怎麼工作的。然後過了一段時間,我去看《Hadoop權威指南》,和實踐相印證,上手很快。Hadoop這個課題太大,人家花了幾年時間研究出來的,你想搞個畢設就想剖析清楚,這個有點不現實。
我的建議是,只研究hadoop的一到兩個模塊就行了。在這幾個中間選一兩個研究就可以了。
目前炒的很熱,可以說是「如日中天」,好像不會Hadoop、不知道MapRece就不是搞大規模數據處理似的;貌似資料庫的一些人不喜歡Hadoop。
隨著互聯網或者資料庫數據量的不斷增大,分布式真的可以替代數據中心嗎?這個值得考慮,畢竟框架是Google提出來的,提出時勢必會考慮google自身的技術和經濟能力,試問當下有幾個公司有google的實力?
有人說過(具體名字忘了),在中國,雲計算就是忽悠,是炒作;也有人說,雲計算是必然的發展趨勢,畢竟好多公司都在這么玩。在Copy to China的年代,雲計算到底是什麼,好像很難說清楚吧?
結論:當下很火,找工作絕對不成問題,看這種形式,似乎也是未來發展的方向;但是這種行業預測的問題,大佬們都經常犯錯,我們沒到那個級別,還跟著瞎預測啥啊,好好練好內功,這才是關鍵。
『貳』 零基礎應該如何學習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,青藤小編就和您分享到這里了。如果您對大數據工程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。
『叄』 大數據:Hadoop入門
什麼是大數據:
(1.)大數據是指在一定時間內無法用常規軟體對其內容進行抓取,管理和處理的數據集合,簡而言之就是數據量非常大,大到無法用常規工具進行處理,如關系型資料庫,數據倉庫等。這里「大」是一個什麼量級呢?如在阿里巴巴每天處理數據達到20PB(即20971520GB).
2.大數據的特點:
(1.)體量巨大。按目前的發展趨勢來看,大數據的體量已經到達PB級甚至EB級。
(2.)大數據的數據類型多樣,以非結構化數據為主,如網路雜志,音頻,視屏,圖片,地理位置信息,交易數據,社交數據等。
(3.)價值密度低。有價值的數據僅佔到總數據的一小部分。比如一段視屏中,僅有幾秒的信息是有價值的。
(4.)產生和要求處理速度快。這是大數據區與傳統數據挖掘最顯著的特徵。
3.除此之外還有其他處理系統可以處理大數據。
Hadoop (開源)
Spark(開源)
Storm(開源)
MongoDB(開源)
IBM PureDate(商用)
Oracle Exadata(商用)
SAP Hana(商用)
Teradata AsterData(商用)
EMC GreenPlum(商用)
HP Vertica(商用)
註:這里我們只介紹Hadoop。
二:Hadoop體系結構
Hadoop來源:
Hadoop源於Google在2003到2004年公布的關於GFS(Google File System),MapRece和BigTable的三篇論文,創始人Doug Cutting。Hadoop現在是Apache基金會頂級項目,「
Hadoop」一個虛構的名字。由Doug Cutting的孩子為其黃色玩具大象所命名。
Hadoop的核心:
(1.)HDFS和MapRece是Hadoop的兩大核心。通過HDFS來實現對分布式儲存的底層支持,達到高速並行讀寫與大容量的儲存擴展。
(2.)通過MapRece實現對分布式任務進行處理程序支持,保證高速分區處理數據。
3.Hadoop子項目:
(1.)HDFS:分布式文件系統,整個Hadoop體系的基石。
(2.)MapRece/YARN:並行編程模型。YARN是第二代的MapRece框架,從Hadoop 0.23.01版本後,MapRece被重構,通常也稱為MapRece V2,老MapRece也稱為 MapRece V1。
(3.)Hive:建立在Hadoop上的數據倉庫,提供類似SQL語音的查詢方式,查詢Hadoop中的數據,
(5.)HBase:全稱Hadoop Database,Hadoop的分布式的,面向列的資料庫,來源於Google的關於BigTable的論文,主要用於隨機訪問,實時讀寫的大數據。
(6.)ZooKeeper:是一個為分布式應用所設計的協調服務,主要為用戶提供同步,配置管理,分組和命名等服務,減輕分布式應用程序所承擔的協調任務。
還有其它特別多其它項目這里不做一一解釋了。
三:安裝Hadoop運行環境
用戶創建:
(1.)創建Hadoop用戶組,輸入命令:
groupadd hadoop
(2.)創建hser用戶,輸入命令:
useradd –p hadoop hser
(3.)設置hser的密碼,輸入命令:
passwd hser
按提示輸入兩次密碼
(4.)為hser用戶添加許可權,輸入命令:
#修改許可權
chmod 777 /etc/sudoers
#編輯sudoers
Gedit /etc/sudoers
#還原默認許可權
chmod 440 /etc/sudoers
先修改sudoers 文件許可權,並在文本編輯窗口中查找到行「root ALL=(ALL)」,緊跟後面更新加行「hser ALL=(ALL) ALL」,將hser添加到sudoers。添加完成後切記還原默認許可權,否則系統將不允許使用sudo命令。
(5.)設置好後重啟虛擬機,輸入命令:
Sudo reboot
重啟後切換到hser用戶登錄
安裝JDK
(1.)下載jdk-7u67-linux-x64.rpm,並進入下載目錄。
(2.)運行安裝命令:
Sudo rpm –ivh jdk-7u67-linux-x64.rpm
完成後查看安裝路徑,輸入命令:
Rpm –qa jdk –l
記住該路徑,
(3.)配置環境變數,輸入命令:
Sudo gedit /etc/profile
打開profile文件在文件最下面加入如下內容
export JAVA_HOME=/usr/java/jdk.7.0.67
export CLASSPATH=$ JAVA_HOME/lib:$ CLASSPATH
export PATH=$ JAVA_HOME/bin:$PATH
保存後關閉文件,然後輸入命令使環境變數生效:
Source /etc/profile
(4.)驗證JDK,輸入命令:
Java –version
若出現正確的版本則安裝成功。
配置本機SSH免密碼登錄:
(1.)使用ssh-keygen 生成私鑰與公鑰文件,輸入命令:
ssh-keygen –t rsa
(2.)私鑰留在本機,公鑰發給其它主機(現在是localhost)。輸入命令:
ssh--id localhost
(3.)使用公鑰來登錄輸入命令:
ssh localhost
配置其它主機SSH免密登錄
(1.)克隆兩次。在VMware左側欄中選中虛擬機右擊,在彈出的快捷鍵菜單中選中管理---克隆命令。在克隆類型時選中「創建完整克隆」,單擊「下一步」,按鈕直到完成。
(2.)分別啟動並進入三台虛擬機,使用ifconfig查詢個主機IP地址。
(3.)修改每台主機的hostname及hosts文件。
步驟1:修改hostname,分別在各主機中輸入命令。
Sudo gedit /etc/sysconfig/network
步驟2:修改hosts文件:
sudo gedit /etc/hosts
步驟3:修改三台虛擬機的IP
第一台對應node1虛擬機的IP:192.168.1.130
第二台對應node2虛擬機的IP:192.168.1.131
第三台對應node3虛擬機的IP:192.168.1.132
(4.)由於已經在node1上生成過密鑰對,所有現在只要在node1上輸入命令:
ssh--id node2
ssh--id node3
這樣就可以將node1的公鑰發布到node2,node3。
(5.)測試SSH,在node1上輸入命令:
ssh node2
#退出登錄
exit
ssh node3
exit
四:Hadoop完全分布式安裝
1. Hadoop有三種運行方式:
(1.)單機模式:無須配置,Hadoop被視為一個非分布式模式運行的獨立Java進程
(2.)偽分布式:只有一個節點的集群,這個節點即是Master(主節點,主伺服器)也是Slave(從節點,從伺服器),可在此單節點上以不同的java進程模擬分布式中的各類節點
(3.)完全分布式:對於Hadoop,不同的系統會有不同的節點劃分方式。
2.安裝Hadoop
(1.)獲取Hadoop壓縮包hadoop-2.6.0.tar.gz,下載後可以使用VMWare Tools通過共享文件夾,或者使用Xftp工具傳到node1。進入node1 將壓縮包解壓到/home/hser目錄下,輸入命令:
#進入HOME目錄即:「/home/hser」
cd ~
tar –zxvf hadoop-2.6.0.tar.gz
(2.)重命名hadoop輸入命令:
mv hadoop-2.6.0 hadoop
(3.)配置Hadoop環境變數,輸入命令:
Sudo gedit /etc/profile
將以下腳本加到profile內:
#hadoop
export HADOOP_HOME=/home/hser/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
保存關閉,最後輸入命令使配置生效
source /etc/profile
註:node2,和node3都要按照以上配置進行配置。
3.配置Hadoop
(1.)hadoop-env.sh文件用於指定JDK路徑。輸入命令:
[hser@node1 ~]$ cd ~/hadoop/etc/hadoop
[hser@node1 hadoop]$ gedit hadoop-env.sh
然後增加如下內容指定jDK路徑。
export JAVA_HOME=/usr/java/jdk1.7.0_67
(2.)打開指定JDK路徑,輸入命令:
export JAVA_HOME=/usr/java/jdk1.7.0_67
(4.)core-site.xml:該文件是Hadoop全局配置,打開並在
『肆』 零基礎應該如何學習大數據
首先,學習大數據我們就要認識大數據,大數據(big data),或稱巨量資料,指的是所涉及的資料量規模巨大到無法透過目前主流軟體工具,在合理時間內達到擷取、管理、處理、並整理成為幫助企業經營決策更積極目的的資訊。 大數據的4V特點:Volume(大量)、Velocity(高速)、Variety(多樣)、Veracity(真實性)。
其次,學習有關大數據課程的內容,第一階段:Java語言基礎(只只需要學習Java的標准版JavaSE就可以了,做大數據不需要很深的Java 技術,當然Java怎麼連接資料庫還是要知道);
第二階段:Linux精講(因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的扎實一些,學好Linux對你快速掌握大數據相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置,能少踩很多坑);
第三階段:Hadoop生態系統(這是現在流行的大數據處理平台幾乎已經成為大數據的代名詞,所以這個是必學的。Hadoop裡麵包括幾個組件HDFS、MapRece和YARN,HDFS是存儲數據的地方就像我們電腦的硬碟一樣文件都存儲在這個上面,MapRece是對數據進行處理計算的,它有個特點就是不管多大的數據只要給它時間它就能把數據跑完,但是時間可能不是很快所以它叫數據的批處理。)
第四階段:strom實時開發(torm是一個免費並開源的分布式實時計算系統。利用Storm可以很容易做到可靠地處理無限的數據流,像Hadoop批量處理大數據一樣,Storm可以實時處理數據。Storm簡單,可以使用任何編程語言。)
第五階段:Spark生態體系(它是用來彌補基於MapRece處理數據速度上的缺點,它的特點是把數據裝載到內存中計算而不是去讀慢的要死進化還特別慢的硬碟。特別適合做迭代運算,所以演算法流們特別稀飯它。它是用scala編寫的。);
第六階段:大數據項目實戰(大數據實戰項目可以幫助大家對大數據所學知識更加深刻的了解、認識,提高大數據實踐技術)。
關於零基礎應該如何學習大數據,青藤小編就和您分享到這里了。如果您對大數據工程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。
『伍』 零基礎怎麼學習大數據工程師
1、需要掌握一門計算機的編程語言,因為大數據技術學習前需要一定的Java技術作為基礎支持。
2、只需要學習Java的標准版JavaSE就可以了,像Servlet、JSP、Tomcat都是JavaEE方向的技術在大數據技術里用到的並不多,只需要了解就可以了,當然Java怎麼連接資料庫還是要知道的,像JDBC一定要掌握。
3、因為大數據相關軟體都是在Linux上運行的,所以Linux要學習得扎實一些,學好Linux能夠幫助快速掌握大數據相關技術,能更好地理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置。
『陸』 大數據學習,對於一個零基礎的小白來說難學嗎
雖然現在大數據人工智慧發展的很好,但是自學的話還是很難達到公司要求的,專當初我自學了一屬年的大數據,天天在網上找一些免費的資料和視頻看,但是遇到問題了也沒人能幫我解決的,所以學的很吃力也很慢,後來勉強懂一些後台、hadoop方面的知識,但是只能說是皮毛,只是了解一些簡單的知識,公司照樣不要,後來報了個班集訓了半年,面了2家就找到工作了,當初涉世不深給7千就幹了,後來待沒多久就跳槽了,幾乎工資翻了一倍。所以說啊,自己自學比較浪費時間還學不好,本人的前車之鑒,希望能幫到你
『柒』 零基礎學習大數據怎麼學
【導語】如今大數據發展得可謂是如日中天,各行各業對於大數據的需求也是與日俱增,越來越多的決策、建議、規劃和報告,都要依靠大數據的支撐,學習大數據成了不少人提升或轉行的機會,那麼零基礎學習大數據怎麼學呢?
1、學習大數據我們就要認識大數據,大數據(big
data),或稱巨量資料,指的是所涉及的資料量規模巨大到無法透過目前主流軟體工具,在合理時間內達到擷取、管理、處理、並整理成為幫助企業經營決策更積極目的的資訊。
大數據的4V特點:Volume(大量)、Velocity(高速)、Variety(多樣)、Veracity(真實性)。
2、學習有關大數據課程的內容:
第一階段:Java語言基礎(只只需要學習Java的標准版JavaSE就可以了,做大數據不需要很深的Java
技術,當然Java怎麼連接資料庫還是要知道);
第二階段:Linux精講(因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的扎實一些,學好Linux對你快速掌握大數據相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置,能少踩很多坑);
第三階段:Hadoop生態系統(這是現在流行的大數據處理平台幾乎已經成為大數據的代名詞,所以這個是必學的。Hadoop裡麵包括幾個組件HDFS、MapRece和YARN,HDFS是存儲數據的地方就像我們電腦的硬碟一樣文件都存儲在這個上面,MapRece是對數據進行處理計算的,它有個特點就是不管多大的數據只要給它時間它就能把數據跑完,但是時間可能不是很快所以它叫數據的批處理。)
第四階段:strom實時開發(torm是一個免費並開源的分布式實時計算系統。利用Storm可以很容易做到可靠地處理無限的數據流,像Hadoop批量處理大數據一樣,Storm可以實時處理數據。Storm簡單,可以使用任何編程語言。)
第五階段:Spark生態體系(它是用來彌補基於MapRece處理數據速度上的缺點,它的特點是把數據裝載到內存中計算而不是去讀慢的要死進化還特別慢的硬碟。特別適合做迭代運算,所以演算法流們特別稀飯它。它是用scala編寫的。);
第六階段:大數據項目實戰(大數據實戰項目可以幫助大家對大數據所學知識更加深刻的了解、認識,提高大數據實踐技術)。
關於零基礎學習大數據怎麼學,就給大家介紹到這里了,其實想要學好大數據,成為優秀的大數據工程師,還是需要大家多多進行自我技能提升,多多進行日常問題處理,加油!