• 使用Docker伪分布式安装hadoop


    1. 安装Docker Desktop

    官网地址
    在这里插入图片描述

    2. 下载linux内核更新包(安装好Docker重启之后,会自动提示安装它)

    官网地址
    在这里插入图片描述

    3. 重启计算机后打开docker desktop

    4. win + r 打开 cmd窗口

    5. 拉取镜像

    docker pull ubuntu:16.04
    
    • 1

    6. 创建桥接网络(Docker默认使用桥接,此处亦使用桥接)

    将网络名称命名为hadoop

    docker network create -d bridge hadoop
    
    • 1

    7. 替换镜像源

    挂载本地文件至docker

    1. 将本地文件挂载至镜像ubuntu:16.04,并启动容器,打开交互式终端
      此处将目录E:COURSESpark 挂载至 目录 /home

      将本地文件挂载至镜像ubuntu:16.04,并启动容器,打开交互式终端

      docker run -v E:COURSESpark:/home -it ubuntu:16.04

    2. 在目录E:COURSESpark下创建文件sourcelist.txt,文件内容如下:
      阿里云镜像源(Ubuntu)
      其他系统镜像源还请自行寻找,注意替换时系统版本须一致

      deb http://mirrors.aliyun.com/ubuntu/ xenial main
      deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

      deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
      deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

      deb http://mirrors.aliyun.com/ubuntu/ xenial universe
      deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
      deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
      deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

      deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
      deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
      deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
      deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

    3. 在cmd窗口中执行命令

      使用挂载到/home下的文件(sourcelist.txt)替换文件/etc/apt/sources.list

      mv /home/sourcelist.txt /etc/apt/sources.list

    解释

    参数

    含义

    - i

    交互式

    -t

    terminal(终端)

    -v

    指定挂载(源)目录到(目标)目录

    5. 安装openssh、jdk等

    运行如下命令:

    apt-get update
    apt install vim
    apt install net-tools
    apt install openjdk-8-jdk
    apt install scala
    apt-get install openssh-server
    # 生成密钥
    ssh-keygen -t rsa -P "“
    # 将公钥追加到authorized_keys 文件中 
    cat .ssh/id_rsa.pub >> .ssh/authorized_keys
    # 启动 SSH 服务  
    service ssh start
    # 免密登录自己 
    ssh 127.0.0.1
    # 自动启动 SSH 服务,将命令service ssh start写入文件~/.bashrc中
    vim ~/.bashrc
    service ssh start
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    6. hadoop 下载地址

    清华软件镜像站
    清华镜像站中hadoop地址
    在这里插入图片描述

    # 在哪个目录下执行以下命令,文件便下载到哪个目录
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.2.tar.gz
    
    • 1
    • 2

    7. 解压hadoop

    # 解压文件hadoop-3.3.2.tar.gz至目录/usr/local/
    tar -zxvf hadoop-3.3.2.tar.gz -C /usr/local/
    # 文件重命名
    mv /usr/local/hadoop-3.3.2 /usr/local/hadoop
    
    • 1
    • 2
    • 3
    • 4

    8. 配置hadoop

    1. 修改 /etc/profile
    vim /etc/profile
    
    • 1

    在该文件中添加如下内容:

    #java
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export JRE_HOME=${JAVA_HOME}/jre    
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
    export PATH=${JAVA_HOME}/bin:$PATH
    #hadoop
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export HADOOP_PREFIX=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME 
    export HADOOP_HDFS_HOME=$HADOOP_HOME 
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_YARN_HOME=$HADOOP_HOME 
    export HADOOP_INSTALL=$HADOOP_HOME 
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
    export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec 
    export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
    export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
    export HDFS_DATANODE_USER=root
    export HDFS_DATANODE_SECURE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export HDFS_NAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    
    
    # 使变量生效
    source /etc/profile
    
    • 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
    • 27
    • 28
    1. 修改hadoop-env.sh
    vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
    
    • 1

    在文件中添加如下内容:

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.修改core-site.xml

    vim /usr/local/hadoop/etc/hadoop/core-site.xml
    
    • 1

    将原文件的替换为如下内容:

    
        
            fs.default.name
            hdfs://h01:9000
        
        
            hadoop.tmp.dir      
            /home/hadoop3/hadoop/tmp
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4.修改hdfs-site.xml

    vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
    
    • 1

    将原文件的替换为如下内容:

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

    5.修改mapred-site.xml

    vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
    
    • 1

    将原文件的替换为如下内容:

    
        
            mapreduce.framework.name
            yarn
        
        
            mapreduce.application.classpath
            
                /usr/local/hadoop/etc/hadoop,
                /usr/local/hadoop/share/hadoop/common/*,
                /usr/local/hadoop/share/hadoop/common/lib/*,
                /usr/local/hadoop/share/hadoop/hdfs/*,
                /usr/local/hadoop/share/hadoop/hdfs/lib/*,
                /usr/local/hadoop/share/hadoop/mapreduce/*,
                /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
                /usr/local/hadoop/share/hadoop/yarn/*,
                /usr/local/hadoop/share/hadoop/yarn/lib/*
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    6.修改yarn-site.xml

    vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
    
    • 1

    将原文件的替换为如下内容:

    
        
      		yarn.resourcemanager.hostname
            h01
        
        
            yarn.nodemanager.aux-services
            mapreduce_shuffle
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    7. 修改workers文件

    vim /usr/local/hadoop/etc/hadoop/workers
    
    • 1

    填入如下内容(伪分布式)

    h01
    h02
    
    • 1
    • 2

    名称

    地位

    h01

    主节点

    h02

    从节点

    8. 保存镜像(另外打开一个cmd窗口[第二个cmd窗口])

    # 当前容器 可使用命令 docker ps 查看镜像ID
    docker commit -m 说明 -a 作者 当前容器 目标镜像
    
    • 1
    • 2

    本人此处为

    docker commit -m “haddop” -a “hadoop“ 5cd9799528ec hdp
    
    • 1

    9. 运行master主节点容器

    docker run -it --network hadoop -h "h01" --name "h01" -p 9870:9870 -p 8088:8088 hdp /bin/bash
    
    • 1

    9. 运行slave从节点容器(另外打开一个cmd窗口[第三个cmd窗口])

    docker run -it --network hadoop -h "h02" --name "h02" hdp /bin/bash
    
    • 1

    10. 格式化(第二个cmd窗口下)

    /usr/local/hadoop/bin/hadoop namenode -format
    
    • 1

    11. 启动集群(第二个cmd窗口下)

    /usr/local/hadoop/sbin/start-all.sh
    
    • 1

    12. 查看集群状态(第二个cmd窗口下)

    1. 当前进程

    jps
    
    • 1

    2. 查看状态

    /usr/local/hadoop/bin/hadoop dfsadmin -report
    
    • 1

    3. 通过web端

    地址栏输入

    127.0.0.1:8088
    
    • 1

    13. 测试wordcount(第二个cmd窗口下)

    1. 创建输入文件

      /usr/local/hadoop/bin/hadoop dfs -mkdir /input
      /usr/local/hadoop/bin/hadoop dfs -copyFromLocal /usr/local/hadoop/LICENSE.txt /input

    2. 运行实例

      /usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar wordcount /input /output

    3. 查看结果

      /usr/local/hadoop/bin/hadoop dfs -ls /output
      /usr/local/hadoop/bin/hadoop dfs -cat /output/part-r-00000

    附录

    1. 连接容器

    docker exec -it 容器ID /bin/bash 
    
    • 1

    2. 删除镜像

    docker rmi 镜像名
    
    • 1
  • 相关阅读:
    第四十三章 持久对象和SQL - 查看存储的数据
    Clickhouse监控_使用Prometheus+Grafana来监控Clickhouse服务和性能指标
    计算机网络(HTTPS)
    惊险的十天
    Games202,作业1(QT下实现PCSS)
    mac上mongodb 以及可视化工具 下载以及安装
    mybatis
    初刷leetcode题目(4)——数据结构与算法
    已更新 联通 电信 tiny模式
    Linux学习第30天:Linux 自带的 LED 灯驱动实验:驱动开发思维方式的转变势在必行
  • 原文地址:https://blog.csdn.net/m0_67402235/article/details/126553640