CentOS 7 Hadopp 3.1.0集群搭建

一、系统准备

1、准备三台服务器修改/etc/hosts文件,加入下面配置

172.16.4.13    master
172.16.4.14    slave1
172.16.4.15    slave2

然后拷贝hosts到其他两台

[root@localhost ~]$ scp /etc/hosts root@slave1:/etc
[root@localhost ~]$ scp /etc/hosts root@slave2:/etc

2、添加用户

[root@localhost ~]$ useradd admin
[root@localhost ~]$ passwd admin

3、添加文件夹

[root@localhost ~]$ mkdir /opt/module

4、修改文件夹所属

[root@localhost ~]$ chown admin:admin /opt/module

5、切换admin登录

[root@localhost ~]$ su admin

6、ssh名密码登录

[admin@master ~]$ ssh-keygen -t rsa

  这里一路回车即可,不用输入任何内容

  然后将密钥文件拷贝到另外两台

[admin@master ~]$ ssh-copy-id master
[admin@master ~]$ ssh-copy-id slave1
[admin@master ~]$ ssh-copy-id slave2

   再配置另外两台

[admin@slave1 ~]$ ssh-keygen -t rsa
[admin@slave1 ~]$ ssh-copy-id master
[admin@slave1 ~]$ ssh-copy-id slave1
[admin@slave1 ~]$ ssh-copy-id slave2
[admin@slave2 ~]$ ssh-keygen -t rsa
[admin@slave2 ~]$ ssh-copy-id master
[admin@slave2 ~]$ ssh-copy-id slave1
[admin@slave2 ~]$ ssh-copy-id slave2

  注意:这里第一台必须以admin用户登录,因为接下来hadoop集群运行需要admin这个用户

二、开始搭建

1、安装JDK配置JDK环境变量

    这方面安装网络上很多,基本都行得能,在这里就不重复讲解。

2、Hadoop安装

    下载地址:点击打开链接,这里下载3.1.0版本来安装

    解压下载好的 

[admin@master ~]$ tar -zxvf hadoop-3.1.0.tar.gz

    解压后的文件移到/opt下

[admin@master ~]$ mv hadoop-3.1.0 /opt/module/hadoop

3、配置Hadoop

    进入配置文件夹

[admin@master ~]$ cd /opt/moudule/hadoop/etc/hadoop

    分别配置hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml这6个文件

    hadopp-env.sh与yarn-env.sh都增加上:

[admin@master hadoop]$ vim hadoop-env.sh
[admin@master hadoop]$ vim yarn-env.sh
export JAVA-HOME=/usr/lib/java/jdk1.8.0_161

   core-site.xml

[admin@master hadoop]$ vim core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

    <!-- 指定HDFS中NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>

    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop/data/tmp</value>
    </property>
</configuration>

    hdfs-site.xml

[admin@master hadoop]$ vim hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

    <!-- 设置namenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:9870</value>
    </property>

    <!-- 设置dfs副本数,不设置默认是3个   -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.blocksize</name>
        <value>268435456</value>
    </property>
    <property>
        <name>dfs.namenode.handler.count</name>
        <value>100</value>
    </property>

    <!-- 设置secondname的端口   -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>

    <!-- 设置namenode存放的路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/data/name</value>
    </property>

    <!-- 设置datanode存放的路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/data/datanode</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

    mapred-site.xml

[admin@master hadoop]$ vim mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 指定mr运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>
            /opt/hadoop/etc/hadoop,
            /opt/hadoop/share/hadoop/common/*,
            /opt/hadoop/share/hadoop/common/lib/*,
            /opt/hadoop/share/hadoop/hdfs/*,
            /opt/hadoop/share/hadoop/hdfs/lib/*,
            /opt/hadoop/share/hadoop/mapreduce/*,
            /opt/hadoop/share/hadoop/mapreduce/lib/*,
            /opt/hadoop/share/hadoop/yarn/*,
            /opt/hadoop/share/hadoop/yarn/lib/*
        </value>
    </property>
</configuration>

    yarn-site.xml

[admin@master hadoop]$ vim yarn-site.xml
<?xml version="1.0"?>
<configuration>
    <!-- reducer获取数据的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
</configuration>

    创建slaves文件

[admin@master hadoop]$ vim slaves

    内容填写

slave1
slave2

   创建workers文件

[admin@master hadoop]$ vim workers

    内容填写

slave1
slave2

    最后把配置好的hadoop拷贝到其他两台上

[admin@master hadoop]$ cd /opt
[admin@master opt]$ scp -r module admin@slave1:`pwd`
[admin@master opt]$ scp -r module admin@slave2:`pwd`

   注意:这里的`pwd`不是用单引号,是用数字1键左边的那个上顿号

4、配置系统环境变量

[root@master etc]$ vim /etc/profile

    在结尾加上

export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

   然后其他两台也一样的配置环境变量,或直接从master拷贝

[root@master etc]$ scp profile root@slave1:`pwd`
[root@master etc]$ scp profile root@slave2:`pwd`

三、集群启动

    1、第一次启动hdfs需要先格式化

[admin@master ~]$ hdfs namenode -format

    2、启动

[admin@master ~]$ start-dfs.sh
[admin@slave1 ~]$ start-yarn.sh
    这里的yarn是根据hdfs-site.xml 的dfs.namenode.secondary.http-address配置值来决定在哪里启动

   3、启动成功后分别在各台服务器上用jps命令查看

    master

[admin@master ~]$ jps
4178 Jps
3646 NameNode

    slave1

[admin@salve1 ~]$ jps
4104 DataNode
5339 Jps
4223 SecondaryNameNode

    slave2

[admin@slave2 ~]$ jps
3062 Jps
2654 DataNode

4、web端查看

    打开浏览器输入http://master服务器的IP:9870,3.1之后这里的端口号由原来的50070改为9870


猜你喜欢

转载自blog.csdn.net/danielchan2518/article/details/80924713
今日推荐