Hadoop 安装

VMware安装

Ubuntu 安装

bash 复制代码
# 创建 hadoop 专门用户
sudo useradd -m hadoop -s /bin/bash

# 为 hadoop 用户设置密码,之后需要连续输入两次密码
sudo passwd hadoop

# 为 hadoop 用户增加管理员权限,将 hadoop 添加到 sudo 管理组
sudo adduser hadoop sudo

# 切换当前用户为用户 hadoop
su hadoop

# 更新 hadoop 用户的 apt ,方便后面的安装
sudo apt update

SSH 安装

bash 复制代码
sudo apt update

# 安装 SSH client/server
sudo apt install -y openssh-server
sudo apt install -y openssh-client

cd ~/.ssh/

# 执行这条命令后,连按三次回车来确认配置
ssh-keygen -t rsa

# 加入授权
cat ./id_rsa.pub >> ./authorized_keys

chmod 600 ~/.ssh/authorized_keys

# 检验是否配置成功
ssh localhost

pdsh 安装

pdsh 是一个 "基于 SSH 的批量远程执行工具",专门用来 同时在多台机器上运行 shell 命令

bash 复制代码
# 更新软件源 + 直接安装pdsh(官方源自带,不用编译)
sudo apt update && sudo apt install -y pdsh

# pdsh 默认用老协议 rsh,我们要强制它只用 SSH

# 永久设置 pdsh 默认使用 SSH 协议
echo "export PDSH_RCMD_TYPE=ssh" >> ~/.bashrc

# 让配置立即生效
source ~/.bashrc

# 测试是否配置成功
pdsh -w localhost date

Java 安装

bash 复制代码
# 进入 Downloads 目录
cd Downloads/

# java 下载
wget https://download.java.net/java/GA/jdk18/43f95e8614114aeaa8e8a5fcf20a682d/36/GPL/openjdk-18_linux-x64_bin.tar.gz

# 解压
tar -xzvf openjdk-18_linux-x64_bin.tar.gz -C ~/java/

# 验证一下是否安装成功
cd ~/java/jdk-18/bin

./java -version

# 配置环境变量
vi /etc/profile

# 在文件末尾添加
export JAVA_HOME=/home/hadoop/java/jdk-18  # 这里必须写绝对路径,不能用 ~
export PATH=$JAVA_HOME/bin:$PATH

# 更新
source /etc/profile

查看版本号,验证一下是否安装成功

Hadoop 安装

bash 复制代码
# Hadoop 安装
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz

# 直接解压到当前用户目录
tar -zxvf hadoop-3.3.5.tar.gz -C ~/hadoop/

# 配置环境变量
vi /etc/profile

# 在文件末尾添加
export HADOOP_HOME=/home/hadoop/hadoop/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# 更新
source /etc/profile

# 查看是否设置成功
hadoop version

Hadoop 测试案例

Hadoop 官方自带的 WordCount 经典测试案例 ,用来验证 Hadoop 安装是否成功、能不能正常跑 MapReduce 任务!

bash 复制代码
# 创建一个文件夹 用来存放要处理的原始数据文件
mkdir input


# 把配置文件复制到 input 里
# 用这些 XML 文件 当测试数据,让 Hadoop 去统计里面的单词
cp ./hadoop-3.3.5/etc/hadoop/*.xml input


# 运行官方示例
# 把结果写到 output 文件夹
hadoop jar ./hadoop-3.3.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep input output 'dfs[a-z.]+'

# 查看运行结果
cat output/*


# 在 HDFS 分布式文件系统里,强制删除名为 output 的文件夹
hdfs dfs -rm -r -f output

Hadoop 单机配置

bash 复制代码
cd /home/hadoop/hadoop-3.3.5/

# Hadoop 的临时工作目录
mkdir tmp

# 存放 NameNode 元数据(文件目录树)
mkdir tmp/name

# 存放 DataNode 真实数据块
mkdir tmp/data

# 让 Hadoop 能随便读写,不报错
chmod 777 tmp tmp/name tmp/data

配置 JAVA_HOME

修改 hadoop-3.3.5/etc/hadoop/hadoop-env.sh 这个文件

修改 hadoop-3.3.5/etc/hadoop/core-site.xml 这个文件

  • 临时文件就放我刚创建的 tmp 文件夹里!
  • HDFS 访问地址是本机 9000 端口
XML 复制代码
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hadoop-3.3.5/tmp</value>
        <description>A base for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

修改 hadoop-3.3.5/etc/hadoop/hdfs-site.xml 这个文件

  • dfs.replication=1 ==》单机模式,副本数 = 1(不用备份)

  • dfs.namenode.name.dir ==》NameNode 元数据存在 tmp/dfs/name

  • dfs.datanode.data.dir ==》 DataNode 真实数据存在 tmp/dfs/data

XML 复制代码
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hadoop-3.3.5/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hadoop-3.3.5/tmp/dfs/data</value>
    </property>
</configuration>

以上是单机本地运行需要配置的内容。

如果要配置成伪分布,则需要继续配置mapred-site.xml、yarn-site.xml。

给 HDFS 分布式文件系统 初始化、格式化!

bash 复制代码
hdfs namenode -format

格式化只需要执行 1 次!!!

千万不要重复执行!!!

重复格式化会导致集群无法启动,数据全部丢失!

启动 HDFS

Hadoop 用户进入 /home/hadoop/hadoop-3.3.5 目录

bash 复制代码
# 启动
sbin/start-dfs.sh

**启动 Hadoop 分布式存储系统!**会自动启动:

  • NameNode(总管)
  • DataNode(存数据)
  • SecondaryNameNode(辅助)

hadoop守护程序日志输出将写入 HADOOP_LOG_DIR目录(默认为 HADOOP_HOME/logs)

Web 界面查看 HDFS 状态

bash 复制代码
http://localhost:9870

打开浏览器,可视化看 Hadoop 状态

  • 存了多少数据
  • 有多少节点
  • 健康状态

这是管理 Hadoop 最方便的页面!

创建 HDFS 目录

bash 复制代码
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hadoop

上传文件到 HDFS

把本地的配置文件上传到 Hadoop 分布式存储里

让 Hadoop 可以读取并处理。

bash 复制代码
hdfs dfs -mkdir input
hdfs dfs -put etc/hadoop/*.xml input

运行 MapReduce 测试任务

bash 复制代码
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep input output 'dfs[a-z.]+'

查看分布式文件系统上的输出

bash 复制代码
hdfs dfs -cat output/*

记得删除输出文件

bash 复制代码
hdfs dfs -rm -r -f output

停止 HDFS

bash 复制代码
# 进入 Hadoop 安装目录(如果不在的话)
cd /home/hadoop/hadoop-3.3.5

# 停止 HDFS 所有守护进程
sbin/stop-dfs.sh

验证服务是否停止

bash 复制代码
jps

如果看不到 NameNodeDataNodeSecondaryNameNode 等进程,就说明服务已经完全停止了

相关推荐
CNSSIRD数据库2 小时前
中国企业环境信用数据库2003-2026
大数据·数据库·数据分析·论文笔记
大大大大晴天2 小时前
每天认识一个组件:数据集成Apache SeaTunnel
大数据
广州宏帝箱包3 小时前
出口箱包的包装标准:防潮、防摔、运输安全的设计要点
大数据·网络
Geeys3 小时前
拼多多新店起流玩法:免费流量打底+付费流量爆发
大数据
日常筹谋记3 小时前
自动化仓储安全防护工况评估:明治传感器AS-33C技术适配性分析
大数据·运维·创业创新·业界资讯
updayday8543 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
baopixiaoz3 小时前
BeeQuant × BeeAgent:用AI加速策略验证
大数据·人工智能·python·区块链
智商网输送线配件5 小时前
2026 自动化流水线配件采购难题破解:小批量混批与非标定制的供应链实测
大数据·人工智能·自动化·智商网·流水线设备配件
辛迪聊物业数字化5 小时前
智慧物业管理平台架构实践:从SaaS物业云到商管系统的全模块落地
大数据·微服务·php
SelectDB5 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析