Hadoop-3.3.4完全分布式安装、搭建、配置

!纯操作!无讲解!
VMware已下载安装,已经准备好linux虚拟机(Ubuntu),网络类型为Nat

修改固态ip

  • 查看网络配置信息
    1
    ifconfig
  • 修改配置文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sudo vim /etc/netplan/00-installer-config.yaml  #文件名可能不同

    #内容如下:
    network:
    ethernets:
    ens33:
    addresses: [192.168.159.137/24] #这里的ip为刚刚ifconfig得到的ip,后面加“/24”
    dhcp4: no
    optional: true
    gateway4: 192.168.159.2 #将上面的ip最后一位改为2
    nameservers:
    addresses: [114.114.114.114] #其他域名解析器也是可以的
    version: 2
  • 应用配置
    1
    sudo netplan apply

下载安装配置Java&Hadoop

  • 下载Java&Hadoop

    Java清华源https://mirror.tuna.tsinghua.edu.cn/sourceware/java/
    Hadoop清华源https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/

  • 将Java&Hadoop解压到/usr/local目录下
    1
    2
    3
    sudo tar -xvf jdk-11.0.16.1_linux-x64_bin.tar.gz -C /usr/local
    sudo tar -zxf hadoop-3.3.4.tar.gz -C /usr/local
    #'-c'的C要大写!
  • 配置环境变量
    1
    2
    3
    4
    5
    6
    7
    sudo vim /etc/profile

    #末尾添加:
    export JAVA_HOME=/usr/local/jdk11
    export PATH=$PATH:$JAVA_HOME/bin
    export HADOOP_HOME=/usr/local/hadoop-3.3.4
    export PATH=${HADOOP_HOME}/sbin:${HADOOP_HOME}/bin:$PATH
  • 使配置文件立即生效
    1
    2
    source /etc/profile
    #'.'号可以代替source
  • 修改Hadoop-env.sh文件,末尾添加
    1
    2
    export JAVA_HOME=/usr/local/jdk11
    export HADOOP_LOG_DIR=/home/rain4ky/myworkspace/hadoop/logs #这里可以写其他地址
  • 修改core-site.xml文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    cd /usr/local/hadoop-3.3.4/etc/hadoop
    sudo vim core-site.xml
    #在<configuration></configuration>间添加内容:
    <configuration>
    <property>
    <!-- 指定NameNode的地址 -->
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    </property>
    <property>
    <!-- 指定hadoop数据的存储目录 -->
    <name>hadoop.tmp.dir</name>
    <value>/home/rain4ky/myworkspace/hadoop/tmp</value>
    </property>
    </configuration>
  • 修改hdfs-site.xml文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    <property>
    <name>dfs.namenode.http-address</name>
    <value>master:9870</value>
    </property>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave1:9868</value>
    </property>
    </configuration>
    # 一葫芦画瓢都做不到的话,还是放弃吧。
  • 修改yarn-site.xml文件
    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
    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffHandler</value>
    </property>
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
    </property>
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8032</value>
    </property>
    <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8030</value>
    </property>
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value>
    </property>
    </configuration>
  • 修改mapred-site.xml文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    </configuration>
  • 修改workers
    1
    2
    3
    master
    slave1
    slave2
  • 配置ip映射
    1
    2
    3
    4
    5
    vim /etc/hosts
    # 添加ip映射
    192.168.159.137 master
    192.168.159.138 slave1
    192.168.159.139 slave2
  • 克隆虚拟机

    关闭虚拟机,在选项卡中:虚拟机>管理>克隆,创建完整克隆,克隆两次,(名称分别为slave1,slave2)

  • 配置克隆机
    1
    2
    3
    4
    5
    6
    7
    # slave1和slave2修改主机名
    vim /etc/hostname
    # 分别改为slave1,slave2

    # slave1和slave2修改ip
    sudo vim /etc/netplan/00-installer-config.yaml
    # 将addresses最后的137改为138和139(也可以是128-254间的任意不同值)
  • 虚拟机间ssh免密登录
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sudo apt-get install openssh-server #三台虚拟机都需要

    #打开master

    cd ~/.ssh/
    ssh-keygen
    ssh-copy-id -i ~/.ssh/id_rsa.pub rain4ky@192.168.159.137 #三个节点都要!

    #验证
    ssh master
    #如果没有输入密码就成功了,slave1和slave2同理
  • 以下步骤只需在master里进行
  • 初始化文件系统
    1
    hdfs namenode -format
  • 启动/关闭hadoop文件系统
    1
    start-all.sh/stop-all.sh
  • 进程查看
    1
    2
    jps
    #三台虚拟机都可以查看(master上可以ssh到其他虚拟机运行jps)