• 使用docker安装分布式hadoop(阿里hadoop镜像)


    前面使用了docker自带的镜像安装,那么这篇使用阿里镜像搭建hadoop集群,也参考了网上部分播客,但是多多少少有问题,我这篇播客是全部经过实践测试成功跑起来的。

    1、安装hadoop镜像

    1)拉取镜像

    拉取阿里的hadoop镜像
    docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
    在这里插入图片描述
    查看镜像
    docker images
    在这里插入图片描述

    3)创建hadoop容器

    (1)创建master节点
    docker run --name master -d -h master registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
    参数说明:
    -h 为容器设置主机名
    –name 设置容器的名称
    -d 在后台运行

    (2)以此方法创建slave1和slave2节点
    docker run --name slave1 -d -h slave1 registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
    docker run --name slave2 -d -h slave2 registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
    (3)查看容器
    docker ps -s
    在这里插入图片描述
    (4)进入容器查看jdk
    docker exec -it master bash
    jdk都已经自带了
    在这里插入图片描述
    (5)配置ssh生成秘钥,所有的节点都要配置
    进入容器后
    启动ssh
    /etc/init.d/ssh start
    生成秘钥
    ·ssh-keygen -t rsa
    在这里插入图片描述
    (5)分别进入每个节点,将其他节点的公钥也都复制到authorized_keys,也就是说每个>authorized_keys 文件中存储的公钥都是3个而且是一样的
    将容器中的文件复制到centos本地
    ·docker cp 容器id/容器名称:/root/.ssh/authorized_keys /home/hadoop/authorized_keys_master在这里插入图片描述
    将这三个文件复制到一个文件中
    cd /home/hadoop/
    cat authorized_keys_master authorized_keys_slave1 authorized_keys_slave2 > authorized_keys
    cat authorized_keys
    在这里插入图片描述
    将centos本地的文件复制到容器
    docker cp /home/hadoop/authorized_keys 容器id/容器名称:/root/.ssh/authorized_keys
    在这里插入图片描述
    (6)分别为每个节点配置ip地址
    进入容器,在此容器中可以直接使用ip addr命令查看ip地址
    在这里插入图片描述
    为每个容器设置地址,vi /etc/hosts 配置
    在这里插入图片描述
    ssh master 测试一下,测试成功
    在这里插入图片描述

    2、配置hadoop(配置文件的目录一般都在/opt/tools/hadoop-2.7.2/etc/hadoop/下面)

    1)配置hadoop-env.sh,配置jdk

    (1)进入容器查找 hadoop-env.sh存放位置

    find / -name hadoop-env.sh
    (2)查看 hadoop-env.sh文件
    在这里插入图片描述

    export JAVA_HOME=/opt/tools/jdk1.8.0_77
    
    • 1

    在这里插入图片描述

    2)配置core-site.xml,配置hdfs的地址和端口号
      
        fs.defaultFS
        hdfs://master:9000
      
        
          hadoop.tmp.dir
          /hadoop/tmp
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    3)配置hdfs-site.xml ,配置hdfs备份数量,配置namenode和datanode的数据路径

    /hadoop/data 和 /hadoop/name要提前建立此文件夹
    mkdirp -p /hadoop/data
    mkdirp -p /hadoop/name

    
      
        dfs.replication
        1
      
      
        dfs.datanode.data.dir
        file:/hadoop/data
      
      
        dfs.namenode.name.dir
        file:/hadoop/name
      
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    slave数量要大于等于备份的数量,否者会报错
    在这里插入图片描述

    4)配置 mapred-site.xml,指定MapReduce运行在yarn上,配置JobTracker的地址和端口。
      
      
        mapred.job.tracker
        localhost:9001
    
        
            mapreduce.framework.name
            yarn
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    5)配置yarn-site.xml,配置hdfs备份数量

    在这里插入图片描述
    配置参数

     
         yarn.resourcemanager.address
        master:8032
     
     
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
       
       yarn.nodemanager.aux-services.mapreduce.shuffle.class
       org.apache.hadoop.mapred.ShuffleHandler
    
    
        yarn.resourcemanager.scheduler.address
        master:8030  
        yarn.resourcemanager.resource-tracker.address
        master:8031
    
    
    yarn.resourcemanager.admin.address
        master:8033
    
    
        yarn.resourcemanager.webapp.address
        master:8089
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    在这里插入图片描述

    6)将这些参数发送到其它节点

    scp /opt/tools/hadoop-2.7.2/etc/hadoop/yarn-site.xml slave1:/opt/tools/hadoop-2.7.2/etc/hadoop/
    将core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml yarn-site.xml 发送到slave1 和slave2节点 在这里插入图片描述

    3、运行hadoop

    1)配置slaves

    在这里插入图片描述
    在这里插入图片描述

    2)在master上格式化namenode

    hadoop namenode -format
    在这里插入图片描述

    3)在master上启动集群

    cd /opt/tools/hadoop/sbin/
    ./start-all.sh
    在这里插入图片描述

    3)jps 查看进程,查看到说明已启动

    在这里插入图片描述

    4)进入slave1查看进程

    在这里插入图片描述

  • 相关阅读:
    数组元素的目标和
    QML动画
    C语言中常见的逻辑错误
    跨平台应用开发进阶(二十七)安卓应用加固签名后应用无法打开
    哈希索引和自适应哈希索引
    掌握Java中的FileReader类
    【Java面试】ConcurrentHashMap再JDK7和8中的区别以及ConcurrentHashMap底层实现
    redis 数据类型之字符串(string) 详细介绍
    Prometheus黑盒测试模块,监控TCP端口+ HTTP/HTTPS路由状态
    攻防世界题目练习——Web引导模式(三)(持续更新)
  • 原文地址:https://blog.csdn.net/m0_67390969/article/details/126553657