大數據Hadoop學習之搭建hadoop平臺(2.2)

關於大數據,一看就懂,一懂就懵。html

1、概述java

  本文介紹如何搭建hadoop分佈式集羣環境,前面文章已經介紹瞭如何搭建hadoop單機環境和僞分佈式環境,如須要,請參看:大數據Hadoop學習之搭建hadoop平臺(2.1)。hadoop獨立環境和僞分佈式環境都沒法發揮hadoop的價值,若想利用hadoop進行一些有價值的工做,必須搭建hadoop分佈式集羣環境。node

  下文以三臺虛擬機爲基礎搭建集羣環境,系統版本爲CentOS-7,虛擬機地址分別爲:192.168.1.10六、192.168.1.10九、192.168.1.110linux

2、修改主機名web

  編輯network文件,文件位於/etc/sysconfig路徑下,若文件爲空則添加以下內容,如不爲空,則修改:HOSTNAME=namenode,namenode爲修改的主機名。apache

NETWORKING=yes HOSTNAME=namenode
View Code

  修改192.168.1.106的主機名爲namenode、192.168.1.109的主機名爲datanode0一、192.168.1.110的主機名爲datanode02。修改後鍵入命令hostname驗證是否修改爲功,如在192.168.1.106上鍵入hostname後出現namenode則表示修改爲功,以下圖所示:瀏覽器

 

 3、修改hosts安全

  修改hosts是爲了配置前面修改的主機名和IP的映射關係。hosts文件位於/etc路徑下,三臺虛擬機都須要添加以下內容:app

192.168.1.106 namenode 192.168.1.109 datanode01 192.168.1.110   datanode02
修改hosts

  修改後效果如圖所示:框架

4、關閉防火牆(三臺機器均需關閉)

  一、查看防火牆狀態

firewall-cmd --state
查看防火牆狀態

  以下則表示防火牆處於開啓狀態:

  二、關閉防火牆

systemctl stop firewalld.service
臨時關閉防火牆

  再經過service iptables status查看防火牆狀態,以下則表示防火牆已經關閉:

  可是,這僅僅是在當前狀態下關閉防火牆,系統重啓後防火牆仍然會自動開啓,因此須要禁止開機啓動防火牆

systemctl disable firewalld.service
禁止開機啓動防火牆

  執行命令後重啓系統生效。

5、關閉selinux(三臺機器均需關閉)

  selinux是一個防禦程序,相似於防火牆。編輯selinux文件,文件位於:/etc/sysconfig路徑下

  修改SELINUX=enforcing爲SELINUX=disabled,修改後效果以下:

 6、ssh免密碼登陸設置

  hadoop集羣模式下,各主機之間須要互相通訊,好比上傳文件到HDFS文件系統上時,都須要對文件進行備份。因此須要各機器之間可以進行免密碼登陸。

  一、生成祕鑰:輸入命令:ssh-keygen -t rsa,按3次回車以後會生成祕鑰。

  二、拷貝祕鑰到本機和其餘兩臺機器上:分別執行命令:ssh-copy-id 192.168.1.109,ssh-copy-id 192.168.1.110拷貝祕鑰。

  三、免密碼登陸驗證:執行命令ssh 192.168.1.109,若是不須要輸入密碼就能登陸到109機器上,則免密碼登陸設置成功,110也執行相同的測試。

7、安裝JDK並配置環境變量(三臺機器均須要作相同的設置)

  一、建立目錄/home/software,上傳JDK到該目錄下並解壓,此處使用的JDK版本是jdk1.8.0_131

  二、配置環境變量:編輯文件profile,文件位於:/etc目錄下,在文件尾部添加以下內容:

export JAVA_HOME=/home/software/jdk1.8.0_131 export PATH=$PATH:$JAVA_HOME/bin
配置java環境變量

  如圖所示:

 

  三、輸入命令source /etc/profile是文件當即生效

  四、測試:在任意路徑下輸入命令:java -version,若打印出java的版本信息,則表明java安裝成功。以下所示:

8、安裝hadoop集羣

  一、下載hadoop安裝包

    下載地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/,這是hadoop-2.7.3的項目存檔地址。隨着Apache各項目的版本更新,各項目的網站上只上架最新版本和近期歷史重要版本,若是網站下架的項目,須要到Apache存檔地址上尋找,該地址是:https://archive.apache.org/dist/,hadoop存檔地址是:https://archive.apache.org/dist/hadoop/。在hadoop2.7.3版本的地址下,下載hadoop-2.7.3.tar.gz文件包。以下圖所示:

  二、安裝hadoop並配置環境變量

    ①、上傳hadoop安裝包hadoop-2.7.3.tar.gz到/home/software目錄下並解壓,固然,也能夠放在其餘目錄下。

    ②、編輯文件profile,文件位於/etc目錄下,添加以下代碼:

export HADOOP_HOME=/home/software/hadoop-2.7.3
配置hadoop環境變量

      並在PATH變量後追加以下代碼:

$HADOOP_HOME/bin:$HADOOP_HOME/sbin
追加PATH變量

      輸入命令source /etc/profile使profile配置文件當即生效。最終profile文件效果以下所示:

    ③、驗證hadoop環境變量是否配置成功:在任何路徑下輸入命令hadoop,若是打印相關信息,則表明hadoop的安裝和環境變量配置成功,以下圖所示:

    至此,hadoop安裝和配置環境變量成功,可是,這僅僅是進行了基礎的安裝,還須要進行一些配置,使hadoop能真正的工做。

    以上第八小節的操做,在一臺機器上(我使用namenode機器)配置便可,其餘兩臺機器只須要按第②、③點編輯profile文件,由於在接下來的內容中會接着配置hadoop,所有配置完成後,把hadoop-2.7.3文件拷貝到其餘機器便可。

9、hadoop配置

  一、修改hadoop-env.sh文件,文件位於/home/software/hadoop-2.7.3/etc/hadoop目錄下。

    修改java_home,找到代碼 export JAVA_HOME=${JAVA_HOME} ,修改成JAVA_HOME的值,即:export JAVA_HOME=/home/software/jdk1.8.0_131

  二、修改core-site.xml文件,文件一樣位於/home/software/hadoop-2.7.3/etc/hadoop目錄下。

    找到<configuration>節點,在該節點下添加以下代碼:

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.1.106:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/software/hadoop-2.7.3/data/tmp</value>
    </property>
    <property>
        <name>fs.trash.interval</name>
        <value>10080</value>
    </property>
修改core-site.xml

修改後效果以下:

  三、 修改hdfs-site.xml文件,文件一樣位於/home/software/hadoop-2.7.3/etc/hadoop目錄下。

    找到<configuration>節點,在該節點下添加以下代碼:

<property>
    <!-- 設置備份數爲3份 -->
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
    <!-- 關閉HDFS權限 -->
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    <property>
    <!-- 設置namenode http訪問地址 -->
        <name>dfs.namenode.http-address</name>
        <value>192.168.1.106:50070</value>
    </property>
    <property>
    <!-- 設置secondarynamenode http訪問地址 -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.1.110:50090</value>
    </property>
修改hdfs-site.xm

修改後效果以下:

 

  四、修改mapred-site.xml文件,文件一樣位於/home/software/hadoop-2.7.3/etc/hadoop目錄下,可是該路徑下並不存在mapred-site.xml文件,只存在mapred-site.xml.template文件,將mapred-site.xml.template文件修改成mapred-site.xml便可。

    找到<configuration>節點,在該節點下添加以下代碼:

<property>
    <!-- 指定mapreduce使用yarn框架來調度 -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
    <!-- 指定jobhistory地址 -->
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.1.106:10020</value>
    </property>
    <property>
    <!-- 指定jobhistorywebapp地址 -->
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.1.106:19888</value>
    </property>
    <property>
    <!-- 開啓uber模式 -->
        <name>mapreduce.job.ubertask.enable</name>
        <value>true</value>
    </property>
修改mapred-site.xm

修改後效果以下:

 

  五、修改yarn-site.xml文件,文件一樣位於/home/software/hadoop-2.7.3/etc/hadoop目錄下。

    找到<configuration>節點,在該節點下添加以下代碼:

<property>
    <!-- mapreduce爲shuffle -->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
    <!-- 設置resourcemanager主機 -->
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.1.109</value>
    </property>
    <property>
    <!-- 設置web安全任務的主機和端口 -->
        <name>yarn.web-proxy.address</name>
        <value>192.168.1.109:8089</value>
    </property>
    <property>
    <!-- 開啓日誌,能夠在yarn中查看日誌 -->
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
    <!-- 設置yarn刪除日誌的時間 -->
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <property>
    <!-- 設置yarn的內存 -->
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>8192</value>
    </property>
    <property>
    <!-- 設置yarn的cpu爲8核 -->
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>8</value>
    </property>
修改yarn-site.xml

修改後效果以下:

  六、修改slaves文件,文件一樣位於/home/software/hadoop-2.7.3/etc/hadoop目錄下。

    hadoop能夠經過腳本命令在整合集羣範圍內啓動和中止守護進程,可是,須要告訴命令hadoop集羣中有哪些機器,slaves文件的做用正是如此,slaves文件中包含了機器的主機名或者是IP地址,每行表明一個機器信息,該文件列舉了能夠運行datanode和節點管理器(nodemanager)的機器。固然,slaves文件能夠不放在/home/software/hadoop-2.7.3/etc/hadoop目錄下,經過修改hadoop-env.sh配置文件中的HADOOP_SLAVES設置能夠把slaves放到別的地方並賦予一個別名。

    在slaves中添加以下內容:

192.168.1.106
192.168.1.109
192.168.1.110
hadoop集羣主機地址

    修改後效果以下:

  七、分發hadoop-2.7.3

    進行如上配置以後,把hadoop-2.7.3文件拷貝到其餘機器上,注意,先格式化namenode以後再拷貝。

·    ①、格式化hadoop:進入到hadoop-2.7.3文件下,及/home/software/hadoop-2.7.3路徑下,輸入命令:bin/hadoop namenode -format,等待格式化完成,格式化完成以後,在屏幕上打印出來的最後幾行,能夠看到has been successfully formatted表明格式化成功:

    ②、分發hadoop-2.7.3文件到其餘機器上:使用scp -r hadoop-2.7.3 192.168.1.109:/home/software、scp -r hadoop-2.7.3 192.168.1.110:/home/software命令把hadoop-2.7.3文件拷貝到192.168.1.109和192.168.1.110機器上的/home/software路徑下。

  八、 啓動服務

    ①、啓動hdfs服務:在namenode主機上,進入/home/software/hadoop-2.7.3目錄下,輸入命令sbin/start-dfs.sh,等待服務啓動。啓動服務的過程當中,會提示是否肯定鏈接其餘機器(Are you sure you want to continue connecting (yes/no)?),輸入yes便可。啓動成功以後,輸入jps命令能夠看到啓動了NameNode和DataNode守護進程;其餘兩臺機器上分別啓動了DataNode,SecondaryNameNode、DataNode。

    ②、啓動yarn服務:啓動yarn服務須要在192.168.1.109機器上啓動,由於在yarn-site.xml配置文件中,配置了yarn的服務地址爲192.168.1.109。進入目錄/home/software/hadoop-2.7.3下,輸入命令:sbin/start-yarn.sh,等待服務啓動。

    ③、啓動jobhistory:在192.168.1.106機器上啓動jobhistory,進入目錄/home/software/hadoop-2.7.3下,輸入命令:sbin/mr-jobhistory-daemon.sh start historyserver,等待服務啓動。

    ④、啓動proxyserver防禦進程:在192.168.1.109機器上啓動proxyserver,進入目錄/home/software/hadoop-2.7.3下,輸入命令:sbin/yarn-daemon.sh start proxyserver,等待服務啓動。

  九、經過web界面查看hdfs和yarn

    ①、在瀏覽器輸入地址:192.168.1.106:50070,能看到以下hdfs web界面:

    ②、在瀏覽器輸入地址:192.168.1.109:8088,能看到以下yarn web界面:

 

10、結語

  至此,hadoop集羣模式安裝並配置成功,能夠在該集羣環境上部署hadoop的應用,好比hive、hue、impala等應用,使hadoop投入工做。可是,此時的集羣並不健壯,還須要進一步配置hadoop。在接下來的博文中會詳細記錄。

相關文章
相關標籤/搜索