天天看點

Hadoop完全分布式叢集搭建(2.7.7)

 完全分布式:

真正的分布式,由3個及以上的實體機或者虛拟機組成的機群。一個Hadoop叢集環境中,NameNode,SecondaryName和DataNode是需要配置設定在不同的節點上,也就需要三台伺服器

1.配置JAVA 環境

1.1檢查系統是否有JDK環境

[[email protected] jdk1.8]# rpm -qa | grep jdk

1.2解除安裝之前的JDK環境

[[email protected] jdk1.8]# rpm -e --nodeps

1.3建立檔案夾、解壓、配置環境變量

(1)cd /usr/local

 mkdir java

(2)[[email protected] ~]$ sudo tar -zxvf jdk-8u241-linux-x64.tar.gz -C /usr/local/java

(3)[[email protected] local]# sudo mv jdk1.8.0_241/ jdk1.8

vim ~/.bashrc

配置内容:

export JAVA_HOME=/usr/local/java/jdk1.8.0_241# 配置Java的安裝目錄

export PATH=$PATH:$JAVA_HOME/bin # 在原PATH的基礎上加入JDK的bin目錄

使檔案生效: source ~/.bashrc

  1. 檢測jdk是否正确安裝:java -version
Hadoop完全分布式叢集搭建(2.7.7)

1.4 copy整個目錄到其它機器(或者安裝好jdk後克隆)

scp -r java/ [email protected]:/usr/local

Hadoop完全分布式叢集搭建(2.7.7)

2.配置ssh

2.1修改每台機器主機名(hostname)

hostnamectl set-hostname master   (立即生效)

hostnamectl set-hostname slave1   (立即生效)

hostnamectl set-hostname slave2   (立即生效)

2.2修改每台機器/etc/hosts檔案

vi /etc/hosts

Hadoop完全分布式叢集搭建(2.7.7)

修改其中1台,然後scp到其它機器 

    scp 檔案名 遠端主機使用者名@遠端主機名或ip:存放路徑

scp hosts [email protected]:/etc/

scp hosts [email protected]:/etc/

Hadoop完全分布式叢集搭建(2.7.7)

 修改完之後,互ping其它機器,能互ping則說明修改OK

ping -c 3 slave1(※ 3表示發送 3 個資料包)

Hadoop完全分布式叢集搭建(2.7.7)

2.3配置ssh,實作無密碼登入

(無密碼登入,效果也就是在master上,通過ssh slave1或者ssh slave2就可以登入 對方機器,而不用輸入密碼。)

(1)進入:cd /usr

(2)執行:ssh-keygen ##  (一直回車即可)

Hadoop完全分布式叢集搭建(2.7.7)

(3)檢視:cd ~/.ssh

ls -al

(4)在master上将公鑰放到authorized_keys裡

cat id_rsa.pub > authorized_keys

  (5)将master上的authorized_keys放到其它機器上

scp authorized_keys [email protected]:/root/.ssh

scp authorized_keys [email protected]:/root/.ssh

Hadoop完全分布式叢集搭建(2.7.7)

  (6)測試是否成功:ssh slave1(第一次要輸密碼)

Hadoop完全分布式叢集搭建(2.7.7)

3.Hadoop上傳、配置

3.1建立、解壓、環境變量

(1)建立目錄

mkdir /usr/hadoop

(2)解壓

sudo tar -zxvf hadoop-2.7.7.tar.gz -C /usr/hadoop

(3)追加環境變量

vim ~/.bashrc(其它機器也要相應配置一次hadoop環境變量)

配置内容:

#HADOOP

  export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin  

使環境變量生效:source /.bashrc

(4)确認環境變量配置:hadoop version

Hadoop完全分布式叢集搭建(2.7.7)

3.2建立HDFS存儲目錄

cd /usr/hadoop

mkdir hdfs

cd hdfs

mkdir name data tmp

/usr/hadoop/hdfs/name    --存儲namenode檔案

/usr/hadoop/hdfs/data      --存儲資料

/usr/hadoop/hdfs/tmp       --存儲臨時檔案

Hadoop完全分布式叢集搭建(2.7.7)

3.3配置檔案

3.3.1 hadoop-env.sh

vim /usr/hadoop/hadoop-2.7.7/etc/hadoop/hadoop-env.sh

Hadoop完全分布式叢集搭建(2.7.7)

3.3.2 yarn-env.sh

Hadoop完全分布式叢集搭建(2.7.7)

3.3.3 core-site.xml

<configuration>

   <property>

      <name>hadoop.tmp.dir</name>

      <value>/usr/hadoop/hdfs/tmp</value>

   </property>

   <property>

      <name>fs.default.name</name>

      <value>hdfs://master01:9000</value>

   </property>

</configuration>

3.3.4 hdfs-site.xml

<configuration>

  <property>

    <name>dfs.replication</name>

    <value>3</value>

  </property>

  <property>

    <name>dfs.name.dir</name>

    <value>/usr/hadoop/hdfs/name</value>

  </property>

  <property>

    <name>dfs.data.dir</name>

    <value>/usr/hadoop/hdfs/data</value>

  </property>

  <property>

    <name>dfs.permissions</name>

    <value>false</value>

  </property>

</configuration>

3.3.5 mapred-site.xml

cd /usr/hadoop/hadoop2.7.7/etc/hadoop

cp mapred-site.xml.template mapred-site.xml

配置内容:

<configuration>

  <property>

    <name>mapreduce.framework.name </name>

    <value>yarn</value>

  </property>

</configuration>

3.3.6 yarn-site.xml

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master01</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.vmem-check-enabled</name>

<value>false</value>

</property>

3.3.7 slaves(删除其中localhost)

Hadoop完全分布式叢集搭建(2.7.7)

3.3.8 copy整個/usr/hadoop/目錄到其它機器

進入:cd /usr/hadoop

scp -r hadoop/ [email protected]1:/usr/hadoop/

scp -r hadoop/ [email protected]:/usr/hadoop/

3.4啟動Hadoop (master上)

(1)格式化:hadoop namenode -format

格式化成功後,可以看到在/usr/hadoop/hdfs/name目錄下多了一個current目錄,而且該目錄下有一系列檔案,如下:

Hadoop完全分布式叢集搭建(2.7.7)
  1. 執行啟動(namenode隻能在master上啟動,因為配置在master上;datanode每  個節點上都可以啟動)

      start-all.sh 

Hadoop完全分布式叢集搭建(2.7.7)

master上執行jps,會看到NameNode, SecondaryNameNode, ResourceManager

Hadoop完全分布式叢集搭建(2.7.7)

   其它節點上執行jps,會看到DataNode, NodeManager

Hadoop完全分布式叢集搭建(2.7.7)
Hadoop完全分布式叢集搭建(2.7.7)

(3)在wins上打開網頁,檢視HDFS管理頁面 http://10.152.136.5:50070檢視,提示無法通路

   在master上,執行以下指令關閉防火牆,即可通路(為了能夠正常通路node節點,最好把

其它機器的防火牆也stop了)

            HDFS管理首頁

Hadoop完全分布式叢集搭建(2.7.7)

   通路Yarn管理頁: http://10.152.136.5:8088

Hadoop完全分布式叢集搭建(2.7.7)

繼續閱讀