1. 程式人生 > >大資料的入門之路——Hadoop基礎學習

大資料的入門之路——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 歡迎大家進群交流討論,學習交流,共同進步。

當真正開始學習的時候難免不知道從哪入手,導致效率低下影響繼續學習的信心。

但最重要的是不知道哪些技術需要重點掌握,學習時頻繁踩坑,最終浪費大量時間,所以有有效資源還是很有必要的。

最後祝福所有遇到瓶疾且不知道怎麼辦的大資料程式設計師們,祝福大家在往後的工作與面試中一切順利。