1. 程式人生 > >CentOS7部署Hadoop2.7.5全分散式群集

CentOS7部署Hadoop2.7.5全分散式群集

思路

  1. 安裝虛擬機器
  2. 安裝JDK
  3. 克隆
  4. 安裝HADOOP
  5. 配置ssh
  6. 搭建hadoop叢集
    1. 配置hadoop-env.sh
    2. 配置hadoop-core-site.xm
    3. 配置hadoop-hdfs-site.xm
    4. 配置hadoop-mapred-site.xml
    5. 配置hadoop-yarm-site.xml
  7. 配置slave
  8. 傳送hadoop檔案到所有機子上
  9. 測試

安裝虛擬機器

安裝JDK

克隆

我是直接克隆虛擬機器,要是有伺服器或者自安裝也可以。
點選完整克隆
這裡寫圖片描述
這裡寫圖片描述

安裝HADOOP

配置HADOOP

修改UUID

vim /etc/sysconfig/network-scripts/ifcfg-ens33

這裡寫圖片描述
因為克隆過來的UUID是相同的,可以刪除重新生成,也可以修改其中一個數就可以了,裡面的數值是16進位制的,在這範圍內就可以。

修改計算機名

hostnamectl –static set-hostname hadoop01

這裡寫圖片描述

修改對映

vim /etc/hosts

192.168.164.137 hadoop01 www.hadoop01.com
192.168.164.136 hadoop02 www.hadoop02.com
192.168.164.138 hadoop03 www.hadoop03.com

這裡寫圖片描述
CentOS7克隆之後IP地址是自動分配的,所以不需要自己設定
查詢本機IP

ifconfig

檢驗是能聯通,在win的cmd ping一下
這裡寫圖片描述
改名之後可以通過名字來在虛擬機器之間通訊
這裡寫圖片描述

配置SSH

cd /root/.ssh
ssh-keygen -t rsa

ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
# hadoop01,hadoop02,hadoop03是我的主機名,主機名自己設定的

搭建全分佈環境

規劃

主機名稱 IP地址 功能
hadoop01 192.168.164.137 NameNode,DataNode,ResourceManager,NodeManager
hadoop02 192.168.164.136 DataNode,NodeManager
hadoop03 192.168.164.138 DataNode,NodeManager
所有機子都需要配置
1.JDK
2.SSH免登陸
3.Hadoop叢集

配置hadoop-env.sh

vim /usr/local/hadoop-2.7.5/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.5/etc/hadoop/

配置core-site.xml

vim /usr/local/Hadoop-2.7.5/etc/Hadoop/core-site.xml

<configuration>
<!-- configuration hdfs file system namespace -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>
    </property>
<!-- configuration hdfs cache size of the operation -->
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>
<!-- configuration hdfs Temporary data storage directory -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/mshing/bigdata/tmp</value>
    </property>
</configuration>

配置hdfs-site.xml

vim /usr/local/hadoop-2.7.5/etc/hadoop/hdfs-site.xml

<configuration>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/hadoopdata/dfs/name</value>
    </property>

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/hadoopdata/dfs/data</value>
    </property>

    <property>
        <name>dfs.chechpoint.dir</name>
        <value>/home/hadoop/hadoopdata/checkpoint/dfs/cname</value>
    </property>

    <property>
        <name>dfs.http.address</name>
        <value>hadoop01:50070</value>
    </property>

    <property>
        <name>dfs.secondary.http.address</name>
        <value>hadoop01:50090</value>
    </property>

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>false</value>
    </property>

    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>

</configuration>

配置mapred-site.xml

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <final>true</final>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop01:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop01:19888</value>
    </property>
</configuration>

配置yarn-site.xml

vim etc/hadoop/yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop01:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>hadoop01:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>hadoop01:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>hadoop01:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>hadoop01:8088</value>
    </property>
</configuration>

配置slaves

vim etc/hadoop/slaves

這裡寫圖片描述

遠端分發到伺服器上

scp -r /usr/local/hadoop-2.7.5/ hadoop02:/usr/local/
scp -r /usr/local/hadoop-2.7.5/ hadoop03:/usr/local/

啟動之前需要格式化

啟動之前,在namenode伺服器上先格式化,只需格式化一次就好了

hadoop namenode -format

這裡寫圖片描述

測試

啟動namenode,datanode,ResourceManager,NodeManager節點

全啟動:

start-all.sh

模組啟動:

start -dfs.sh
start -yarn.sh

單個程序啟動/停止:

hadoop-damon.sh start/stop namenode
hadoop-damons.sh start/stop datanode
yarn-damon.sh start/stop namenode
yarn-damons.sh start/stop namenode
mr-jobhistory-daemon.sh start/stop historyserver

驗證
在三臺機子分別輸入

jps

就可以看到啟動的程序了