跳到主要内容

Hadoop 伪分布式模式

介绍

Hadoop伪分布式模式是一种在单台机器上模拟分布式环境的方式。它允许你在本地机器上运行Hadoop集群的所有组件(如HDFS和YARN),但所有组件都运行在同一个JVM进程中。这种模式非常适合初学者学习和测试Hadoop的基本功能,而不需要多台物理机器。

备注

伪分布式模式与完全分布式模式的主要区别在于,伪分布式模式的所有组件都运行在同一台机器上,而完全分布式模式则分布在多台机器上。

配置步骤

1. 安装Hadoop

首先,确保你已经安装了Hadoop。你可以从Apache Hadoop官网下载最新版本,并按照官方文档进行安装。

2. 配置Hadoop

在伪分布式模式下,你需要修改Hadoop的配置文件。以下是需要修改的主要配置文件:

  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml
  • yarn-site.xml

core-site.xml

xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

hdfs-site.xml

xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

mapred-site.xml

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

yarn-site.xml

xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

3. 格式化HDFS

在启动Hadoop之前,你需要格式化HDFS文件系统。运行以下命令:

bash
hdfs namenode -format

4. 启动Hadoop

使用以下命令启动Hadoop:

bash
start-dfs.sh
start-yarn.sh

5. 验证安装

你可以通过访问以下URL来验证Hadoop是否成功启动:

  • HDFS: http://localhost:50070
  • YARN: http://localhost:8088

实际案例

假设你有一个文本文件 input.txt,内容如下:

Hello World
This is a test file

你可以使用Hadoop的MapReduce程序来统计每个单词的出现次数。

1. 上传文件到HDFS

首先,将文件上传到HDFS:

bash
hdfs dfs -put input.txt /input

2. 运行WordCount程序

Hadoop自带了一个WordCount示例程序。你可以使用以下命令运行它:

bash
hadoop jar hadoop-mapreduce-examples.jar wordcount /input /output

3. 查看结果

运行完成后,你可以查看输出结果:

bash
hdfs dfs -cat /output/part-r-00000

输出应该类似于:

Hello   1
World 1
This 1
is 1
a 1
test 1
file 1

总结

Hadoop伪分布式模式是学习和测试Hadoop功能的理想选择。通过这种模式,你可以在单台机器上模拟分布式环境,并运行Hadoop的所有组件。本文介绍了如何配置和启动Hadoop伪分布式模式,并通过一个简单的WordCount示例展示了其实际应用。

附加资源

练习

  1. 尝试在伪分布式模式下运行其他Hadoop示例程序,如 greppi
  2. 修改Hadoop配置文件,尝试增加HDFS的副本数,并观察其对系统性能的影响。
  3. 探索如何在伪分布式模式下调试Hadoop应用程序。
提示

如果你在配置或运行过程中遇到问题,可以参考Hadoop的日志文件,通常位于 $HADOOP_HOME/logs 目录下。