Ubuntu 18.04.1上安装Hadoop 3.1.1集群详解

本文将介绍如何在基于Ubuntu的系统上安装多节点Hadoop 3.1.1集群,作者将在Ubuntu 18.04.1上安装一个包含HDFS的三节点Hadoop集群

首先,我们需要为集群创建三个虚拟机,创建一个具有4个vCPU,4 GB内存和40 GB硬盘空间的Hadoop Master服务器;为每个节点创建两个带有4个vCPU,8 GB内存和40 GB硬盘空间的Hadoop节点。

本文的三台服务器安装了Ubuntu Server 18.04.1,安装了所有更新并重新启动,一定要确保使用静态IP地址和内部DNS解析配置每个服务器,或将每个服务器添加到/ etc / hosts文件。

准备运行Hadoop服务器

首先,我们需要安装Oracle Java 8,因为从Ubuntu 18.04.1开始,Java 8不再可用。

# add-apt-repository ppa:webupd8team/java
# apt update
# apt install -y oracle-java8-set-default

接受许可条款,并下载Hadoop二进制文件

# wget

解压缩归档并将其移至/ usr / local /

# tar -xzvf hadoop-3.1.1.tar.gz
# mv hadoop-3.1.1 /usr/local/hadoop

更新默认环境变量以包含JAVA_HOME和Hadoop二进制目录。

首先,我们需要知道Java的安装位置,运行以下命令查找。

# update-alternatives --display java
java - manual mode
  link best version is /usr/lib/jvm/java-8-oracle/jre/bin/java
  link currently points to /usr/lib/jvm/java-8-oracle/jre/bin/java
  link java is /usr/bin/java
  slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-8-oracle/jre/bin/java - priority 1081
  slave java.1.gz: /usr/lib/jvm/java-8-oracle/man/man1/java.1.gz

如上所示,JAVA_HOME应设置为/ usr / lib / jvm / java-8-oracle / jre。

打开/etc/environment并更新PATH行以包含Hadoop二进制目录。

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/hadoop/bin:/usr/local/hadoop/sbin"

为JAVA_HOME变量和YARN_RESOURCEMANAGER_OPTS变量添加一行。

vim
YARN_RESOURCEMANAGER_OPTS="--add-modules=ALL-SYSTEM"

确保该目录与上面的update-alternatives选项减去bin/java部分的输出相匹配。

接下来,我们将添加一个hadoop用户并为他们提供正确的权限。

# adduser hadoop
# usermod -aG hadoop hadoop
# chown hadoop:root -R /usr/local/hadoop
# chmod g+rwx -R /usr/local/hadoop

以hadoop用户身份登录并生成SSH密钥,只需要在Hadoop Master上完成此步骤。

# su - hadoop
# ssh-keygen -t rsa

接受ssh-keygen的所有默认值。

现在以hadoop用户身份登录并将SSH密钥复制到所有Hadoop节点。 同样,只需要在Hadoop Master上完成此步骤。

# su - hadoop
$ ssh-copy-id hadoop@hadoop1.admintome.lab
$ ssh-copy-id hadoop@hadoop2.admintome.lab
$ ssh-copy-id hadoop@hadoop3.admintome.lab

配置Hadoop主服务器

打开/usr/local/hadoop/etc/hadoop/core-site.xml文件并输入以下内容:

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://hadoop1.admintome.lab:9000</value>
  </property>
</configuration>

保存并退出。

接下来,打开/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件并添加以下内容:

<configuration>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/data/nameNode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop/data/dataNode</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
</configuration>

保存并退出。

打开/usr/local/hadoop/etc/hadoop/workers文件并添加以下两行(每个Hadoop节点一行)

hadoop2.admintome.lab
hadoop3.admintome.lab

保存并退出。

将配置文件从Hadoop Master复制到每个Hadoop节点。

# scp /usr/local/hadoop/etc/hadoop/* hadoop2.admintome.lab:/usr/local/hadoop/etc/hadoop/
# scp /usr/local/hadoop/etc/hadoop/* hadoop3.admintome.lab:/usr/local/hadoop/etc/hadoop/

格式化HDFS文件系统

$ source /etc/environmnet
$ hdfs namenode -format

现在可以启动HDFS:

hadoop@hadoop1:~$ start-dfs.sh
Starting namenodes on [hadoop1.admintome.lab]
Starting datanodes
Starting secondary namenodes [hadoop1]
hadoop@hadoop1:~$

通过在所有Hadoop服务器上以Hadoop用户身份运行jps命令来验证所有内容是否正确启动。

在Hadoop Master上你应该可以看到如下结果:

hadoop@hadoop1:~$ jps
13634 Jps
13478 SecondaryNameNode
13174 NameNode

在每个Hadoop节点上,你应该可以看到:

hadoop@hadoop2:~$ jps
8672 Jps
8579 DataNode
HDFS Web UI

HDFS Web UI

现在,我们可以通过浏览到Hadoop主服务器端口9870来访问HDFS Web UI。

:9870

可以看到如下UI:

Ubuntu 18.04.1上安装Hadoop 3.1.1集群详解

如上所示,我们的HDFS文件系统上有近60 GB的空闲空间。

开始运行Yarn

现在HDFS正在运行,我们已准备好启动Yarn调度程序。

Hadoop本身需要运行任务,因此我们需要Yarn以在Hadoop集群上合理安排任务。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/488c253e096e1eee1967c50435ecf84a.html