1下载前

1.1 系统要求

  • 64 位 Linux(CentOS 7/8、Ubuntu 20+ 均可)

  • 内存 ≥4 GB,磁盘 ≥20 GB

  • 已配置好静态 IP 与主机名(示例主机名:hadoop-master)

1.2 安装 JDK(Hadoop 3.x 须 1.8+)

# CentOS
sudo yum -y install java-1.8.0-openjdk-devel
# Ubuntu
sudo apt-get -y install openjdk-8-jdk

# 验证
java -version          # 能输出版本即可
echo $JAVA_HOME        # 若为空,在 ~/.bashrc 里追加
# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

1.3 创建专用用户(可选,但生产必做)

sudo useradd -m hadoop -s /bin/bash
echo 'hadoop  ALL=(ALL) NOPASSWD:ALL' | sudo tee -a /etc/sudoers
su - hadoop            # 后续步骤都用该用户

1.4 SSH 本机免密(伪分布必须)

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh localhost          # 第一次输 yes,以后直接进

2下载 Hadoop

2.1登录Apache官方网站下载

点击最新版(如hadoop-3.3.6)的二进制包下载。

获取二进制包,用命令行下载(推荐):在终端中运行以下命令直接下载:

# 进到家目录
cd ~
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
tar -zxvf hadoop-3.3.5.tar.gz
mv hadoop-3.3.5 hadoop   # 文件夹改名,省事
rm hadoop-3.3.5.tar.gz   # 清理安装包

2.2 目录结构

hadoop/
├─bin/       # 客户端脚本
├─sbin/      # 守护进程脚本
├─etc/hadoop/# 配置文件
├─lib/       # 本地库
└─share/     # 官方示例 jar

3安装和配置 Hadoop

3.1 环境变量(三台机器都做,单机只一次)

echo '# Hadoop Environment' >> ~/.bashrc
echo 'export HADOOP_HOME=$HOME/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> ~/.bashrc
source ~/.bashrc

3.1 环境变量(三台机器都做,单机只一次)

① hadoop-env.sh

# 找到 export JAVA_HOME= 一行,改成
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

② core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop-data/tmp</value>
  </property>
</configuration>

③ hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/hadoop/hadoop-data/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/hadoop/hadoop-data/datanode</value>
  </property>
</configuration>

④ mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

⑤ yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
  </property>
</configuration>

3.3 创建数据目录

mkdir -p ~/hadoop-data/{tmp,namenode,datanode}

4验证安装

4.1 首次格式化 HDFS(只需一次)

hdfs namenode -format   # 看到 “Storage directory … has been successfully formatted” 即 OK

4.2 启动守护进程

hdfs namenode -format   # 看到 “Storage directory … has been successfully formatted” 即 OK

4.3 查进程

jps
# 至少看到 5 个:
# NameNode
# DataNode
# SecondaryNameNode
# ResourceManager
# NodeManager

验证 YARN 是否启动成功

  1. 看进程

    jps | grep -E 'ResourceManager|NodeManager'

    终端里只要同时出现
    ResourceManager
    NodeManager
    即代表 YARN 的两个核心守护进程已正常运行。

  2. 看 Web-UI
    浏览器打开http://<你的主机IP>:8088能看到 “Cluster Metrics” 表格、Memory Total > 0,说明 ResourceManager 正常收集到 NodeManager 心跳。(单机伪分布地址就是 http://localhost:8088)

  3. 跑一个官方 MapReduce 作业

    只要作业 SUCCEEDED 且能统计出单词次数,就证明 YARN 调度 & MapReduce 框架整条链路畅通。

    只要作业 SUCCEEDED 且能统计出单词次数,就证明 YARN 调度 & MapReduce 框架整条链路畅通。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐