大數據學習(二)Hadoop簡介+僞分佈安裝配置

爲什麼是Hadoop

  • 高可靠性:Hadoop維護多個數據副本當出現單點故障的時候可以對節點進行重新分佈。
  • 高擴展性:我們可以增加或者減少服務器節點/數據節點。非常適合於現在科技工業的運維。
  • 高效性:Hadoop中的MapReduce採用分佈式計算框架繼續寧數據的處理,速度較快,(當然MapReduce在實際中用的並不多,因爲讀寫硬盤非常的浪費時間,後米娜我們會提到)。
  • 容錯性:第一點我們說到Hadoop會保存多個副本,這也就不用我多說了。

Hadoop組成框圖

我畫了一個圖方便大家理解,當然只需要知道就好,後面我們會詳細說明。

在這裏插入圖片描述

  • Hadoop HDFS:分佈式文件系統
  • Hadoop MapReduce:分佈式計算框架,不過一般用於離線計算,具體原因上一篇blog我提到過,由於需要寫入硬盤導致實時響應做不到。
  • Hadoop YARN:主要負責作業調度,和集羣資源管理的框架。

Hadoop安裝

以下操作在Linux虛擬機上進行(建議紅帽子,或者centos)我使用的紅帽子,可能linux命令以及目錄結構對於不同的linux系統有些許差異

  1. 關閉防火牆
    禁用:systemctl disable firewalld.service
    查看狀態:systemctl status firewalld.service
    對於selinux我們同樣需要關閉
    進入/etc/selinux/config,將SELINUX=enforcing改爲SELINUX=disabled
  2. 修改ip
    gedit或者vi /etc/sysconfig/network-scripts/ifcfg-ens33
    ip地址要看虛擬機的網絡編輯器上面nat模式現實的ip,修夠最後面的字段就好。
BOOTPROTO=static
ONBOOT=yes
IPADDR=AAA.BBB.X.111
GATEWAY=AAA.BBB.X.2
DNS1=8.8.8.8
DNS2=8.8.4.4
NETMASK=255.255.255.0

gedit /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

ps::重啓網卡
命令如下
service network restart

  1. 在虛擬機中找一個地方專門來存放有關大數據方面的軟件,這是一個必備的好習慣。
  2. 安裝jdk(不詳細講了,這個大家查一下很簡單,注意要配置變量)
  3. ip和主機名做映射
  • 修改主機名
    hostnamectlset-hostname主機名
  • IP和主機名關係映射
    vi /etc/hosts
    你虛擬機1的ip bigdata1
    在windows的C:\Windows\System32\drivers\etc路徑下找到hosts並添加
    你虛擬機1的ip bigdata111
  1. 僞分佈部署Hadoop
  • SSH免密登陸(不配置的話啓動一次集羣需要輸入好幾次密碼)

生成公鑰和私鑰:
ssh-keygen -t rsa然後敲(三個回車),就會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)將公鑰拷貝到要免密登錄的目標機器上ssh-copy-id 主機名1(這裏寫本身的虛擬機1
的名字就好)

.ssh文件夾下的文件功能解釋
(1)~/.ssh/known_hosts:記錄ssh訪問過計算機的公鑰(public key)
(2)id_rsa:生成的私鑰
(3)id_rsa.pub:生成的公鑰
(4)authorized_keys:存放授權過得無祕登錄服務器公鑰
  1. 在官網上下載Hadoop,版本選擇2.7.3就好,當然別的版本也可以。
    下載好後通過 tar -zxvf 命令解壓到一個你自定義的專門存放解壓後的軟件的目錄。
  2. 開始僞分佈的配置
  • 進入/opt/moudle/hadoop-2.7.3/etc/hadoop目錄的core-site.xml文件
<!-- 指定HDFS中NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://當前主機的主機名:9000</value>
</property>
<!-- 指定hadoop運行時產生文件的存儲目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.X.X/data/tmp</value>
</property>
  • 進入/opt/moudle/hadoop-2.7.3/etc/hadoop目錄的hdfs-site.xml文件
<!--數據冗餘數-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--secondary的地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>當前主機的主機名:50090</value>
<!--由於是僞分佈式所以這裏我們依然使用本機作爲secondary節點的地址-->
</property>
<!--關閉權限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
  • 依然是這個路徑下的yarn-site.xml文件
<!-- reducer獲取數據的方式-->
<property> 
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>依然是當前的主機名</value>
</property>
<!-- 日誌聚集功能使能-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日誌保留時間設置7天(秒) 當然時間可以自己定義-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
  • 還是當前的路徑在修改最後一個文件mapred-site.xml
<!-- 指定mr運行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--歷史服務器的地址-->
<property>    
<name>mapreduce.jobhistory.address</name>    
<value>主機名:10020</value>
</property>
<!--歷史服務器頁面的地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>主機名:19888</value>
</property>
  • 下一步,我們要爲hadoop僞分佈生態配置jdk環境

我們還是如上的路徑找到
hadoop-env.sh yarn-env.sh mapred-env.sh這三個配置文件加上下面這一句話
export JAVA_HOME=自己jdk的安裝路徑

到目前爲止僞分佈的配置工作就已經完成了。由於是第一次啓動,所以先要格式化namenode。提到namenode大家可能有一些陌生,所以我要插敘一下Hadoop生態的基本架構了。後面第三講我會詳細解釋,現在我簡單提一下爲了大家能夠理解。

    什麼是namenode呢,我們插播一下Hadoop生態,首先我們知道Hadoop是非常出色的分佈式框架,
同時我們以後會經常提到集羣這個詞語,在正常的生產中,Hadoop回搭建在數以十、百計的服務器上,
那麼我們將每個服務器都叫做一個節點,也就是node。那麼namenode呢,嗯,就是node的老大,
不過只是其中的一個老大。因爲後面還有yarn的老大,hinv的老大,spark的老大,有可能是同一個node,
也可能不是一個node。
    先這麼理解就好。

所以格式化這麼重要的步驟就一定要在老大機上進行了。哈哈
我們/opt/moudle/hadoop-2.7.3/bin中執行 hdfs namenode -format命令進行格式化,因爲僞分佈就是將老大和小弟都放在一臺機子上了,所以就直接進行格式化就行,在完全分佈的時候我們要切換到namenode上去執行這個命令。格式化完成後,下次啓動集羣就不需要再次格式化了。

  1. 啓動集羣

啓動集羣得命令:
Namenode的主節點:sbin/start-dfs.sh
Yarn的主節點:sbin/stop-yarn.sh
然後我們輸入jps命令查看如圖
在這裏插入圖片描述
在這裏插入圖片描述
這裏我是全分佈所以會有第一幅主節點和第二幅分節點的情況。但是僞分佈肯定是在一臺機器上所以只要你有上面的所有的東西就可以了,數量不一定會一樣。具體的到底每個代表什麼意思我會在下一講說明白。
總之如果你看到了上面的東西那麼祝賀你,僞分佈已經成功地在你的機器上運行了起來。、

題外話,大家千萬注意不要直接掛其虛擬機,一定要在之前關閉集羣,否則下次就會出現錯誤,我吃了不少虧了,在這裏提醒大家。停止集羣的命令是
ps:stop-all.sh

我們第三講見。

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