在 Ubuntu 20.04 上安装和配置 Apache Hadoop

介绍

Apache Hadoop 是一个开源软件框架,用于存储、管理和处理集群系统下运行的各种大数据应用程序的大型数据集。 它基于 Java 并使用 Hadoop 分布式文件系统 (HDFS) 来存储其数据并使用 MapReduce 处理数据。 在本文中,您将了解如何在 Ubuntu 20.04 上安装和配置 Apache Hadoop。

先决条件

部署一个完全更新的 Vultr Ubuntu 20.04 服务器。 创建具有 sudo 访问权限的非 root 用户。

1.安装Java

安装最新版本的 Java。

$ sudo apt install default-jdk default-jre -y

验证已安装的 Java 版本。

$ java -version

2. 创建 Hadoop 用户并配置无密码 SSH

添加新用户 hadoop.

$ sudo adduser hadoop

添加 hadoop 用户到 sudo 组。

$ sudo usermod -aG sudo hadoop

切换到创建的用户。

$ sudo su - hadoop

安装 OpenSSH 服务器和客户端。

$ apt install openssh-server openssh-client -y

当您收到提示时,请回复:

keep the local version currently installed

切换到创建的用户。

$ sudo su - hadoop

生成公钥和私钥对。

$ ssh-keygen -t rsa

添加生成的公钥 id_rsa.pubauthorized_keys.

$ sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

更改权限 authorized_keys 文件。

$ sudo chmod 640 ~/.ssh/authorized_keys

验证无密码 SSH 是否正常工作。

$ ssh localhost

3. 安装 Apache Hadoop

登录 hadoop 用户。

$ sudo su - hadoop

下载最新的稳定版 Hadoop。 要获取最新版本,请访问 Apache Hadoop 官方下载 页。

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

提取下载的文件。

$ tar -xvzf hadoop-3.3.1.tar.gz

将解压后的目录移动到 /usr/local/ 目录。

$ sudo mv hadoop-3.3.1 /usr/local/hadoop

创建目录来存储系统日志。

$ sudo mkdir /usr/local/hadoop/logs

更改 hadoop 目录的所有权。

$ sudo chown -R hadoop:hadoop /usr/local/hadoop

4.配置Hadoop

编辑文件 ~/.bashrc 配置 Hadoop 环境变量。

$ sudo nano ~/.bashrc

将以下行添加到文件中。 保存并关闭文件。

export HADOOP_HOME=/usr/local/hadoop
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 HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

激活环境变量。

$ source ~/.bashrc

5.配置Java环境变量

Hadoop 具有许多组件,使其能够执行其核心功能。 配置这些组件如 YARN、HDFS、MapReduce 和 Hadoop 相关的项目设置,需要在 hadoop-env.sh 配置文件。

找到 Java 路径。

$ which javac

找到 OpenJDK 目录。

$ readlink -f /usr/bin/javac

编辑 hadoop-env.sh 文件。

$ sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

将以下行添加到文件中。 然后,关闭并保存文件。

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_CLASSPATH+=" $HADOOP_HOME/lib/*.jar"

浏览到 hadoop lib 目录。

$ cd /usr/local/hadoop/lib

下载 Javax 激活文件。

$ sudo wget https://jcenter.bintray.com/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar

验证 Hadoop 版本。

$ hadoop version

编辑 core-site.xml 配置文件以指定 NameNode 的 URL。

$ sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml

添加以下几行。 保存并关闭文件。

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://0.0.0.0:9000</value>
      <description>The default file system URI</description>
   </property>
</configuration>

创建一个用于存储节点元数据的目录并将所有权更改为 hadoop.

$ sudo mkdir -p /home/hadoop/hdfs/{namenode,datanode}

$ sudo chown -R hadoop:hadoop /home/hadoop/hdfs

编辑 hdfs-site.xml 配置文件来定义存储节点元数据的位置,fs-image 文件。

$ sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

添加以下几行。 关闭并保存文件。

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

   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hdfs/namenode</value>
   </property>

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

编辑 mapred-site.xml 配置文件来定义 MapReduce 值。

$ sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

添加以下几行。 保存并关闭文件。

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

编辑 yarn-site.xml 配置文件并定义与 YARN 相关的设置。

$ sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml

添加以下几行。 保存并关闭文件。

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

登录 hadoop 用户。

$ sudo su - hadoop

验证 Hadoop 配置并格式化 HDFS NameNode。

$ hdfs namenode -format

6. 启动 Apache Hadoop 集群

启动 NameNode 和 DataNode。

$ start-dfs.sh

启动 YARN 资源和节点管理器。

$ start-yarn.sh

验证所有正在运行的组件。

$ jps

7. 访问 Apache Hadoop Web 界面

您可以通过浏览器访问 Hadoop NameNode http://server-IP:9870. 例如:

http://192.0.2.11:9870

结论

您已在服务器上成功安装 Apache Hadoop。 您现在可以访问仪表板并配置您的首选项。

更多信息

有关 Apache Hadoop 的更多信息,请参阅 官方文件.

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com