Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 中的大数据 —— 知识点详解 (24)

Ubuntu 22.04 中的大数据 ------ 知识点详解

1. 大数据概述

1.1 大数据定义

大数据(Big Data)指无法用传统数据库工具在合理时间内捕获、存储、管理和分析的数据集合,具有 5V 特征

  • Volume(体量大):TB/PB 级别
  • Velocity(速度快):实时/流式处理
  • Variety(类型多):结构化、半结构化、非结构化
  • Veracity(真实性):数据质量
  • Value(价值密度低):需挖掘才有价值

1.2 大数据核心技术

技术 功能
HDFS 分布式文件系统,高容错、高吞吐
MapReduce 分布式计算模型,分"Map"和"Reduce"阶段
YARN 资源调度框架(本章以基础 Hadoop 为主)

本章重点:在 Ubuntu 22.04 上部署 Apache Hadoop 3.3.6(最新稳定版之一)


2. 大数据基础环境准备

2.1 更新系统软件包

bash 复制代码
sudo apt update && sudo apt upgrade -y

2.2 安装并配置 Java 环境(Hadoop 依赖 Java 8 或 11)

Ubuntu 22.04 默认不包含 Oracle JDK,推荐使用 OpenJDK 11:

bash 复制代码
sudo apt install openjdk-11-jdk -y

验证安装:

bash 复制代码
java -version
javac -version

预期输出:

复制代码
openjdk version "11.0.23" 2024-04-16
OpenJDK Runtime Environment (build 11.0.23+9-Ubuntu-122.04)

2.3 配置 JAVA_HOME 环境变量

bash 复制代码
# 查找 Java 安装路径
readlink -f $(which java) | sed "s:bin/java::"
# 输出示例:/usr/lib/jvm/java-11-openjdk-amd64/

# 编辑 ~/.bashrc
vim ~/.bashrc

在文件末尾添加:

bash 复制代码
# Java 环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

生效配置:

bash 复制代码
source ~/.bashrc
echo $JAVA_HOME  # 应输出路径

3. 安装并配置 SSH(用于 Hadoop 节点通信)

即使单机模式,Hadoop 也通过 SSH 本地通信。

3.1 安装 SSH 服务

bash 复制代码
sudo apt install openssh-server -y

3.2 配置免密登录(localhost)

bash 复制代码
# 生成 RSA 密钥对(一路回车使用默认)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

# 将公钥加入授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 设置权限(重要!)
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

测试免密登录:

bash 复制代码
ssh localhost
# 应无需密码直接登录,输入 exit 退出

4. 安装 Hadoop 开发平台

4.1 下载 Hadoop 安装包

bash 复制代码
cd /tmp
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

✅ 建议从 Apache 官网 获取最新稳定版链接。

4.2 解压并移动到系统目录

bash 复制代码
sudo tar -xzf hadoop-3.3.6.tar.gz -C /opt/
sudo mv /opt/hadoop-3.3.6 /opt/hadoop
sudo chown -R $USER:$USER /opt/hadoop

4.3 配置 Hadoop 环境变量

编辑 ~/.bashrc

bash 复制代码
nano ~/.bashrc

追加以下内容:

bash 复制代码
# Hadoop 环境变量
export HADOOP_HOME=/opt/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

生效:

bash 复制代码
source ~/.bashrc
hadoop version  # 验证是否成功

5. Hadoop 的运行模式

模式 说明 适用场景
单机模式(Standalone) 默认模式,无守护进程,使用本地文件系统 快速测试 MapReduce 程序
伪分布式(Pseudo-Distributed) 所有守护进程运行在同一台机器,模拟集群 开发、学习
完全分布式 多节点集群 生产环境

6. 单机模式下的大数据项目实例

6.1 新建工程目录

bash 复制代码
mkdir -p ~/hadoop-demo/standalone
cd ~/hadoop-demo/standalone

6.2 准备输入数据文件

bash 复制代码
# 创建输入目录
mkdir input

# 写入示例文本
echo "Hello Hadoop" > input/file1.txt
echo "Hello Big Data" > input/file2.txt
echo "Hadoop is powerful" >> input/file2.txt

6.3 运行 Hadoop 自带的 WordCount 示例

bash 复制代码
# 运行 MapReduce 任务(单机模式)
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
  wordcount input output

⏱️ 首次运行会编译 Job,稍慢。

6.4 查看测试效果

bash 复制代码
# 查看输出结果
cat output/part-r-00000

预期输出:

复制代码
Big	1
Data	1
Hadoop	2
Hello	2
is	1
powerful	1

✅ 单机模式无需任何配置,直接使用本地文件系统。


7. 伪分布式模式下的大数据项目实例

7.1 创建 Hadoop 数据目录

bash 复制代码
mkdir -p ~/hadoop-data/namenode
mkdir -p ~/hadoop-data/datanode

7.2 修改 core-site.xml

xml 复制代码
<!-- 文件路径: $HADOOP_HOME/etc/hadoop/core-site.xml -->
<configuration>
    <!-- 指定 HDFS 的 NameNode 地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

    <!-- 临时目录(用于存储 Hadoop 运行时临时文件) -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/$(USER)/hadoop-data/tmp</value> <!-- 替换 $(USER) 为实际用户名 -->
    </property>
</configuration>

💡 实际使用时将 $(USER) 替换为你的用户名,例如 /home/ubuntu/hadoop-data/tmp

7.3 修改 hdfs-site.xml

xml 复制代码
<!-- 文件路径: $HADOOP_HOME/etc/hadoop/hdfs-site.xml -->
<configuration>
    <!-- NameNode 元数据存储路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/ubuntu/hadoop-data/namenode</value>
    </property>

    <!-- DataNode 数据块存储路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/ubuntu/hadoop-data/datanode</value>
    </property>

    <!-- 副本数(单机设为 1) -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

7.4 (可选)修改 mapred-site.xml

bash 复制代码
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template \
   $HADOOP_HOME/etc/hadoop/mapred-site.xml

编辑:

xml 复制代码
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

7.5 (可选)修改 yarn-site.xml

xml 复制代码
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

📌 本章聚焦 HDFS + MapReduce,YARN 可简化配置。

7.6 初始化 NameNode

bash 复制代码
# 格式化 NameNode(首次启动必须执行)
hdfs namenode -format

成功标志:出现 Storage directory ... has been successfully formatted.

7.7 启动 Hadoop 伪分布式集群

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

# 启动 YARN(可选,用于 MapReduce on YARN)
start-yarn.sh

7.8 查看启动的 Hadoop 进程

bash 复制代码
jps

预期输出(可能略有不同):

复制代码
12345 NameNode
12456 DataNode
12567 SecondaryNameNode
12678 ResourceManager
12789 NodeManager

✅ 若缺少某些进程,检查日志:$HADOOP_HOME/logs/

7.9 在 HDFS 上准备数据

bash 复制代码
# 创建 HDFS 目录
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/ubuntu  # 替换为你的用户名

# 上传本地 input 目录到 HDFS
hdfs dfs -put ~/hadoop-demo/standalone/input /user/ubuntu/

验证上传:

bash 复制代码
hdfs dfs -ls /user/ubuntu/input

7.10 运行伪分布式 WordCount

bash 复制代码
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
  wordcount /user/ubuntu/input /user/ubuntu/output

查看结果:

bash 复制代码
hdfs dfs -cat /user/ubuntu/output/part-r-00000

7.11 关闭 Hadoop

bash 复制代码
stop-yarn.sh
stop-dfs.sh

7.12 再次启动 Hadoop

bash 复制代码
start-dfs.sh
start-yarn.sh
jps  # 验证进程

⚠️ 注意:不要重复格式化 NameNode,否则会丢失元数据!


8. 本章小结

本章完整演示了在 Ubuntu 22.04 上部署 Hadoop 单机模式与伪分布式模式 的全过程,包括:

  • Java 11 环境配置
  • SSH 免密登录设置
  • Hadoop 3.3.6 安装与环境变量配置
  • 单机模式快速运行 WordCount
  • 伪分布式模式配置核心 XML 文件(core-site.xml, hdfs-site.xml)
  • NameNode 初始化、HDFS 数据上传、MapReduce 任务提交
  • 进程管理与日志查看

所有配置文件均提供可直接使用的模板,命令附带详细注释,适用于大数据初学者、开发者及教学实验环境搭建。

📌 最佳实践建议

  • 开发阶段使用伪分布式;
  • 生产环境采用完全分布式集群 + ZooKeeper + HA 配置;
  • 使用 hdfs dfsadmin -report 查看 DataNode 状态;
  • Web UI 访问:NameNode http://localhost:9870,ResourceManager http://localhost:8088

通过本章实践,读者已具备在 Ubuntu 上构建 Hadoop 开发环境的核心能力,为后续学习 Hive、Spark、HBase 等大数据生态组件奠定坚实基础。

相关推荐
幽络源小助理9 小时前
逆向工程系统学习资源图谱(2026):从 Windows 内核、安卓安全到游戏协议分析的全栈教程清单
学习·安全·游戏·逆向工程
Larry_Yanan9 小时前
Qt多进程(九)命名管道FIFO
开发语言·c++·qt·学习·ui
ybb_ymm9 小时前
尝试新版idea及免费学习使用
java·学习·intellij-idea
优雅的潮叭9 小时前
c++ 学习笔记之 模板元编程
c++·笔记·学习
城数派9 小时前
2019-2025年各区县逐月新房房价数据(Excel/Shp格式)
大数据·数据分析·excel
君鼎9 小时前
计算机网络第五章:传输层学习总结
学习·计算机网络
xian_wwq9 小时前
【学习笔记】网络安全L3级模型功能解析
笔记·学习·安全
专注数据的痴汉9 小时前
「数据获取」中国会计年鉴(1996-2024)
大数据·人工智能·信息可视化
oMcLin9 小时前
如何在Ubuntu 22.04 LTS上通过配置ZFS存储池,提升高吞吐量数据库的读写性能与可靠性?
linux·数据库·ubuntu