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用户能在系统任何位置直接执行该脚本

    脚本下载地址:

    需要修改的内容:

image-20200728184549555.png

将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

  1. 配置集群间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免密登录的原理


image-20200728191250860.png
  1. 集群规划部署

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

    集群部署设计

    hadoop102 hadoop103 hadoop104
    HDFS NameNode SecondaryNameNode
    HDFS DataNode DataNode DataNode
    YARN NodeManager NodeManager NodeManager
    YARN ResourceManager

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

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

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

    4.在hadoop目录下etc/hadoop/中有core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml

image-20200728192818753.png
  1. hadoop3.x常用端口说明
Daemon App Hadoop2 Hadoop3
NameNode Port Hadoop HDFS NameNode 8020 / 9000 9820
Hadoop HDFS NameNode HTTP UI 50070 9870
Secondary NameNode Port Secondary NameNode 50091 9869
Secondary NameNode HTTP UI 50090 9868
DataNode Port Hadoop HDFS DataNode IPC 50020 9867
Hadoop HDFS DataNode 50010 9866
Hadoop HDFS DataNode HTTP UI 50075 9864
  1. 配置文件

    ​ cd $HADOOP_HOME/etc/hadoop

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

    1. 核心文件 core-site.xml

      
      
      
      
        
          
              fs.defaultFS
              hdfs://hadoop102:9820
      
      
          
              hadoop.tmp.dir
              /opt/module/hadoop-3.1.3/data
      
      
      
          
              hadoop.http.staticuser.user
              atguigu
      
      
      
          
              hadoop.proxyuser.atguigu.hosts
              *
      
      
          
              hadoop.proxyuser.atguigu.groups
              *
      
      
          
              hadoop.proxyuser.atguigu.groups
              *
      
      
      
    2. HDFS文件配置 hdfs-site.xml

      
      
      
      
        
        
              dfs.namenode.http-address
              hadoop102:9870
          
        
          
              dfs.namenode.secondary.http-address
              hadoop104:9868
          
      
      
    3. YARN配置文件 yarn-site.xml

      
      
      
      
        
          
              yarn.nodemanager.aux-services
              mapreduce_shuffle
      
      
          
              yarn.resourcemanager.hostname
              hadoop103
      
      
          
              yarn.nodemanager.env-whitelist
              JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
      
      
          
              yarn.scheduler.minimum-allocation-mb
              512
          
          
              yarn.scheduler.maximum-allocation-mb
              4096
      
      
          
              yarn.nodemanager.resource.memory-mb
              4096
      
      
          
              yarn.nodemanager.pmem-check-enabled
              false
          
          
              yarn.nodemanager.vmem-check-enabled
              false
          
      
      
    4. MapReduce配置文件 mapred-site.xml

      
      
      
      
        
          
              mapreduce.framework.name
              yarn
          
      
      
  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文件数据信息

image-20200728194922593.png
在web端查看YARN的resourceManeger

浏览器中输入hadoop103:8088,查看YARN的job
image-20200728195002678.png
  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

你可能感兴趣的:(Hadoop 总结 四 配置集群)