Mac M1安装Hadoop

![Hadoop Logo](

在Mac M1上安装Hadoop可能会遇到一些挑战,因为M1芯片采用了ARM架构,而不是常见的x86架构。这就需要我们进行一些额外的步骤来确保Hadoop能够在M1芯片上正常运行。

准备工作

在开始安装Hadoop之前,需要准备以下几样东西:

  1. 安装Homebrew包管理器
  2. 安装Java Development Kit (JDK)
  3. 下载Hadoop安装包

安装Homebrew

Homebrew是Mac上常用的包管理器,可以方便地安装和管理各种开源软件。在终端中执行以下命令来安装Homebrew:

/bin/bash -c "$(curl -fsSL 

安装JDK

Hadoop是基于Java开发的,因此首先需要安装Java Development Kit(JDK)。在终端中执行以下命令来安装JDK:

brew install openjdk@11

下载Hadoop安装包

在Apache Hadoop的官方网站上下载Hadoop的最新版本。解压缩下载的安装包,并将解压后的文件夹重命名为hadoop,并将其移动到适当的位置,例如/usr/local目录下。

配置Hadoop

在安装Hadoop之前,需要进行一些配置以确保其能够在M1芯片上正常工作。

首先,进入Hadoop的安装目录:

cd /usr/local/hadoop

修改配置文件

Hadoop的配置文件位于etc/hadoop目录下。使用任何文本编辑器打开etc/hadoop/hadoop-env.sh文件,并将以下行添加到文件的末尾:

export JAVA_HOME=/usr/local/opt/openjdk@11

这将告诉Hadoop使用我们在上一步中安装的JDK版本。

配置HDFS

创建一个新的目录来存储Hadoop的数据文件:

sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenode
sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode
sudo chown -R $USER /usr/local/hadoop_tmp

然后,打开etc/hadoop/hdfs-site.xml文件,并添加以下配置:

<configuration>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///usr/local/hadoop_tmp/hdfs/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///usr/local/hadoop_tmp/hdfs/datanode</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

这些配置将告诉Hadoop存储数据文件的位置以及数据复制的数量。

配置YARN

打开etc/hadoop/yarn-site.xml文件,并添加以下配置:

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
  </property>
</configuration>

这些配置将启用YARN的相关功能。

运行Hadoop

在完成配置后,就可以启动Hadoop并运行示例程序了。在终端中执行以下命令来启动Hadoop:

bin/hadoop namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh

这将启动Hadoop的相关服务。

运行示例程序

Hadoop自带了一些示例程序,可以帮助我们了解它的基本用法。在终端中执行以下命令来运行WordCount示例程序:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount input output

这将对input目录中的文本文件进行