返回

初学者福音:Ubuntu环境下搭建Hadoop集群

后端

搭建 Ubuntu Hadoop 集群的终极指南

前期准备

踏入大数据领域的第一步是搭建 Hadoop 集群。在开始之前,请确保您已完成以下准备工作:

  • 安装 Ubuntu 操作系统(推荐版本 18.04 LTS 或更高)
  • 充足的内存和存储空间
  • Hadoop 软件包(建议使用最新版本)
  • 已配置防火墙规则,允许 Hadoop 组件通信

集群节点规划

一个稳定可靠的 Hadoop 集群需要将不同组件分布在多个节点上。最基本的集群配置包括:

  • 1 个 NameNode:管理元数据
  • 1 个 SecondaryNameNode:辅助 NameNode
  • 多个 DataNode:存储数据块

安装 Hadoop 软件

在每个节点上解压 Hadoop 软件包:

tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local

添加 Hadoop 目录到环境变量:

export HADOOP_HOME=/usr/local/hadoop-3.3.1
export PATH=$PATH:$HADOOP_HOME/bin

配置 Hadoop 集群

修改 Hadoop 目录下的 conf 子目录中的配置文件:

core-site.xml

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
</property>

hdfs-site.xml

<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>

yarn-site.xml

<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>master</value>
</property>

启动 Hadoop 集群

配置完成后,启动集群:

start-dfs.sh
start-yarn.sh

验证 Hadoop 集群

使用以下命令验证集群运行状况:

hdfs dfsadmin -report
yarn application -list

集群节点信息显示在输出结果中,表明集群正常运行。

常见问题解答

1. 启动 NameNode 时出现错误“java.io.IOException: NameNode already running at master”

  • 检查 NameNode 是否已在其他节点上运行。
  • 如果是,停止其他 NameNode 并重新启动所需节点上的 NameNode。

2. DataNode 无法连接到 NameNode

  • 检查防火墙是否允许 NameNode 和 DataNode 之间的通信。
  • 检查 NameNode 和 DataNode 的配置是否一致,包括端口和目录。

3. Hadoop 作业失败并显示错误“java.lang.OutOfMemoryError: Java heap space”

  • 增加 YARN 容器分配的内存。
  • 在 yarn-site.xml 中修改 yarn.application.mapreduce.am.resource.mbyarn.container.executor.memory 属性。

4. 无法访问 HDFS Web UI

  • 检查防火墙是否允许端口 50070 的通信。
  • 检查 HDFS Web UI 服务是否已启动。使用 jps 命令检查 JobHistoryServer 是否正在运行。

5. 如何扩展 Hadoop 集群?

  • 添加新节点并配置它们。
  • 修改配置文件以包括新节点信息。
  • 重新启动集群。