10分鐘大數據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

分佈式文件系統 解決以下問題:

1、硬盤不夠大:多幾塊硬盤,理論上可以無限大
2、數據不夠安全:冗餘度,hdfs默認冗餘為3 ,用水平復制提高效率,傳輸按照數據庫為單位:Hadoop1.x 64M,Hadoop2.x 128M

管理員:NameNode 硬盤:DataNode

![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/8ca9f78b244c7f991e73f71fd1e56421.png)

MapReduce

基礎編程模型:把一個大任務拆分成小任務,再進行彙總
MR任務:Job = Map + Reduce
Map的輸出是Reduce的輸入、MR的輸入和輸出都是在HDFS

MapReduce數據流程分析:

Map的輸出是Reduce的輸入,Reduce的輸入是Map的集合
10分鐘大數據Hadoop基礎入門「值得收藏」

HBase

什麼是BigTable?: 把所有的數據保存到一張表中,採用冗餘 ---> 好處:提高效率

1、因為有了bigtable的思想:NoSQL:HBase數據庫
2、HBase基於Hadoop的HDFS的
3、描述HBase的表結構
核心思想是:利用空間換效率
10分鐘大數據Hadoop基礎入門「值得收藏」

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
10分鐘大數據Hadoop基礎入門「值得收藏」

10分鐘大數據Hadoop基礎入門「值得收藏」


vim /etc/profile 末尾添加

10分鐘大數據Hadoop基礎入門「值得收藏」

配置

Hadoop有三種安裝模式:

本地模式:
1臺主機
不具備HDFS,只能測試MapReduce程序
偽分佈模式:
1臺主機
具備Hadoop的所有功能,在單機上模擬一個分佈式的環境
(1)HDFS:主:NameNode,數據節點:DataNode
(2)Yarn:容器,運行MapReduce程序
主節點:ResourceManager
從節點:NodeManager
全分佈模式:
至少3臺

我們以偽分佈模式為例配置:

修改hdfs-site.xml:冗餘度1、權限檢查false

<property>
<name>dfs.replication/<name>
<value>1/<value>/<property><property>
<name>dfs.permissions/<name>
<value>false/<value>/<property>

修改core-site.xml

<property>
<name>fs.defaultFS/<name>
<value>hdfs://192.168.56.102:9000/<value>/<property>
<property>
<name>hadoop.tmp.dir/<name>
<value>/usr/local/hadoop/tmp/<value>/<property>

修改mapred-site.xml

<property>
<name>mapreduce.framework.name/<name>
<value>yar/<value>/<property><property>
<name>yarn.app.mapreduce.am.env/<name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop/<value>/<property><property>
<name>mapreduce.map.env/<name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop/<value>/<property><property>
<name>mapreduce.reduce.env/<name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop/<value>/<property><property>
<name>mapreduce.application.classpath/<name>
<value>
/usr/local/hadoop/etc/hadoop,
/usr/local/hadoop/share/hadoop/common/*,
/usr/local/hadoop/share/hadoop/common/lib/*,
/usr/local/hadoop/share/hadoop/hdfs/*,
/usr/local/hadoop/share/hadoop/hdfs/lib/*,
/usr/local/hadoop/share/hadoop/mapreduce/*,
/usr/local/hadoop/share/hadoop/mapreduce/lib/*,
/usr/local/hadoop/share/hadoop/yarn/*,
/usr/local/hadoop/share/hadoop/yarn/lib/*,
/<value>
/<property>

修改yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname/<name>
<value>192.168.56.102/<value>/<property><property>
<name>yarn.nodemanager.aux-service/<name>
<value>mapreduce_shuffle/<value>/<property>

格式化NameNode


hdfs namenode -format

看到


common.Storage: Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted

表示格式化成功

啟動

start-all.sh
(*)HDFS:存儲數據
(*)YARN:

訪問

(*)命令行
(*)Java Api
(*)WEB Console
HDFS: http://192.168.56.102:50070
Yarn: http://192.168.56.102:8088

10分鐘大數據Hadoop基礎入門「值得收藏」

查看HDFS管理界面和yarn資源管理系統

10分鐘大數據Hadoop基礎入門「值得收藏」


10分鐘大數據Hadoop基礎入門「值得收藏」

基本操作:

HDFS相關命令

-mkdir 在HDFD創建目錄 hdfs dfs -mkdir /data
-ls 查看目錄 hdfs dfs -ls
-ls -R 查看目錄與子目錄 hdfs dfs -ls -R
-put 上傳一個文件 hdfs dfs -put data.txt /data/input
-copyFromLocal 上傳一個文件 與-put一樣
-moveFromLocal 上傳一個文件並刪除本地文件
-copyToLocal 下載文件 hdfs dfs -copyTolocal /data/input/data.txt
-put 下載文件 hdfs dfs -put/data/input/data.txt
-rm 刪除文件 hdfs dfs -rm
-getmerge 將目錄所有文件先合併再下載
-cp 拷貝
-mv 移動
-count 統計目錄下的文件個數
-text、-cat 查看文件
-balancer 平衡操作
10分鐘大數據Hadoop基礎入門「值得收藏」

MapReduce示例

10分鐘大數據Hadoop基礎入門「值得收藏」


結果:

10分鐘大數據Hadoop基礎入門「值得收藏」


如上 一個最簡單的MapReduce示例就執行成功了

思考

Hadoop是基於Java語言的,前端日常開發是用的PHP,在使用、查找錯誤時還是蠻吃力的。工作之餘還是需要多補充點其它語言的相關知識,編程語言是我們開發、學習的工具,而不應成為限制我們技術成長的瓶頸!

大數據開發高薪必備全套資源【免費獲取】

Oracle高級技術總監多年精心創作一套完整課程體系【大數據、人工智能開發必看】,全面助力大數據開發零基礎+入門+提升+項目=高薪

10分鐘大數據Hadoop基礎入門「值得收藏」

「大數據零基礎入門」

10分鐘大數據Hadoop基礎入門「值得收藏」

「大數據架構系統組件」

10分鐘大數據Hadoop基礎入門「值得收藏」

「大數據全套系統工具安裝包」

Java必備工具

10分鐘大數據Hadoop基礎入門「值得收藏」

大數據必備工具

10分鐘大數據Hadoop基礎入門「值得收藏」

「大數據行業必備知資訊」

10分鐘大數據Hadoop基礎入門「值得收藏」

「大數據精品實戰案例」

10分鐘大數據Hadoop基礎入門「值得收藏」

「大數據就業指導方案」

10分鐘大數據Hadoop基礎入門「值得收藏」

最後說一下的,也就是以上教程的獲取方式!

領取方法:

還是那個萬年不變的老規矩

1.評論文章,沒字數限制,一個字都行!

3.私信小編:“大數據開發教程”即可!

謝謝大家,祝大家學習愉快!(拿到教程後一定要好好學習,多練習哦!)


分享到:


相關文章: