hadoop集群搭建

重要的点包含以下

        1、集群数量的选择,除了hadoop集群,大部分集群采用的都是奇数个节点,这样可以方便选举出来主节点

        2、既然是多个节点,节点之间的通信也十分重要

        3、配置hdfs、yarn、mapreduce。也就是确定节点的NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager

一、单个节点的搭建

        采用先搭好一台节点,然后通过这台节点克隆出其他节点

        1、安装JDK以及Hadoop,需要在/etc/profile这个文件里面配好环境变量,类似于windows

        export JAVA_HOME=/opt/modules/jdk1.8.0_144
        export PATH=$PATH:$JAVA_HOME/bin

        export HADOOP_HOME=/opt/modules/hadoop-2.7.2
        export PATH=$PATH:$HADOOP_HOME/bin
        export PATH=$PATH:$HADOOP_HOME/sbin

        2、设置静态IP 

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

        在该文件里添加内容

        BOOTPROTO=static
        ONBOOT=yes

        IPADDR=192.168.101.xxx
        NETMASK=255.255.255.0
        GATEWAY=192.168.101.2
        DNS1=144.144.144.144
        DNS2=8.8.8.8

        3、修改一下主机名

        /etc/hostname

        hadoop101

二、克隆出其他2台节点

        注意的是,其他2台节点也要设置静态IP并且修改掉主机名

三、3台节点间相互通信

        1、关闭3台节点的防火墙

        systemctl stop firewalld

        2、可以通过IP来实现3个节点间的相互通信,但是为了便于操作,还是通过主机名来实现通信比较好,在/etc/hosts文件中添加主机名和IP的对应关系

        3、可以通过scp或者xsync命令实现各个节点间文件的相互传送,但是每次输入命令的时候都需要敲入密码,可以配置SSH免密登录。

        进入节点的user/.ssh目录(.ssh是隐藏目录,可以通过ls -al来查看)

        ssh-keygen -t rsa,生成一对儿公钥和私钥。

        将公钥复制到每个节点上面

        ssh-copy-id 每个节点的主机名

        注:上述操作每个节点都需要执行一次

四、配置hdfs、yarn、mapreduce

        1、核心配置文件 core-site.xml

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

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

        2、配置hdfs

        hadoop-env.sh文件中添加$JAVA_HOME变量

        export JAVA_HOME=/opt/modules/jdk1.8.0_144

        hdfs-site.xml添加如下内容

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

        <!-- 指定Hadoop辅助名称节点主机配置 -->
        <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>hadoop103:50090</value>
        </property>

        3、配置yarn

        yarn-env.sh文件中添加$JAVA_HOME变量

        export JAVA_HOME=/opt/modules/jdk1.8.0_144

        yarn-site.xml添加如下内容

        <!-- Reducer获取数据的方式 -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop103</value>
        </property>

        4、配置mapreduce

        mapred-env.sh文件中添加$JAVA_HOME变量

        export JAVA_HOME=/opt/modules/jdk1.8.0_144

        mapred-site.xml添加下面内容

        <!-- 指定MR运行在Yarn上 -->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>

五、集群分脚本

        通过rsync命令实现101节点到102、103节点的同步

        #!/bin/bash

        #1 获取文件名称
        p1=$1
        fname=`basename $p1`
        echo fname=$fname

        #2 获取上级目录到绝对路径
        pdir=`cd -P $(dirname $p1); pwd`
        echo pdir=$pdir

        #3 获取当前用户名称
        user=`whoami`

        #4 循环
        for((host=102; host<104; host++)); do
                rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
        done

        这样通过脚本就可以将101节点上的文件同步复制到102和103节点

六、集群启动

        1、单点启动

        先在101上面启动namenode

        sbin/hadoop-daemon.sh start namenode

        在101、102、103上面启动datanode

        sbin/hadoop-daemon.sh start datanode

        2、一般都是采用群启集群

        在101上面编辑slaves文件,添加内容

        hadoop101

        hadoop102

        hadoop103

        通过脚本同步文件

        xsync /opt/modules/hadoop-2.7.2/slaves

        注:第一次启动前最好格式化一下各个节点(bin/dfs namenode -format)

        启动hdfs

        sbin/start-dfs.sh

        启动yarn

        sbin/start-yarn.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值