hadoop分佈式環境搭建

Linux環境準備

使用的是Centos6,VMware15java

關閉防火牆,禁止開機啓動

sudo service iptables stop
sudo chkconfig iptables off
複製代碼

固定虛擬機IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
 內容改成以下:
 DEVICE=eth0
 TYPE=Ethernet
 ONBOOT=yes
 BOOTPROTO=static
 NAME="eth0"
 IPADDR=192.168.140.128(這個要根據本身的機器而定)
 PREFIX=24
 GATEWAY=192.168.140.2(這個要根據本身的機器而定)
 DNS1=192.168.140.2(這個要根據本身的機器而定)
複製代碼

執行 service network restart(若是報錯重啓虛擬機)node

修改hostname

vim /etc/sysconfig/network
改成:HOSTNAME=hadoop01
複製代碼

配置/etc/hosts

vim /etc/hosts
 內容改成:
 192.168.140.128   hadoop01
 192.168.140.129   hadoop02
 192.168.140.130   hadoop03
複製代碼

建立通常用戶hadoop,給他配置密碼,sudo權限

useradd hadoop
passwd hadoop
#sudo 權限
vim /etc/sudoers
 在root    ALL=(ALL)       ALL
 添加hadoop    ALL=(ALL)       NOPASSWD:ALL
 保存時wq!強制保存
複製代碼

在/opt目錄下建立兩個文件夾module和software,並把全部權賦給hadoop

mkdir /opt/module /opt/software
chown hadoop:hadoop/opt/module /opt/software
複製代碼

到此一個符合咱們使用的虛擬機已經完成,既然我要分佈式部署hadoop因此仍是準備3臺爲好。接下來關機克隆便可。linux

關機,快照,克隆

克隆後,將須要更改一下IP和hostname,參考步驟:***固定虛擬機IP***和***修改hostname***的步驟便可web

編輯一個分發腳本,後面方便3臺虛擬機文件的同步

cd ~
vim xsync
#文件內容以下
#!/bin/bash
#1 獲取輸入參數個數,若是沒有參數,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi

#2 獲取文件名稱
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 獲取上級目錄到絕對路徑
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 獲取當前用戶名稱
user=`whoami`

#5 循環
for((host=2; host<4; host++)); do
      echo ------------------- hadoop0$host --------------
      rsync -av $pdir/$fname $user@hadoop0$host:$pdir
done

##受權
chmod +x xsync
  
sudo cp xsync /bin
  
sudo xsync /bin/xsync
複製代碼

配置免密登錄

  1. 生成密鑰對
ssh-keygen -t rsa #三次回車
複製代碼
  1. 發送公鑰到本機
ssh-copy-id hadoop01 #輸入一次密碼
複製代碼
  1. 分別ssh登錄一下全部虛擬機
ssh hadoop02
exit
ssh hadoop03
exit
複製代碼
  1. 把/home/atguigu/.ssh 文件夾發送到集羣全部服務器
xsync /home/hadoop/.ssh
複製代碼

Hadoop配置

在hadoop01機器上安裝Java和Hadoop,並配置環境變量,並分發到集羣其餘機器

  1. 拷貝Java和Hadoop兩個tar包文件到/opt/software,並解壓到 /opt/module
tar -zxvf /opt/software/hadoop-2.7.2.tar.gz -C /opt/module/
tar -zxvf /opt/software/jdk-8u144-linux-x64.tar.gz -C /opt/module/
複製代碼
  1. 配置環境變量
sudo vim /etc/profile
#在文件末尾添加
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
複製代碼
  1. 激活環境變量
source /etc/profile
複製代碼
  1. 分發java,Hadoop到hadoop02,hadoop03上
sudo xsync /etc/profile

#還須要在hadoop02,hadoop03上執行source /etc/profile
複製代碼

配置hadoop相關的xml

如下操做的hadoop相關的配置文件均在/opt/module/hadoop-2.7.2/etc/hadoop中vim

  1. 在hadoop-env.sh,yarn-env.sh,mapred-env.sh文件中配置Java_HOME
#在三個文件中添加
export JAVA_HOME=/opt/module/jdk1.8.0_144
複製代碼
  1. 配置Core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hadoop01:9000</value>
        </property>

        <!-- 指定Hadoop運行時產生文件的存儲目錄 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/module/hadoop-2.7.2/data/tmp</value>
        </property>
複製代碼
  1. 配置hdfs-site.xml
<!-- 數據的副本數量 -->
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <!-- 指定Hadoop輔助名稱節點主機配置 -->
        <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>hadoop03:50090</value>
        </property>
複製代碼
  1. 配置yarn-site.xml
<!-- Site specific YARN configuration properties -->
        <!-- Reducer獲取數據的方式 -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop02</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>

複製代碼
  1. 配置mapred-site.xml
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 歷史服務器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop03:10020</value>
    </property>
    <!-- 歷史服務器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop03:19888</value>
    </property>
複製代碼
  1. 配置Slaves
vim slaves
#內容添加
hadoop01
hadoop02
hadoop03
複製代碼
  1. 分發配置文件
xsync /opt/module/hadoop-2.7.2/etc
複製代碼
  1. 在hadoop01上格式化Namenode ,而後啓動
#經過上面的配置能夠知道hadoop01爲nameNode
hdfs namenode -format
sbin/start-dfs.sh
複製代碼
  1. 在配置了Resourcemanager機器上啓動yarn
#若是是copy個人配置,則是在hadoop02上啓動yarn
sbin/start-yarn.sh
複製代碼

能夠訪問http://hadoop01:50070 驗證 10. 關閉bash

在namenode上執行(hadoop01)
 sbin/stop-dfs.sh  
 在yarn機器上執行(hadoop02)執行
 sbin/stop-yarn.sh 
複製代碼
相關文章
相關標籤/搜索