大資料的入門之路——Hadoop基礎學習
前言
目前人工智慧和大資料火熱,使用的場景也越來越廣,日常開發中前端同學也逐漸接觸了更多與大資料相關的開發需求。因此對大資料知識也有必要進行一些學習理解。
基礎概念
一、資料的儲存:分散式檔案系統(分散式儲存)
二、資料的計算:分部署計算
基礎知識
學習大資料需要具備Java知識基礎及Linux知識基礎
學習路線
(1)Java基礎和Linux基礎
(2)Hadoop的學習:體系結構、原理、程式設計
第一階段:HDFS、MapReduce、HBase(NoSQL資料庫)
第二階段:資料分析引擎 -> Hive、Pig
資料採集引擎 -> Sqoop、Flume
第三階段:HUE:Web管理工具
ZooKeeper:實現Hadoop的HA
Oozie:工作流引擎
(3)Spark的學習
第一階段:Scala程式語言
第二階段:Spark Core -> 基於記憶體、資料的計算
第三階段:Spark SQL -> 類似於mysql 的sql語句
第四階段:Spark Streaming ->進行流式計算:比如:自來水廠
(4)Apache Storm 類似:Spark Streaming ->進行流式計算
NoSQL:Redis基於記憶體的資料庫
HDFS
分散式檔案系統 解決以下問題:
• 硬碟不夠大:多幾塊硬碟,理論上可以無限大
• 資料不夠安全:冗餘度,hdfs預設冗餘為3 ,用水平復制提高效率,傳輸按照資料庫為單位:Hadoop1.x 64M,Hadoop2.x 128M
• 管理員:NameNode 硬碟:DataNode
MapReduce
基礎程式設計模型:把一個大任務拆分成小任務,再進行彙總
• MR任務:Job = Map + Reduce
Map的輸出是Reduce的輸入、MR的輸入和輸出都是在HDFS
MapReduce資料流程分析:
• Map的輸出是Reduce的輸入,Reduce的輸入是Map的集合
歡迎加入大資料交流群:658558542 一起吹水交流學習
HBase
什麼是BigTable?: 把所有的資料儲存到一張表中,採用冗餘 ---> 好處:提高效率
• 因為有了bigtable的思想:NoSQL:HBase資料庫
• HBase基於Hadoop的HDFS的
• 描述HBase的表結構
核心思想是:利用空間換效率
歡迎加入大資料交流群:658558542 一起吹水交流學習
Hadoop環境搭建
環境準備
Linux環境、JDK、http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3.0.0-src.tar.gz
安裝
1、安裝jdk、並配置環境變數
vim /etc/profile 末尾新增 ![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/a9bf2e19410f9b3d38c8b0ca64b2f264.png)
2、解壓hadoop-3.0.0.tar.gz、並配置環境變數
tar -zxvf hadoop-3.0.0.tar.gz -C /usr/local/ mv hadoop-3.0.0/ hadoop
歡迎加入大資料交流群:658558542 一起吹水交流學習
vim /etc/profile 末尾新增
配置
Hadoop有三種安裝模式:
本地模式 :
• 1臺主機
• 不具備HDFS,只能測試MapReduce程式
偽分佈模式:
• 1臺主機
• 具備Hadoop的所有功能,在單機上模擬一個分散式的環境
• (1)HDFS:主:NameNode,資料節點:DataNode
• (2)Yarn:容器,執行MapReduce程式
• 主節點:ResourceManager
• 從節點:NodeManager
全分佈模式:
• 至少3臺
我們以偽分佈模式為例配置:
修改hdfs-site.xml:冗餘度1、許可權檢查false
修改core-site.xml
修改mapred-site.xml
修改yarn-site.xml
格式化NameNode
hdfs namenode -format
看到common.Storage: Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted表示格式化成功
啟動
start-all.sh
(*)HDFS:儲存資料
(*)YARN:
訪問
歡迎加入大資料交流群:658558542 一起吹水交流學習
HDFS: http://192.168.56.102:50070
Yarn: http://192.168.56.102:8088
檢視HDFS管理介面和yarn資源管理系統
歡迎加入大資料交流群:658558542 一起吹水交流學習
基本操作:
HDFS相關命令
MapReduce示例
歡迎加入大資料交流群:658558542 一起吹水交流學習
結果:
歡迎加入大資料交流群:658558542 一起吹水交流學習
如上 一個最簡單的MapReduce示例就執行成功了
思考
Hadoop是基於Java語言的,前端日常開發是用的PHP,在使用、查詢錯誤時還是蠻吃力的。工作之餘還是需要多補充點其它語言的相關知識,程式語言是我們開發、學習的工具,而不應成為限制我們技術成長的瓶頸
為了幫助大家讓學習變得輕鬆、高效,給大家免費分享一大批資料,幫助大家在成為大資料工程師,乃至架構師的路上披荊斬棘。在這裡給大家推薦一個大資料學習交流圈:658558542 歡迎大家進群交流討論,學習交流,共同進步。
當真正開始學習的時候難免不知道從哪入手,導致效率低下影響繼續學習的信心。
但最重要的是不知道哪些技術需要重點掌握,學習時頻繁踩坑,最終浪費大量時間,所以有有效資源還是很有必要的。
最後祝福所有遇到瓶疾且不知道怎麼辦的大資料程式設計師們,祝福大家在往後的工作與面試中一切順利。