Hadoop系列-Hadoop簡介與運行環境搭建

hadoop簡介

hadoop主要是解決海量數據的存儲和海量數據的分析計算問題,狹義上來說,hadoop最擅長做海量離線的日誌分析;廣義上來說,hadoop還是指一個更加廣泛的概念--hadoop生態圈。

hadoop 核心

HDFS:分佈式文件系統
YARN:資源管理調度系統
Mapreduce:分佈式運算框架

hadoop有三個發行版本:Apache、Cloudrea、Hortonworks。
Apache 版本最原始(最基礎)的版本,對於入門學習最好。
Cloudera 在大型互聯網企業中用的較多。
Hortonworks 文檔較好。

選擇hadoop的優勢(4高)

  1. 高可靠性: Hadoop底層維護多個數據副本, 所以即使Hadoop某個計算元素或存儲出現故障, 也不會導致數據的丟失。
  2. 高擴展性:在集羣間分配任務數據, 可方便的擴展數以千計的節點。
  3. 高效性:在MapReduce的思想下, Hadoop是並行工作的, 以加快任務處理速度。
  4. 高容錯性:能夠自動將失敗的任務重新分配。

Hadoop1.x和Hadoop2.x區別


如圖,在Hadoop1.x時代,Hadoop中的MapReduce同時處理業務邏輯運算和資源的調度, 耦合性較大, 在Hadoop2.x時代, 增加了Yarn。 Yarn只負責資源的調度,MapReduce只負責運算。

HDFS架構

  1. NameNode( nn) :存儲文件的元數據, 如文件名, 文件目錄結構, 文件屬性( 生成時間、 副本數、文件權限) , 以及每個文件的塊列表和塊所在的DataNode等。



  2. DataNode(dn):在本地文件系統存儲文件塊數據, 以及塊數據的校驗和。



(上面四幅圖片是對NameNode和DataNode最形象的比喻,我們可以把NameNode看作是文件的目錄,而DataNode是文件的內容)

  1. Secondary NameNode(2nn):用來監控HDFS狀態的輔助後臺程序, 每隔一段時間獲取HDFS元數據的快照。

MapReduce 架構

MapReduce 將計算過程分爲兩個階段: Map 和 Reduce。其中
1) Map 階段並行處理輸入數據
2) Reduce 階段對 Map 結果進行彙總
如下圖所示的兩個階段:


hadoop運行環境搭建

1. 安裝對應版本的JDK

由於hadoop是安裝的最新版本的3.2.0版本,所以JDK選擇的是1.8.0版本,這個版本一定要注意,安裝之前google一下,否則後邊會出現很多問題。
首先官網下載對應版本的JDK,我是下載到了Downloads目錄下,然後解壓到opt/jvm目錄下(jvm是新建的文件夾,解壓好的文件都放到了這個文件夾中),命令如下:
sudo tar zxvf jdk-8u211-linux-x64.tar.gz -C /opt/jvm

2. 配置JDK的環境變量

切換到JDK所在目錄,運行如下命令:

dreamgeng at dreamgeng-ubuntu in ~ 
$ cd /opt/jvm/jdk1.8.0_211   #切換目錄
dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
$ pwd   
/opt/jvm/jdk1.8.0_211  # pwd獲得JDK路徑
dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
$ sudo vi /etc/profile  # vim編輯/etc/profile文件,將JDK 的路徑添加進去

在 profile 文件末尾添加 JDK 路徑

在 profile 文件末尾添加 JDK 路徑
#JAVA_HOME
export JAVA_HOME=/opt/jvm/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin

讓修改後的文件生效

dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
$ sudo -s source /etc/profile  # 這裏加了-s,網上很多教程是沒有的,但是如果不加會提示找不到source命令的錯誤

到這裏jdk就安裝完成了。

3. 安裝 Hadoop

首先官網下載3.2.0最新版本的hadoop,均下載.tar.gz 版本的,然後和安裝jdk一樣,將其解壓到opt/jvm目錄下,這裏不再重複。

4. 將 Hadoop 添加到環境變量

dreamgeng at dreamgeng-ubuntu in /opt/jvm 
$ cd hadoop-3.2.0
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ pwd
/opt/jvm/hadoop-3.2.0
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ sudo vi /etc/profile
將如下內容添加到/etc/profile文件中
##HADOOP_HOME
export HADOOP_HOME=/opt/jvm/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
保存後退出
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ sudo -s source /etc/profile  # 激活
如果 Hadoop 命令不能用,則需要重啓
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ sync  
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ sudo reboot    
輸入ll可查看Hadoop 目錄結構
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ ll                         
total 228K
drwxr-xr-x 3 dreamgeng      1002 4.0K Jul  7 20:12 bin
drwxrwxr-x 3 dreamgeng dreamgeng 4.0K Jul  8 10:54 data
drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 14:13 etc
drwxr-xr-x 2 dreamgeng      1002 4.0K Jan  8 15:59 include
drwxrwxr-x 2 dreamgeng dreamgeng 4.0K Jul  8 08:47 input
drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 15:58 lib
drwxr-xr-x 4 dreamgeng      1002 4.0K Jan  8 15:59 libexec
-rw-rw-r-- 1 dreamgeng      1002 148K Oct 19  2018 LICENSE.txt
drwxr-xr-x 2 dreamgeng root      4.0K Jul  8 16:00 logs
-rw-rw-r-- 1 dreamgeng      1002  22K Oct 19  2018 NOTICE.txt
drwxr-xr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:12 output
-rw-rw-r-- 1 dreamgeng      1002 1.4K Oct 19  2018 README.txt
drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 14:13 sbin
drwxr-xr-x 4 dreamgeng      1002 4.0K Jan  8 16:32 share
drwxrwxr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:39 wcinput
drwxr-xr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:47 wcoutput

其中重要目錄:
( 1) bin 目錄:存放對 Hadoop 相關服務( HDFS,YARN)進行操作的腳本
( 2) etc 目錄: Hadoop 的配置文件目錄,存放 Hadoop 的配置文件
( 3) lib 目錄:存放 Hadoop 的本地庫(對數據進行壓縮解壓縮功能)
( 4) sbin 目錄:存放啓動或停止 Hadoop 相關服務的腳本
( 5) share 目錄:存放 Hadoop 的依賴 jar 包、 文檔、 和官方案例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章