Hadoop2.x分佈式集羣環境搭建

引言

大數據已是當今這個時代很是很是熱的一個技術方向,全部的行業都在利用大數據提高業務,包括不少的實體行業,製造企業,都但願利用現有的數據、亦或是能夠爬取的數據。挖掘出更多的商業價值。曾經個人駕校教練就和我說過一個場景,能不能利用大數據和人工智能的技術手段,來分析當地有比較大意向想要學車,考駕照,買車的人。而後把駕校的招生信息或者廣告直接經過必定的渠道(短信、郵件、電話、某某貼吧、論壇、app等等方式),推送給意向準客戶。咱們都知道任何的技術項目,研發就是爲了提高業務下降成本,特別是傳統的研發,下降成本就是最最核心的目的。由於前期的:市場調研、業務產品規劃、戰略部署等更多的是拓展市場以及競爭對手的分析。有點扯遠了。回到大數據,首先得有一個好的框架工具,那就是今天要介紹的Hadoop。同時要基於Hadoop來作大數據開發,就必須把環境給搭建起來。html

CentOS虛擬機

1. VMware安裝

VMware的安裝就不說了,很簡單下一步、下一步就行了。 下載地址:www.vmware.com/products/wo… VMware 14的版本,我用的是windows版本。java

2. CentOS安裝機器NAT網絡配置

CentOS使用6.5的版本node

  • CentOS 鏡像選擇 web

    選擇下載好的系統鏡像,點擊下一步。

  • 硬盤大小配置 apache

    這裏磁盤大小能夠用20G,固然你的硬盤大出天際,也不妨礙你設置個1P,哈哈哈。最小不小於5G,否則後期不夠用。 選擇將虛擬磁盤存儲爲單個文件,這個是爲了方便將建立好的虛擬機移植到其它的電腦,就是俗稱的「我把電腦拷貝的別人家」。

  • 自定義硬件配置vim

其它硬件不變,修改了內存爲2G,由於當前配置的是master主服務器節點,須要的內存大點。這個仍是看你自己物理機器內存的大小,個人機子是16G的,個人分配是422的方式:master節點機子4G內存、另外兩個slave從節點機子2G內存。正常211的配置就夠了,固然實際工做中仍是適當的大些比較好吧。

  • 等待完成安裝windows

  • NAT網絡配置bash

接下來配置虛擬機的網絡,點擊編輯---選擇「虛擬網絡編輯器」服務器

選中VMnet8-->點擊移除網絡-->而後點擊添加網絡。

一樣選擇VMnet8,VM會自動爲咱們分配一個子網。

子網分配後,一樣會出現一個VMnet8的子網項,分配的網段是241。而後選擇使用NAT模式,點擊「NAT設置」,能夠查看到子網的信息:

ip:192.168.241.0、 子網掩碼:255.255.255.0、 網關:192.168.241.2網絡

這些後面配置的時候都須要用到,先作一個記錄

點擊右下角那個電腦圖標的設置,先把網絡適配器切換爲 橋接模式,肯定後,在點擊電腦圖標的設置,切換回NAT模式,這樣來初始化虛擬機網絡。

終端輸入命令:

  1. 進入cd /etc/sysconfig/network-scripts

  2. vim ifcfg-eth0

  3. 將ip、子網掩碼、網關等信息輸入並保存

  4. 輸入/etc/init.d/network restart,重啓網絡服務。

  5. ping www.baidu.com, 以下圖表示能夠訪問網絡。

3. 命令行神器SecureCRT的使用

直接操做VM虛擬機着實麻煩,使用SecureCRT命令行神器,鏈接虛擬機,能夠很方便的操做。 安裝好SecureCRT後,打開Session Manager-->New Session-->降master的機子的ip作爲host輸入,用戶名是你配置的。鏈接的時候會要求輸入密碼,單機save password,方便之後鏈接無需再次輸入密碼。

4. 配置兩臺從節點slave機器

很簡單,先掛起master主節點虛擬機,而後找到虛擬機本地磁盤的路徑文件夾,複製兩個文件夾並重命名以下圖:

而後打開兩個從節點虛擬機,分別修改兩個從節點虛擬機的/etc/sysconfig/network-scripts下的ifcfg-eth0文件的ip爲:slave1(ip:192.168.241.11)、slave21(ip:192.168.241.12) 由於是複製master節點,因此兩個從節點的網卡物理地址是同一個,能夠經過VMware的又是神奇的右下角電腦小圖標的設置,先移除網絡適配器(網卡),而後添加過網絡適配器。切換成「橋接模式」,確認後等待小圖標再次亮起,再次點擊電腦小圖標的設置,將網絡適配器鏈接改爲「NAT模式」。這樣就完成了NAT模式網卡的服務的從新初始化。
最後分別使用:ping www.baidu.com測試從節點機器是否都能上網。

一樣的,在SecureCRT中,新建兩個從節點的session機器。步驟和3master的同樣。

jdk的安裝

jdk我用的是 1.8版本,這個能夠去oracle官方下載。首先要將Windows下的文件拷貝到CentOS中,須要有一個共享文件夾。 選擇電腦小圖標設置,在選項的共享文件夾,啓用文件共享並添加共享文件。

  • 經過 cp拷貝命令將jdk1.8的壓縮包拷貝到/usr/local/src/java目錄下,首先建立java目錄:

    mkdir /usr/local/src/java
    cp jdk* /usr/local/src/java
    拷貝完成後,進入/usr/local/src/java經過tar -zxvf jdk*命令解壓jdk的壓縮包。

  • 編輯配置jdk環境變量

    vim ~/.bashrc

    export JAVA_HOME=/usr/local/src/java/jdk1.8.0_181
    export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib
    export PATH=:$PATH:$JAVA_HOME/bin

    source ~/.bashrc更新環境變量文件(這個文件表示當前用戶組的環境變量)

  • 配置從節點jdk及其環境變量

    把解壓的jdk文件拷貝到另外兩個從節點:

    1. scp -rp /usr/local/src/java 192.168.241.11:/usr/local/src/
      (使用scp 遠程服務器拷貝命令,將java文件夾拷貝到192.168.241.11這個ip的從節點即slave1的/usr/local/src/目錄下)
    2. scp -rp /usr/local/src/java 192.168.241.12:/usr/local/src/
      拷貝到slave2節點機器
    3. 一樣修改~/.bashrc的環境配置,再經過source ~/.bashrc命令更新環境變量。以下圖表示jdk環境安裝成功。

hadoop集羣安裝

1. hadoop安裝配置

  • 一樣和jdk安裝配置同樣,將hadoop2.6.1壓縮包拷貝到/usr/local/src/hadoop/目錄下,並解壓。
  • 修改配置文件hadoop的etc目錄
  1. 在/usr/local/src/hadoop/hadoop-2.6.1目錄下新建tmp文件夾、dfs/name、dfs/data等文件夾。

  2. 修改配置文件:

    vim hadoop-env.sh

    export JAVA_HOME=/usr/local/src/java/jdk1.8.0_152

    vim yarn-env.sh

    export JAVA_HOME=/usr/local/src/java/jdk1.8.0_152

    vim slaves

    slave1
    slave2

    vim core-site.xml

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://192.168.241.10:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/src/hadoop/hadoop-2.6.1/tmp</value>
        </property>
    </configuration>
    複製代碼

    vim hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:9001</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/src/hadoop/hadoop-2.6.1/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/src/hadoop/hadoop-2.6.1/dfs/data</value>
        </property>
        <property>
            <name>dfs.repliction</name>
            <value>3</value>
        </property>
    </configuration>
    複製代碼

    vim mapred-site.xml

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    複製代碼

    vim yarn-site.xml

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
            <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
            <property>
            <name>yarn.resourcemanager.address</name>
            <value>master:8032</value>
        </property>
            <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>master:8030</value>
        </property>
            <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>master:8035</value>
        </property>
            <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>master:8033</value>
        </property>
            <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>master:8088</value>
        </property>
    </configuration>
    複製代碼
  3. 將hadoop加入環境變量

    vim ~/.bashrc

    export HADOOP_HOME=/usr/local/src/hadoop/hadoop-2.6.1
    export PATH=$PATH:$HADOOP_HOME/bin

    source ~/.bashrc 更新環境變量

2. 集羣機器節點網絡配置

將三臺機器的網絡配置到各自的/etc/hosts文件中。

192.168.241.10 master
192.168.241.11 slave1
192.168.241.12 slave2

同時將三臺機器的域名:master、slave一、slave2配置到網絡文件中

vim /etc/sysconfig/network
HOSTNAME=master
HOSTNAME=slave1
HOSTNAME=slave2

並使用hostname和bash命令而後上面域名生效,以下圖:

3. 機器節點之間相互免密登陸切換配置

  • 關閉全部機器節點的防火牆,避免啓動hadoop出現沒必要要的錯誤,難以排查問題

    /etc/init.d/iptables stop
    setenforce 0

  • 創建機器節點間的互信免密登陸

    ssh-keygen
    cd ~/.ssh (進入隱藏的ssh目錄)

  • 將id_rsa.pub公鑰文件中的加密字符串拷貝到authorized_keys文件中。

    將其它節點機器的ssh的id_rsa.pub公鑰文件中的加密字符串拷貝到authorized_keys文件中。這裏個人集羣有三臺節點機器,那就authorized_keys文件中有三個加密字符串,以下圖:

  • 驗證是否經過ssh互信免費登陸成功

    ssh slave1

4. hadoop環境運行測試

  • 啓動集羣,初始格式化Namenode

    hadoop namenode -format

    ./start-all.sh

  • 檢查集羣進程是否都起來

    jps命令

    master

    slave1

    slave2

    這樣表示hadoop分佈式集羣環境搭建成功!!!

相關文章
相關標籤/搜索