Hadoop 总结 四 配置集群

Hadoop 总结 四 配置集群

分析:

至少需要三台虚拟机(主机)(关闭防火墙,静态IP,主机名称)

需要安装好JDK,Hadoop,以及环境变量的配置

需要配置好集群

需要单点启动

需要节点间ssh配置

启动并测试集群

  1. 虚拟机准备

见前两章,并将hadoop103,hadoop104进行同样的配置

  1. 编写集群分发脚本

    #scp 安全拷贝 方式
    #语法:scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname
    #例:在Hadoop102上将jdk和hadoop的安装文件直接拷贝到hadoop103上
    scp -r /opt/module test@hadoop103:/opt/module
    #例:在hadoop103上将hadoop102节点上的安装文件拷贝到hadoop103上
    scp -r test@hadoop102:/opt/module /opt/module
    #例:在hadoop103上将hadoop102的文件拷贝到hadoop104上
    scp -r test@hadoop102:/opt/module/* test@hadoop104:/opt/module
    
    #rsync 远程同步工具
    #与scp的区别:rsyn复制文件速度比scp速度快,rsync只对差异的文件做复制覆盖,scp是把所有的文件统统复制过去重名的文件不管是否相同都会直接进行覆盖
    #语法:rsync -av $pdir/$fname  $user@hadoop$host:$pdir/$fname
    #举个栗子:
    rsync -av /opt/module test@hadoop103:/opt/module
    

    群发脚本的分析

    1.需要把文件及子目录全部进行复制

    2.复制到目标主机需要在相同的目录下,如果不存在目录则创建相同的目录

    3.如果有重复的文件则不进行覆盖,只对有更新或者差异的文件进行更新

    4.希望test用户能在系统任何位置直接执行该脚本

    脚本下载地址:集群分发脚本下载地址

    需要修改的内容:
    在这里插入图片描述

    将hadoop102-104更换为自己集群的主机名,有几个填几个,以空格分隔

    其他:

    1.将脚本放在家目录的bin文件夹下,如果没有bin文件夹则自己创建bin文件夹

    cd ~

    mkdir bin

    2.将脚本命名,并赋予脚本可执行权限,以xsync为例

    chmod +x xsync

    3.将脚本复制到bin文件夹下,以便全局调用

    sudo cp xsync /bin

    4.测试脚本

    xsync /home/test/bin

    sudo xsync /home/test/bin

  2. 配置集群间ssh无密码登录

#基本语法:ssh ip或者ssh 在hosts中配置过过得主机映射名 ssh hadoop103
#1.ssh hadoop103 需要输入两次密码 所以在集群间配置ssh互相免密登录
#生成公钥和私钥
ssh -keygen -t rsa 
#然后一直按回车键,进行确认
#将公钥拷贝到需要免密登录的主机(节点)上
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
...

注意:

需要在hadoop103上采用test账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。

需要在hadoop104上采用test账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。

需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104

ssh免密登录的原理

在这里插入图片描述

  1. 集群规划部署

    NameNode和secondaryNameNode不要安装在同一台服务器上
    resourceManager也很占用资源,不要和上面两个配置在同一台服务器上
    

    集群部署设计

    hadoop102hadoop103hadoop104
    HDFSNameNodeSecondaryNameNode
    HDFSDataNodeDataNodeDataNode
    YARNNodeManagerNodeManagerNodeManager
    YARNResourceManager

    1.由于内存16G只能支持这么多的虚拟机,所以只在三台虚拟机上进行配置

    2.根据上面表格中的部署设计,去配置文件

    3.hadoop中有默认的配置文件,也提供了可以自定义的配置文件,建议在自定义文件中进行配置集群,默认的配置文件不要修改

    4.在hadoop目录下etc/hadoop/中有core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml
    在这里插入图片描述

  2. hadoop3.x常用端口说明

DaemonAppHadoop2Hadoop3
NameNode PortHadoop HDFS NameNode8020 / 90009820
Hadoop HDFS NameNode HTTP UI500709870
Secondary NameNode PortSecondary NameNode500919869
Secondary NameNode HTTP UI500909868
DataNode PortHadoop HDFS DataNode IPC500209867
Hadoop HDFS DataNode500109866
Hadoop HDFS DataNode HTTP UI500759864
  1. 配置文件

    ​ cd $HADOOP_HOME/etc/hadoop

    如果集群机器不止三台 那么需要根据具体的部署设计进行修改以下的配置文件

    1. 核心文件 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://hadoop102:9820</value>
      </property>
      <!-- 指定hadoop数据的存储目录 -->
          <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/module/hadoop-3.1.3/data</value>
      </property>
      
      <!-- 配置HDFS网页登录使用的静态用户为muxue-->
          <property>
              <name>hadoop.http.staticuser.user</name>
              <value>muxue</value>
      </property>
      
      <!-- 配置该muxue(superUser)允许通过代理访问的主机节点 -->
          <property>
              <name>hadoop.proxyuser.muxue.hosts</name>
              <value>*</value>
      </property>
      <!-- 配置该muxue(superUser)允许通过代理用户所属组 -->
          <property>
              <name>hadoop.proxyuser.muxue.groups</name>
              <value>*</value>
      </property>
      <!-- 配置该muxue(superUser)允许通过代理的用户-->
          <property>
              <name>hadoop.proxyuser.muxue.groups</name>
              <value>*</value>
      </property>
      </configuration>
      
    2. HDFS文件配置 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>hadoop102:9870</value>
          </property>
      	<!-- 2nn web端访问地址-->
          <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>hadoop104:9868</value>
          </property>
      </configuration>
      
    3. YARN配置文件 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>hadoop103</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>
      
    4. MapReduce配置文件 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>
      
  2. 分发配置文件到集群其他两台机器

    xsync $HADOOP_HOME/etc/hadoop/
    #进入hadoop103 hadoop104检查分发的配置文件文件是否成功
    
  3. 配置work

    vim $HADOOP_HOME/etc/hadoop/workers
    #在文件中增加以下内容,不能包含多余的空格,空行
    hadoop102
    hadoop103
    hadoop104
    
  4. 同步所有节点

    xsync $HADOOP_HOME/etc/
    
  5. 启动集群

    第一次启动集群: 需要在NameNode节点上格式化NameNode hdfs namenode -format

    如果需要重新进行格式化NameNode: 1.先停止NameNode和DataNode进程,2.删除所有机器的data和logs目录再进行格式化

    #格式化
    hdfs namenode -format
    #启动HDFS
    $HADOOP_HOME/sbin/start-dfs.sh
    #在配置resourceManager (hadoop103) 启动YARN
    $HADOOP_HOME/sbin/start-yarn.sh
    

    在web端查看HDFS的NameNode

    浏览器中输入hadoop102:9870,查看HDFS文件数据信息

在这里插入图片描述

在web端查看YARN的resourceManeger

浏览器中输入hadoop103:8088,查看YARN的job

在这里插入图片描述

  1. 集群的基本测试

    #上传文件
    hadoop fs -mkdir /input
    hadoop fs -put ...(文件路径/文件名)
    
  2. 启动或者停止 (常用)

    1. 整体启动/停止hdfs

      start-dfs.sh/stop-dfs.sh

    2. 整体启动停止YARN

      start-yarn.sh/stop-yarn.sh

    浏览器中输入hadoop103:8088,查看YARN的job

    [外链图片转存中…(img-PrSiIrGC-1595938424805)]

  3. 集群的基本测试

    #上传文件
    hadoop fs -mkdir /input
    hadoop fs -put ...(文件路径/文件名)
    
  4. 启动或者停止 (常用)

    1. 整体启动/停止hdfs

      start-dfs.sh/stop-dfs.sh

    2. 整体启动停止YARN

      start-yarn.sh/stop-yarn.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值