Hadoop完全分布式集群搭建

本文详细描述了Hadoop集群搭建过程,包括克隆客户机、分发文件、配置环境变量、安装Hadoop、配置各服务组件(如NameNode、SecondaryNameNode和YARN)以及启动和停止服务。文中强调了文件分发方法和SSH免密登录的重要性。
摘要由CSDN通过智能技术生成

#工作流程#

记录操作流程,方便今后使用。

1)再克隆2台客户机(关闭防火墙已经在样板机设置好了,只需要设置静态ip、主机名称

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

修改:IPADDR=192.168.1.10#

修改主机名称:vim /etc/hostname

以下操作都在xshell中进行。

 2)分发已经安装好JDK和Hadoop主机上的文件到新克隆的Hadoop主机上。

      一种分发是从已经安装好JDK和Hadoop主机102主动分发

        来到已经安装好JDK和Hadoop主机上的module文件夹下

        scp -r ./* 用户名@hadoop103:/opt/module/

         scp -r ./* zj@hadoop103:/opt/module/

        一种分发是从没有安装好JDK和Hadoop主机104拉取

          来到没有安装好JDK和Hadoop104主机上的module文件夹下

           scp -r ./* 用户名@hadoop102:/opt/module/ ./

          scp -r ./* zj@hadoop102:/opt/module/jdk1.8.0_212 ./

           一种分发是从一台主机103发出命令,让安装好JDK和Hadoop主机102发送所需文件

            scp -r zj@hadoop102:/opt/module/hadoop-3.1.3 zj@hadoop104:/opt/module/

出现错误。102与103之间ping 没有问题,后面再说吧!!!!!

rsync远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

rsyncscp区别:rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

把hadoop102机器上的/opt/software目录同步到hadoop103服务器的/opt/software目录下

                     rsync -av /opt/software/* zj@hadoop103:/opt/software

写自动运行脚本,自动完成文件分发功能

/home/用户名/bin这个目录下存放的脚本,用户可以在系统任何地方直接执行。

cd /home/zj/

在/home/zj/  建立一个文件夹bin

在这个bin目录下写脚本,就不需要配置环境变量。

touch my_rsync.sh

chmod 744 my_rsync.sh

vim mu_xsync.sh

拷贝如下内容就ok

#!/bin/bash

#1. 判断参数个数

if [ $# -lt 1 ]

then

  echo Not Enough Arguement!

  exit;

fi

#2. 遍历集群所有机器

for host in hadoop102 hadoop103 hadoop104

do

  echo ====================  $host  ====================

  #3. 遍历所有目录,挨个发送

  for file in $@

  do

    #4. 判断文件是否存在

    if [ -e $file ]

    then

      #5. 获取父目录

      pdir=$(cd -P $(dirname $file); pwd)

      #6. 获取当前文件的名称

      fname=$(basename $file)

      ssh $host "mkdir -p $pdir"

      rsync -av $pdir/$fname $host:$pdir

    else

      echo $file does not exists!

    fi

  done

done

 配置环境变量

到hadoop102上,    cd /etc/profile.d/

因为权限的问题,就用     scp -r ./my_env.sh root@hadoop103:/etc/profile.d/

环境变量文件传输好了,记得运行     source /etc/profile

规划集群

4)安装Hadoop

  5)配置环境变量

6)配置集群

7)单点启动

       8)配置ssh

       9)群起并测试集群

Hadoop集群搭建流程

首先文件分发操作要熟悉。

scp

xsync

这两个命令要会用,我们自己写的脚本my_xsync.sh 也要会用。

Ssh免密登录

ssh-keygen -t rsa       4次回车键就ok

来到生成秘钥的目录

cd /home/zj/

ll -a

cd .ssh

ssh-copy-id 主机名(也包括自己)

同样的工作在每一个主机上都做一遍。

集群部署规划

         注意:NameNode和SecondaryNameNode不要安装在同一台服务器

         注意:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

hadoop105

hadoop106

hadoop107

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

简而言之,就是NN,RM,2NN分别在不同主机。在配置文件中写清楚。

3)配置集群

(1)核心配置文件。将这部分内容编辑好后,直接拷贝!!!!

配置core-site.xml。主要是NN,文件存储目录。

 cd $HADOOP_HOME/etc/hadoop

 vim core-site.xml

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

       <!-- 指定NameNode的地址 -->

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://hadoop105:9820</value>

</property>

<!-- 指定hadoop数据的存储目录 -->

    <property>

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

        <value>/opt/module/hadoop-3.1.3/data</value>

</property>

<!-- 配置HDFS网页登录使用的静态用户为zj -->

    <property>

        <name>hadoop.http.staticuser.user</name>

        <value>zj</value>

</property>

</configuration>

配置hdfs-site.xml。WEB访问端口,2NN。

vim hdfs-site.xml

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

       <!-- nn web端访问地址-->

       <property>

        <name>dfs.namenode.http-address</name>

        <value>hadoop105:9870</value>

    </property>

       <!-- 2nn web端访问地址-->

    <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>hadoop107:9868</value>

    </property>

</configuration>

配置yarn-site.xml。RM

vim yarn-site.xml

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

       <!-- 指定MR走shuffle -->

    <property>

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

        <value>mapreduce_shuffle</value>

</property>

<!-- 指定ResourceManager的地址-->

    <property>

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

        <value>hadoop106</value>

</property>

<!-- 环境变量的继承 -->

    <property>

        <name>yarn.nodemanager.env-whitelist</name>

        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>

</property>

<!-- yarn容器允许分配的最大最小内存 -->

    <property>

        <name>yarn.scheduler.minimum-allocation-mb</name>

        <value>512</value>

    </property>

    <property>

        <name>yarn.scheduler.maximum-allocation-mb</name>

        <value>4096</value>

</property>

<!-- yarn容器允许管理的物理内存大小 -->

    <property>

        <name>yarn.nodemanager.resource.memory-mb</name>

        <value>4096</value>

</property>

<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->

    <property>

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

        <value>false</value>

    </property>

    <property>

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

        <value>false</value>

    </property>

</configuration>

配置mapred-site.xml

 vim mapred-site.xml

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

       <!-- 指定MapReduce程序运行在Yarn上 -->

    <property>

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

        <value>yarn</value>

    </property>

</configuration>

在集群上分发配置好的Hadoop配置文件

my_xsync /opt/module/hadoop-3.1.3/etc/hadoop/

5)去106和107上查看文件分发情况

cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

 cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

通过以上操作,已经完成了配置,下面到了启动阶段

启动集群

       (1)如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)

[atguigu@hadoop102 ~]$ hdfs namenode -format

(2)启动HDFS

[atguigu@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh

(3)在配置了ResourceManager的节点(hadoop103)启动YARN

[atguigu@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

启动集群

       如果集群是第一次启动,需要在 有NN的主机hadoop105节点格式化NameNode(注意格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)

 hdfs namenode -format

单点启动

hdfs –daemon start namenode

用jps检测一下

在xshell中选择全部会话状态

hdfs --daemon start datanode

在2NN主机上启动secondarynamenode

hdfs --daemon start secondarynamenode

在recoursemanager的主机上启动YARN(原本是配置在106上,在配置文件中写到105上了!!!!!!!)

yarn --daemon start resourcemanager

在xshell中选择全部会话状态启动nodemanager

yarn –daemon start nodemanager

输入yarn所在主机的8088端口,就可以看到web

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 9 14

1)各个服务组件逐一启动/停止

       (1)分别启动/停止HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

       (2)启动/停止YARN

yarn --daemon start/stop  resourcemanager/nodemanager

2)各个模块分开启动/停止(配置ssh是前提)常用

       (1)整体启动/停止HDFS

start-dfs.sh/stop-dfs.sh

       (2)整体启动/停止YARN

start-yarn.sh/stop-yarn.sh

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值