美文网首页大数据大数据,机器学习,人工智能
macOS Big Sur系统基于docker部署Hadoop集

macOS Big Sur系统基于docker部署Hadoop集

作者: 回笼觉觉猪 | 来源:发表于2021-05-12 10:50 被阅读0次

    博主部署环境的时候,本地系统环境版本为:macOS Big Sur 11.3.1

    1. 集群环境要求

    类别 版本
    OS centos7
    jdk jdk1.8
    hadoop Hadoop2.9.2

    2. 集群规划

    集群服务器名称 IP 集群规划
    linux001 172.16.0.2 namenode,datanode,nodemanager
    linux002 172.16.0.3 Datanode,nodemanager
    linux003 172.16.0.4 Datanode,nodemanager,ResourceManager,SecondNamenode

    3. 环境准备

    3.1 从docker-hub拉去系统镜像

    docker pull centos:7
    

    3.2 配置集群子网网络

    docker network create --subnet=172.16.0.0/16 hadoopnetgroup
    

    3.3 启动容器

    docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name hadoop-linux001 -h linux001 --net hadoopnetgroup --ip 172.16.0.2 -P -p 50070:50070 -p 8088:8088 centos:7 /usr/sbin/init
    

    3.4 上传jdk安装包和hadoop的安装包到容器中

    提前在镜像容器中/opt目录下创建所需要的目录

    lagou/software --用于存放软件安装包

    lagou/servers。 --用于安装需要的软件(jdk和hadoop)

    docker cp jdk-8u231-linux-x64.tar.gz hadoop_linux001:/opt/lagou/software
    docker cp hadoop-2.9.2.tar.gz hadoop_linux001:/opt/lagou/software 
    

    jdk和hadoop的下载地址我放在了网盘里(由于笔者的mac系统是macOS Big Sur,是arm64架构的,所以jdk用的是jdk-8u291-linux-aarch64.tar.gz)

    链接: https://pan.baidu.com/s/1rJH947bQzLNBnjNuMsDJFw 密码: ujqg

    3.5解压安装jdk和hadoop

    tar -zxvf jdk-8u231-linux-x64.tar.gz -C /opt/lagou/servers/
    tar -zxvf hadoop-2.9.2.tar.gz -C /opt/lagou/servers/
    

    3.6配置环境变量

    ##使用vi打开~/.bashrc,在文件末尾加上一下内容(docker容器在加载配置文件的是针对profile里面的修改不会自动加载,需要修改到.bashrc)
    
    ##JAVA_HOME
    export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_291
    export PATH=:$JAVA_HOME/bin:$PATH
    
    ##HADOOP_HOME 
    export HADOOP_HOME=/opt/lagou/servers/hadoop-2.9.2 
    export PATH=$PATH:$HADOOP_HOME/bin 
    export PATH=$PATH:$HADOOP_HOME/sbin
    
    
    

    安装完成后,通过source命令使配置文件生效

    source /etc/profile
    

    校验安装结果是否正确:

    java -version
    
    截屏2021-05-11 23.35.20-0747577.png
    hadoop version
    
    截屏2021-05-11 23.39.00.png

    以上能看到版本信息,就代表目前安装成功。

    3.7 hadoop集群配置

    集群配置

    Hadoop集群配置 = HDFS集群配置 + MapReduce集群配置 + Yarn集群配置

    1. HDFS集群配置

      • 将JDK路径明确配置给HDFS(修改hadoop-env.sh)

        export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_291
        
      • 指定NameNode节点以及数据存储目录(修改core-site.xml)

        <!-- 指定HDFS中NameNode的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://linux001:9000</value>
        </property>
        <!-- 指定Hadoop运行时产生文件的存储目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/lagou/servers/hadoop-2.9.2/data/tmp</value>
        </property>
        
    • 指定SecondaryNameNode节点(修改hdfs-site.xml)

      <!-- 指定Hadoop辅助名称节点主机配置 -->
      <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>linux003:50090</value>
      </property>
      <!--副本数量 -->
      <property>
          <name>dfs.replication</name>
          <value>3</value>
      </property>
      
    • 指定DataNode从节点(修改etc/hadoop/slaves文件,每个节点配置信息占一行)
    1. MapReduce集群配置

      • 将JDK路径明确配置给MapReduce(修改mapred-env.sh)

      • 指定MapReduce计算框架运行Yarn资源调度框架(修改mapred-site.xml)

        ##先通过cp命令copy一份配置
        cp mapred-site.xml.template mapred-site.xml
        
        vi mapred-site.xml
        
        <!-- 指定MR运行在Yarn上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        
    1. Yarn集群配置

      • 将JDK路径明确配置给Yarn(修改yarn-env.sh)

      • 指定ResourceManager老大节点所在计算机节点(修改yarn-site.xml)

        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>linux003</value>
        </property>
        <!-- Reducer获取数据的方式 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        
    • 指定NodeManager节点(会通过slaves文件内容确定,hdfs配置的时候已经修改过,无需重复配置

    3.8保存容器配置,制作镜像文件

    1. 查看docker 容器CONTAINER ID

      docker ps -a
      
    2. 停止容器

      docker stop 5f2a776cd8ae
      
    3. 保存容器为新的镜像

      docker commit 5f2a776cd8ae hadoop-centos-master:v1.0
      
    4. 通过新的镜像文件启动集群

      docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name hadoop-linux001 -h linux001 --net hadoopnetgroup --ip 172.16.0.2 -P -p 50070:50070 -p 8088:8088 hadoop-centos-master:v1.0 /usr/sbin/init
      
      docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name hadoop-linux002 -h linux002 --net hadoopnetgroup --ip 172.16.0.3 -P hadoop-centos-master:v1.0 /usr/sbin/init
      
      docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name hadoop-linux003 -h linux003 --net hadoopnetgroup --ip 172.16.0.4 -P hadoop-centos-master:v1.0 /usr/sbin/init
      
      

      到这里,集群基本安装完毕,剩下的就是调试和测试了。

    3.9 安装其他工具

    hadoop还需要依托一些工具才可以正常管理各个节点,所以下面我会列出一些我知道需要安装的工具,以供参考。

    yum -y install wget
    yum makecache               ##换源后建立本地缓冲区
    

    #安装openssh

    yum -y install openssh openssh-server openssh-clients
    
    ##启动sshd服务
    systemctl start sshd
    

    #配置ssh免密登陆

    ssh-keygen -t rsa -P ""     ##生成rsa密钥   一路回车即可
    cd ~/.ssh
    cat id_rsa.pub >authorized_keys
    

    #文件生成之后用scp将公钥文件分发到集群slave节点

    ssh root@linux002 'mkdir ~/.ssh'
    ssh root@linux003 'mkdir ~/.ssh'
    scp ~/.ssh/authorized_keys root@linux002:~/.ssh
    scp ~/.ssh/authorized_keys root@linux003:~/.ssh
    

    #验证免密登陆是否成功

    #安装网络工具

    yum install -y net-tools    
    

    #安装rsync用于后续同步脚本

    yum install -y rsync
    rsync --daemon
    

    4. 启动集群

    4.1 格式化hdfs

    hadoop namenode -format     
    

    看到common.Storage: Storage directory /opt/lagou/servers/hadoop-2.9.2/data/tmp/dfs/name has been successfully formatted.表示格式化成功。

    截屏2021-05-12 00.31.40.png

    4.2 启动hdfs

    cd $HADOOP_HOME/sbin
    sh start-dfs.sh
    

    #jsp检查启动情况

    截屏2021-05-12 10.13.35.png

    #同理检查linux002和linux003

    #通过页面也能查看hdfs启动情况

    访问地址:http://localhost:50070

    截屏2021-05-12 10.19.28.png

    4.3启动yarn

    sh start-yarn.sh
    

    #检查yarn启动情况同样适用jps可以查看

    截屏2021-05-12 10.27.15.png

    页面查看yarn

    截屏2021-05-12 10.33.08.png

    异常问题处理记录:

    问题:java -version或者hadoop version出现/lib64/ld-linux-x86-64.so.2: No such file or directory

    解决方案:检查内核,使用正确的内核版本jdk的包。

    检查命令:arch

    相关文章

      网友评论

        本文标题:macOS Big Sur系统基于docker部署Hadoop集

        本文链接:https://www.haomeiwen.com/subject/vlxadltx.html