大數據 - hadoop三臺linux虛擬服務器 - 初始化部署

          搭建hadoop環境java

 

1、解壓Hadoop的安裝包,解壓到modules文件夾中。(安裝包下載地址:http://archive.apache.org/dist/hadoop/core/hadoop-2.7.2/
  $ tar -zxf /softwares/installations/hadoop-2.7.2.tar.gz -C /modules/
  查看hadoop是否是64位:
  在hadoop-2.7.2/lib/native 下,執行file libhadoop.so.1.0.0node


2、刪除/home/admin/modules/hadoop-2.7.2/etc/hadoop目錄下,cmd文件
  $ rm -rf *.cmd
  重命名文件
  $ mv mapred-site.xml.template mapred-site.xmllinux


3、配置文件:/home/admin/modules/hadoop-2.7.2/etc/hadoop
  配置結果:
  Linux01 : namenode、datanode、nodeManager
  Linux02 : resourceManager、datanode、nodeManager
  Linux03 : datanode、nodeManagerweb

  evn文件:把JAVA_HOME 環境變量改成,實際路徑
    hadoop-env.sh
      修改# export JAVA_HOME=$JAVA_HOME
      爲:export JAVA_HOME=/home/admin/modules/jdk1.8.0_191
    mapred-env.sh
      修改# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
      爲:export JAVA_HOME=/home/admin/modules/jdk1.8.0_191
    yarn-env.sh
      修改# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
      爲:export JAVA_HOME=/home/admin/modules/jdk1.8.0_191
  site文件:(參考官網文檔:https://hadoop.apache.org/docs/r2.7.2/
    core-site.xml
      在https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/core-default.xml中,
      fs.defaultFS 是用來配置namenode的路徑的,是namenodeRPC通訊地址。value:hadf://linux01:8020
      RPC是跨進程通訊協議
      hadoop.tmp.dir是用來配置文件最終存儲位置。value:haoop根目錄/hoadoop-data
      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://linux01:8020</value>
        </property>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/home/admin/modules/hadoop-2.7.2/hadoop-data</value>
        </property>
      </configuration>
    hdfs-site.xml
      <configuration>
        <!-- 指定數據冗餘份數,默認3份,會佔用磁盤空間 -->
        <property>
          <name>dfs.replication</name>
          <value>1</value>
        </property>
        <!-- 關閉權限檢查,非hadoop用戶不能夠操做hadoop集羣 -->
        <property>
          <name>dfs.permissions.enabled</name>
          <value>false</value>
        </property>
        <!-- 配置namenode,減小namenode的壓力 -->
        <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>linux03:50090</value>
        </property>
        <!-- namenode網頁地址 -->
        <property>
          <name>dfs.namenode.http-address</name>
          <value>linux01:50070</value>
        </property>
        <!-- 瀏覽hdfs的方式,一種是webhdfs,一種格式https -->
        <property>
          <name>dfs.webhdfs.enabled</name>
          <value>true</value>
        </property>
    </configuration>
  mapred-site.xml
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
      <!-- 配置mapreduce的歷史服務端口,產生的日誌服務 -->
      <property>
        <name>mapreduce.jobhistory.address</name>
        <value>linux01:10020</value>
      </property>
      <!-- 配置mapreduce的歷史服務頁面端口,產生的日誌服務 -->
      <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>linux01:19888</value>
      </property>
    </configuration>
  yarn-site.xml
    <configuration>
      <!-- 是否容許調度mapreduce的shuffle過程 -->
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <!-- 配置mapreduce到linux02 -->
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>linux02</value>
      </property>
      <!-- -->
      <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
      </property>
      <!-- -->
      <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
      </property>
      <!-- -->
      <property>
        <name>yarn.log.server.url</name>
        <value>http://linux01:19888/jobhistory/logs/</value>
      </property>
    </configuration>
  slaves文件:配置三臺從節點,配置三臺虛擬機的名稱shell

    linux01
    linux02
    linux03apache

    配置datanode和nodeManager從節點windows

4、分發,將hadoop安裝包,分發到linux0二、Linux03(在modules目錄,執行瀏覽器

  scp -r hadoop-2.7.2/ linux02:/home/admin/modules
  scp -r hadoop-2.7.2/ linux03:/home/admin/modules
    說明:scp 命令是跨服務器複製文件。安全


5、格式化namenode (在hadoop的根目錄下執行)
  linux01: bin/hdfs namenode -formatbash


6、啓動服務,(在hadoop根目錄執行
  HDFS:
    linux01:$ sbin/start-dfs.sh
    至關於:
    $ sbin/hadoop-daemon.sh start namenode 開namenode的命令
    $ sbin/hadoop-daemon.sh start datanode 開namenode的命令
  YARN: (在resourceManager所在的機器上啓動)
    linux02:$ sbin/start-yarn.sh
  JobHistory:
    linux01:$ sbin/mr-jobhistory-daemon.sh start historyserver

  若是由於斷電關係,形成啓動過程當中,發現NameNode已啓動的提示。

    處理方式:刪除/tmp下namenode對應的pid文件,rm -rf /tmp/hadoop-namenode.pid


7、啓動檢測(若是沒法訪問,請在windows的hosts文件中,配置虛擬機名稱及對應的ip)
  瀏覽器訪問:http://linux01:50070
    檢查概覽overview下的安全模式safemode必定要關閉,若是是打開的,說明有問題,安全模式數據只能讀取,不能寫入。
    datenode節點有三臺服務器
    utilties中輸入hdfs根目錄/

  瀏覽器訪問:http://linux02:8088

    8088是默認端口。點擊左側Notes選項,查看三臺服務器的noteManager是否已是Running狀態,在判斷資源是否不足。

  判斷集羣是否開啓正確,輸入命令 jps
    說明:jps是查看全部java進程的命令

 

8、測試成功後,配置工具腳本

  系統變量與用戶變量

    使用xshell開啓一個遠程回話時,linux01 SSH linux02 默認加載用戶變量配置文件,不會加載系統變量。

      /etc/profile (系統變量)

      /home/admin/.bash_profile (用戶變量)

      /home/admin/.bashrc (用戶變量)

    執行命令,配置系統變量中的環境變量到用戶變量配置文件中:(三臺linux都執行)

      $ cat /etc/profile >> .bashrc (在/home/admin下執行,把profile中內容,追加到.bashrc)

  編寫shell腳本,查看三臺服務器的jsp狀態:

    #!/bin/bash

    # admin爲用戶名。
    for i in admin@linux01 admin@linux02 admin@linux03
    do
      echo "=============$i================"
      ssh $i 'jps'
    done

  編寫shell腳本,在第一臺及其執行腳本,啓動hadoop全部節點:

    #!/bin/bash

    #HDFS
    modules/hadoop-2.7.2/sbin/start-dfs.sh

    #YARN
    ssh admin@linux02 modules/hadoop-2.7.2/sbin/start-yarn.sh

    #JobHistory
    modules/hadoop-2.7.2/sbin//mr-jobhistory-daemon.sh start historyserver

相關文章
相關標籤/搜索