如何在CentOS 8的单节点上安装和配置Apache Hadoop?


Apache Hadoop是一个开源框架,允许对大型数据集进行分布式处理。它可以安装和配置在单个节点上,这对于开发和测试目的很有用。在本文中,我们将讨论如何在运行CentOS 8的单节点上安装和配置Apache Hadoop。

步骤 1:安装 Java

Apache Hadoop 要求系统上安装 Java。要安装 Java,请运行以下命令:

sudo dnf install java-11-openjdk-devel

步骤 2:安装 Apache Hadoop

Apache Hadoop 可以从官方 Apache 网站下载。在撰写本文时,最新稳定版本为 3.3.1 版。您可以使用以下命令下载它:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz

下载完成后,使用以下命令解压缩存档:

tar -zxvf hadoop-3.3.1.tar.gz

步骤 3:配置 Hadoop

解压缩存档后,您需要配置 Hadoop。使用以下命令导航到 Hadoop 安装目录:

cd hadoop-3.3.1

接下来,使用文本编辑器打开 etc/hadoop/hadoop-env.sh 文件:

sudo nano etc/hadoop/hadoop-env.sh

找到以下行:

# export JAVA_HOME=

取消注释它并设置 Java 安装目录的路径:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

保存并关闭文件。

步骤 4:配置 Hadoop Core

接下来,使用文本编辑器打开 etc/hadoop/core-site.xml 文件:

sudo nano etc/hadoop/core-site.xml

添加以下行:

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

保存并关闭文件。

步骤 5:配置 Hadoop HDFS

使用文本编辑器打开 etc/hadoop/hdfs-site.xml 文件:

sudo nano etc/hadoop/hdfs-site.xml

添加以下行:

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
   <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
   </property>
   <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
   </property>
</configuration>

保存并关闭文件。

步骤 6:格式化 HDFS

在启动 Hadoop 之前,您需要格式化 HDFS。运行以下命令:

bin/hdfs namenode -format

步骤 7:启动 Hadoop

要启动 Hadoop,请运行以下命令:

sbin/start-all.sh

这将启动 NameNode、DataNode 和 ResourceManager 守护进程。

步骤 8:验证 Hadoop 安装

要验证安装,您可以运行以下命令:

jps

这应该显示以下进程:

1234 NameNode
5678 DataNode
9101 ResourceManager

恭喜!您已成功在运行 CentOS 的单节点上安装和配置了 Apache Hadoop。

步骤 9:配置 Hadoop YARN

YARN(Yet Another Resource Negotiator)是 Hadoop 的资源管理层,它使多个数据处理引擎(如 Apache Spark、Apache Hive 和 Apache Pig)能够在同一个 Hadoop 集群上运行。

使用文本编辑器打开 etc/hadoop/yarn-site.xml 文件:

sudo nano etc/hadoop/yarn-site.xml

添加以下行:

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>
   <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>localhost</value>
   </property>
   <property>
      <name>yarn.nodemanager.local-dirs</name>
      <value>/home/hadoop/hadoopdata/yarn/local</value>
   </property>
   <property>
      <name>yarn.nodemanager.log-dirs</name>
      <value>/home/hadoop/hadoopdata/yarn/logs</value>
   </property>
   <property>
      <name>yarn.nodemanager.resource.memory-mb</name>
      <value>1024</value>
   </property>
   <property>
      <name>yarn.nodemanager.resource.cpu-vcores</name>
      <value>1</value>
   </property>
</configuration>

保存并关闭文件。

步骤 10:验证 YARN 安装

要验证安装,您可以运行以下命令:

jps

这应该除了之前的进程外,还显示以下进程:

1234 NameNode
5678 DataNode
9101 ResourceManager
3456 NodeManager

步骤 11:测试 Hadoop

要测试 Hadoop,您可以使用 hadoop 命令行界面在 HDFS 中创建一个目录并将文件上传到该目录。

在 HDFS 中创建一个目录:

bin/hadoop fs -mkdir /input

将文件上传到目录:

bin/hadoop fs -put etc/hadoop/hadoop-env.sh /input

验证文件是否已上传:

bin/hadoop fs -ls /input

这应该显示以下输出:

-rw-r--r--   1 hadoop supergroup       3519 Apr 25 10:00 /input/hadoop-env.sh

恭喜!您已成功在运行 CentOS 的单节点上安装和配置了 Apache Hadoop 并测试了其功能。您现在可以使用 Hadoop 处理和分析大型数据集。

步骤 12:停止 Hadoop

要停止 Hadoop,请运行以下命令:

sbin/stop-all.sh

这将停止所有 Hadoop 守护进程。

步骤 13:为 Hadoop 创建用户

建议为 Hadoop 创建一个单独的用户。要创建用户,请运行以下命令:

sudo useradd hadoop

为用户设置密码:

sudo passwd hadoop

步骤 14:授予权限

要授予 Hadoop 用户权限,请创建一个 Hadoop 目录:

sudo mkdir /home/hadoop/hadoopdata
sudo chown hadoop:hadoop /home/hadoop/hadoopdata

授予 Hadoop 目录的权限:

sudo chmod 755 /home/hadoop/hadoopdata

步骤 15:设置环境变量

要设置环境变量,请使用文本编辑器打开 .bashrc 文件:

nano ~/.bashrc

添加以下行:

export HADOOP_HOME=/home/hadoop/hadoop-3.3.1
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 PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存并关闭文件。

步骤 16:重新加载环境变量

要重新加载环境变量,请运行以下命令:

source ~/.bashrc

步骤 17:验证 Hadoop 用户

要验证 Hadoop 用户是否已创建并具有正确的权限,请运行以下命令:

id hadoop

这应该显示以下输出:

uid=1001(hadoop) gid=1001(hadoop) groups=1001(hadoop)

步骤 18:重新启动 Hadoop

要使用新用户和权限重新启动 Hadoop,请运行以下命令:

sbin/start-all.sh

恭喜!您已成功在运行 CentOS 的单节点上安装和配置了 Apache Hadoop,为 Hadoop 创建了一个用户,并授予了 Hadoop 目录的权限。您现在可以使用 Hadoop 用户使用 Hadoop 处理和分析大型数据集。

步骤 19:配置防火墙

要允许外部访问 Hadoop Web 界面,您需要配置防火墙以允许在端口 8088 和 9870 上的传入连接。

要配置防火墙,请运行以下命令:

sudo firewall-cmd --zone=public --add-port=8088/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9870/tcp --permanent
sudo firewall-cmd --reload

步骤 20:访问 Hadoop Web 界面

要访问 Hadoop Web 界面,请打开 Web 浏览器并输入以下 URL:

https://127.0.0.1:9870

这将显示 Hadoop NameNode Web 界面。您也可以在以下位置访问 Hadoop ResourceManager Web 界面:

https://127.0.0.1:8088

恭喜!您已成功配置防火墙以允许外部访问 Hadoop Web 界面并访问了 Hadoop Web 界面。您现在可以使用 Web 界面监视 Hadoop 集群及其活动。

步骤 21:安装 Hadoop 生态系统工具

要扩展 Hadoop 的功能,您可以安装各种生态系统工具,例如 Apache Hive、Apache Pig 和 Apache Spark。这些工具允许您执行各种数据处理和分析任务。

要安装这些工具,您可以使用 CentOS 提供的包管理器。例如,要安装 Apache Hive,请运行以下命令:

sudo dnf install hive

类似地,您可以使用以下命令安装 Apache Pig 和 Apache Spark:

sudo dnf install pig
sudo dnf install spark

步骤 22:配置 Hadoop 生态系统工具

安装生态系统工具后,您需要将其配置为与 Hadoop 一起使用。

要配置 Apache Hive,请使用文本编辑器打开位于 /etc/hive/conf 目录中的 hive-site.xml 文件:

sudo nano /etc/hive/conf/hive-site.xml

添加以下行:

<configuration>
   <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
   </property>
   <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
   </property>
   <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>hive</value>
      <description>username to use against metastore database</description>
   </property>
   <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>password</value>
      <description>password to use against metastore database</description>
   </property>
</configuration>

保存并关闭文件。

要配置 Apache Pig,请使用文本编辑器打开位于 /etc/pig 目录中的 pig.properties 文件:

sudo nano /etc/pig/pig.properties

添加以下行:

fs.default.name=hdfs://127.0.0.1:9000

保存并关闭文件。

要配置 Apache Spark,请使用文本编辑器打开 Spark 安装目录的 conf 目录中的 spark-env.sh 文件:

sudo nano /path/to/spark/conf/spark-env.sh

添加以下行:

export HADOOP_CONF_DIR=/home/hadoop/hadoop-3.3.1/etc/hadoop
export SPARK_MASTER_HOST=localhost

保存并关闭文件。

步骤 23:验证 Hadoop 生态系统工具

要验证生态系统工具的安装和配置,您可以运行其各自的命令行界面。例如,要运行 Apache Hive 命令行界面,请运行以下命令:

hive

这应该显示 Hive shell 提示符。类似地,您可以使用以下命令运行 Apache Pig 和 Apache Spark 命令行界面:

pig
spark-shell

恭喜!您已成功安装和配置了各种 Hadoop 生态系统工具并验证了其功能。您现在可以使用这些工具执行各种数据处理和分析任务。

结论

在本教程中,您已成功在 CentOS 8 的单节点上安装和配置了 Apache Hadoop。您现在可以开始尝试使用 Hadoop 并运行本地机器上的 MapReduce 作业。随着您对 Hadoop 的了解越来越深入,您可能希望扩展到多节点集群以获得更好的性能和容错能力。

更新于: 2023年5月12日

2K+ 阅读量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告