如何在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 的了解越来越深入,您可能希望扩展到多节点集群以获得更好的性能和容错能力。