阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 18.04.1上安装Hadoop 3.1.1集群详解

300次阅读
没有评论

共计 4467 个字符,预计需要花费 12 分钟才能阅读完成。

本文将介绍如何在基于 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 http://apache.claz.org/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz

解压缩归档并将其移至 / 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。

http://hadoop1.admintome.lab:9870

可以看到如下 UI:

Ubuntu 18.04.1 上安装 Hadoop 3.1.1 集群详解

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

开始运行 Yarn

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

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

export HADOOP_HOME=”/usr/local/hadoop”
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME

运行以下命令以启动 Yarn:

$ start-yarn.sh
Starting resourcemanager
Starting nodemanagers

我们可以通过以下命令来验证是否可以正确启动:

$ yarn node -list
2018-08-15 04:40:26,688 INFO client.RMProxy: Connecting to ResourceManager at hadoop1.admintome.lab/192.168.1.35:8032
Total Nodes:2
        Node-Id      Node-State  Node-Http-Address  Number-of-Running-Containers
hadoop3.admintome.lab:35337          RUNNING  hadoop3.admintome.lab:8042                            0
hadoop2.admintome.lab:38135          RUNNING  hadoop2.admintome.lab:8042                            0

没有任何正在运行的容器,因为我们还没有开始任何工作。

Hadoop Web UI

我们可以通过以下 URL 来查看 Hadoop Web UI:

http://hadoop1.admintome.lab:8088/cluster

替换 Hadoop Master 主机名:

Ubuntu 18.04.1 上安装 Hadoop 3.1.1 集群详解

运行 Hadoop 任务示例

我们现在可以运行 Hadoop 任务示例并在集群上安排它,我们将运行的示例是使用 MapReduce 来计算 PI。

运行以下命令来运行作业:

yarn jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar pi 16 1000

完成整个过程将需要几分钟的时间。完成后,应该可以看到它已经开始计算 PI:

Job Finished in 72.973 seconds
Estimated value of Pi is 3.1425000000000000000

更多 Hadoop 相关信息见 Hadoop 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4467字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中