Hadoop2.0環境搭建


需准備的前提條件:

1. 安裝JDK(自行安裝)

2. 關閉防火牆(centos):

systemctl stop firewalld.service
systemctl disable firewalld.service

編輯 vim /etc/selinux/config文件,修改為:
SELINUX=disabled

 

源碼包下載:

http://archive.apache.org/dist/hadoop/common/

 

集群環境:

master 192.168.1.99
slave1 192.168.1.100
slave2 192.168.1.101

 

下載安裝包:

# Mater
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.5/hadoop-2.7.5.tar.gz -C /usr/local/src tar -zxvf hadoop-2.7.5.tar.gz mv hadoop-2.7.5 /usr/local/hadoop

 

配置主機

1、編輯/etc/hostname文件

分別配置主機名為master slave1 slave2

2、編輯/etc/hosts,添加對應的域名和ip

cat /etc/hosts
192.168.1.99 master 
192.168.1.100 slave1
192.168.1.101 slave2

3. 配置ssh(自行操作,我這邊配置的用戶是hadoop)

 

修改配置文件:

cd /usr/local/hadoop/etc/hadoop

vim hadoop-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_91

vim yarn-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_91
vim slaves
  slave1
  slave2

vim core-site.xml

<configuration>
    <property>
        <!--指定namenode的地址-->
        <name>fs.defaultFS</name>  
        <value>hdfs://192.168.1.99:9000</value>
    </property>
    <property>
        <!--用來指定使用hadoop時產生文件的存放目錄-->
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <!--讀寫緩存size設定,默認為64M-->
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
</configuration>

vim hdfs-site.xml

<configuration>
    <property>
        <!--指定hdfs中namenode的存儲位置-->
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/dfs/name</value>
    </property>
    <property>
        <!--指定hdfs中datanode的存儲位置-->
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/dfs/data</value>
    </property>
    <property>
        <!--指定hdfs保存數據的副本數量-->
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <!--為secondary指定訪問ip:port-->
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.1.99:9001</value>
    </property>
    <property>
    <!--設置為True就可以直接用namenode的ip:port進行訪問,不需要指定端口-->
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
</configuration>

vim mapred-site.xml

<configuration>
    <property>
        <!--告訴hadoop以后MR(Map/Reduce)運行在YARN上-->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.1.99:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.1.99:19888</value>
    </property>
</configuration>

vim yarn-site.xml

<configuration>
    <property>
        <!--nomenodeManager獲取數據的方式是shuffle-->
        <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>
        <!--客戶端對ResourceManager主機通過 host:port 提交作業-->
        <name>yarn.resourcemanager.address</name>
        <value>192.168.1.99:8032</value>
    </property>
        <property>
        <!--ApplicationMasters 通過ResourceManager主機訪問host:port跟蹤調度程序獲資源-->
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>192.168.1.99:8030</value>
    </property>
        <property>
        <!--NodeManagers通過ResourceManager主機訪問host:port-->
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>192.168.1.99:8035</value>
    </property>
        <property>
        <!--管理命令通過ResourceManager主機訪問host:port-->
        <name>yarn.resourcemanager.admin.address</name>
        <value>192.168.1.99:8033</value>
    </property>
        <property>
        <!--ResourceManager web頁面host:port.-->
        <name>yarn.resourcemanager.webapp.address</name>
        <value>192.168.1.99:8088</value>
    </property>

 <!--我們可以指定yarn的master為哪台機器,與namenode分布在不同的機器上面 -->

  <!-- <property>
     <name>yarn.resourcemanager.hostname</name>
     <value>192.168.1.100</value>
    </property> 

  -->

</configuration>
說明:啟動Hadoop2.0之后,默認scheduler為capacity scheduler,如果想修改為fair scheduler,則在yarn-site.xml中加入:
  <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  </property>

#創建臨時目錄和文件目錄

mkdir /usr/local/hadoop/tmp
mkdir -p /usr/local/hadoop/dfs/name
mkdir -p /usr/local/hadoop/dfs/data

 

配置環境變量:

#Master slave1 slave2

vim ~/.bashrc
HADOOP_HOME=/usr/local/hadoop
PATH=$PATH:$HADOOP_HOME/bin

#刷新環境變量
source ~/.bashrc

 

修改啟動腳本保存pid的路徑

目的:因為存放pid的路徑為/tmp,/tmp是臨時目錄,系統會定時清理該目錄中的文件,所以我們需要修改存放pid的路徑

mkdir /usr/local/hadoop/pid
cd /usr/local/hadoop/sbin
sed -i 's/tmp/usr\/local\/hadoop\/pid/g' hadoop-daemon.sh
sed -i 's/tmp/usr\/local\/hadoop\/pid/g' yarn-daemon.sh

 

拷貝安裝包:

# 我用的hadoop用戶,需先在從主機上面創建/usr/local/hadoop目錄,設置權限chown -R hadoop:hadoop /usr/local/hadoop
rsync -av /usr/local/hadoop/ slave1:/usr/local/hadoop/
rsync -av /usr/local/hadoop/ slave2:/usr/local/hadoop/

 

啟動集群(主機時間需同步):

#初始化Namenode

hadoop namenode -format
#啟動集群
./sbin/start-all.sh

 

集群狀態:

#Master

 

#Slave1

#Slave2

 

監控網頁:

http://master:8088

 

關閉集群:

./sbin/hadoop stop-all.sh

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM