用到的资源

你需要知道的

  • Linux 基础
    • 文件操作命令 cd \ rm \ cp \ mv \ ls
    • 解压命令 tar \ unzip
    • 编辑器 vim
    • 文件上传 scp
    • 其他 source \ sh \ bash

开始安装

1、将master节点JDK安装包解压到/opt/module路径中。

  1. 创建目录
    mkdir /opt/module
    cd /opt/module
  2. 从本地上传jdk压缩包
    scp jdk-8u212-linux-x64.tar.gz root@www.deadmau5v.cool:/opt/module
  3. 解压
    tar -xvf jdk-8u212-linux-x64.tar.gz
    cd jdk1.8.0_212

2、修改容器中/etc/profile文件,设置JDK环境变量并使其生效。

  1. 添加环境变量
    vim /etc/profile
    在尾部增加
    export JAVA_HOME=/opt/module/jdk1.8.0_212
    export PATH=$JAVA_HOME/bin:$PATH
    保存退出
  2. 刷新环境变量
    source /etc/profile

结果

[root@hecs-227425 jdk1.8.0_212]# java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available
    -server       to select the "server" VM
....
[root@hecs-227425 jdk1.8.0_212]# javac
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  ....

3、请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,用scp命令并使用绝对路径从master复制JDK解压后的安装文件到slave1、slave2节点(若路径不存在,则需新建),并配置slave1,slave2相关环境变量。

  1. 修改主机名称
    vim /etc/hostname
  2. 重启更新主机名称
    reboot
  3. 生成密钥对 并发送给服务器 免密登录
    ssh-keygen
    ssh-copy-id root@master
    ssh-copy-id root@slave1
    ssh-copy-id root@slave2

4、在master将Hadoop解压到/opt/module目录下,并将解压包分发至slave1、slave2中,其中master,slave1,slave2节点均作为datanode,配置好相关环境,初始化Hadoop环境namenode。

  1. 上传到 master
    scp hadoop-3.1.3.tar.gz root@www.deadmau5v.cool:/opt/module

  2. 解压
    tar -xvf hadoop-3.1.3.tar.gz

  3. 分发至slave1、slave2
    scp -r /opt/module root@slave1:/opt/module

  4. 修改配置文件
    vim core-site.xml

<!--NameNode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata1:8020</value>
</property>

<!--数据存储位置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>

<!--配置用户-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>deadmau5v</value>
</property>

vim hdfs-site.xml


  <!-- 在configuration中添加以下配置 -->  
    
  <!-- NameNode对外暴露的Web端访问地址 -->
  <property>
    <name>dfs.namenode.http-address</name>
    <value>hadoop102:9870</value>
  </property>

  <!-- 2NN 对外暴露的Web端访问地址(2NN安装在hadoop104上) -->
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop104:9868</value>
  </property>

vim yarn-site.xml

  <!-- 指定MR走shuffle -->
  <!-- 在yarn-default.xml中该项默认值为空,但是官方推荐使用mapreduce_shuffle -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>

  <!-- 指定ResourceManager的地址 -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>

  <!-- 环境变量的继承 -->
  <!-- Hadoop3.1.x需要配置,因为yarn-default.xml中该项默认值缺少了HADOOP_MAPRED_HOME -->
  <!-- 到了Hadoop3.2.x就不需要再配置该项了,可以直接使用yarn-default.xml中的默认值 -->
  <property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
  </property>

vim mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

<property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
  1. 初始化
    hdfs namenode -format

    image

  2. 修改启动用户
    vim /etc/profile

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

如果报错 尝试给自己密钥 ssh-copy-id root@127.0.0.1
如果找不到JAVA_HOME 修改hadoop-env.sh
export JAVA_HOME=java位置

  1. 同步集群 并启动
    rsync -av ./ root@slave1:/opt/module/hadoop-3.1.3/
    sbin/start-dfs.sh
    image-1677240061554
    image-1677240144698
    image-1677240147755