本文主要介绍在虚拟机 Ubuntu24.04 上安装 Hadoop,具体操作如下所示。
共享文加夹设置请参考网址:https://editor.csdn.net/md/?articleId=153210246

第1章 创建 hadoop 用户

在安装 Hadoop 之前首先需要创建一个用户 hadoop,避免后续 Hadoop 出现一些不可使用的问题。具体操作如下所示。

①创建hadoop用户并为其设置密码与添加管理员权限

# 创建用户。
sudo useradd -m hadoop -s /bin/bash
# 添加管理员权限。
sudo adduser hadoop sudo
# 设置密码。
sudo passwd hadoop

在这里插入图片描述

②在 MobaXterm 上改用hadoop用户来直接登录虚拟机

#切换用户
su - hadoop

③hadoop 用户(可访问共享文件夹),设置后需要Exit或重新登录hadoop用户。

sudo usermod -aG vboxsf $USER

在这里插入图片描述

④最后检查是否配置成功。

 ls -l /media/sf_vmshare/

在这里插入图片描述

第2章 安装Hadoop

当 hadoop 用户创建完成之后,重新以 hadoop 用户进行 SSH 登录,然后进行安装大数据组件 Hadoop。具体操作如下所示。

①安装hadoop,解压缩。目标程序安装路径是: /opt/app, 数据文件路径是: /opt/data

# 创建文件夹。
cd /opt
sudo mkdir app
sudo mkdir data
sudo chown -R hadoop:hadoop app
sudo chown -R hadoop:hadoop data

# 解压缩。
cd /opt/app
tar zxvf /media/sf_vmshare/hadoop-3.4.0.tar.gz

在这里插入图片描述

②添加环境变量。在 ~/.profile 的尾部,添加:

sudo vi ~/.profile
export HADOOP_HOME=/opt/app/hadoop-3.4.0

在这里插入图片描述

退出 SSH 连接并重新登录

③修改 hadoop 的配置文件,在里面找到 JAVA_HOME 的那一行,在下面添加 OpenJDK-11 的路径。修改如下:

cd $HADOOP_HOME/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64


在这里插入图片描述

④试运行,它会在屏幕上打印出帮助信息

cd $HADOOP_HOME
bin/Hadoop

在这里插入图片描述

2.1 单节点独立运行

⑤默认情况下,hadoop 是以非分布式模式,以单个的 Java 进程在单节点上独立(Standalone)运行。这对于调试很重要(分布式或多节点情况下都不便于调试)。

以下示例将复制一些 xml 文件用作输入,查找并显示正则表达式的每个匹配项。输出将写入到 output 文件夹:

cd $HADOOP_HOME
# 创建文件夹。
mkdir input

# 复制一些 xml 文件到 input 文件夹中。
cp etc/hadoop/*.xml input

# 运行 hadoop 示例。
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.0.jar grep input output 'dfs[a-z.]+'

# 查看输出。
cat output/*

在这里插入图片描述

完成后,清理干净:

cd $HADOOP_HOME
rm -rf input
rm -rf output

2.2伪分布式

⑥伪分布式也是在单节点上运行,和前述单节点的区别是,Hadoop 的服务进程(daemon)是分别运行在各自的 JVM 进程当中。

配置:

修改配置文件 etc/hadoop/core-site.xml,添加配置属性如下:

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/opt/data/hadoop/tmp</value>
    <description>A base for other temporary directories.</description>
  </property>

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

修改配置文件 etc/hadoop/hdfs-site.xml,添加下面的配置属性:

<configuration>

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

  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/opt/data/hadoop/tmp/dfs/name</value>
  </property>

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/opt/data/hadoop/tmp/dfs/data</value>
  </property>

</configuration>

⑦设置免密的 SSH:

先试试用 SSH 登录到自己(localhost)。

ssh localhost

在这里插入图片描述

若登录过程中需要用户输入登录密码,则需要进行下面的免密登录设置。否则,说明免密登录已经设置成功,可以忽略下面第2步。

设置免密登录:

# 生成 RSA 的密钥对。
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

# 将公钥复制到已授权文件中。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 修改已授权文件的属性(仅自己可读写)。
chmod 0600 ~/.ssh/authorized_keys

完成后,再次尝试第1步,它应该能够免密码登录了。

在这里插入图片描述

2.3 执行本地 MapReduce 工作

①下面执行一个本地的 MapReduce 工作。格式化文件系统。注意,这个格式化文件系统的操作只需要执行一次。

cd $HADOOP_HOME
bin/hdfs namenode -format

在这里插入图片描述

注意到其中提示“has been successfully formated” 表示格式化成功。

②启动名称节点(NameNode)和数据节点(DataNode)的服务进程:

sbin/start-dfs.sh
jps

注,启动日志会被写入到 $HADOOP_HOME/logs 文件夹里。如果启动发生错误,可以到日志里面查看具体原因。 启动后还可以检查一下 Java 进程,确认都已正常启动。屏幕输出如下例:我们可以看到,Hadoop 启动成功后存在3个 Java 进程:NameNode, DataNode 和 SecondaryNameNode。

在这里插入图片描述

③通过浏览器,访问名称节点的 Web 界面。 名称节点(NameNode)在虚拟机上开启了 Web 服务: http://localhost:19870

启动。屏幕输出如下例:我们可以看到,Hadoop 启动成功后存在3个 Java 进程:NameNode, DataNode 和 SecondaryNameNode。

[外链图片转存中…(img-Ck4cxu20-1760358282682)]

③通过浏览器,访问名称节点的 Web 界面。 名称节点(NameNode)在虚拟机上开启了 Web 服务: http://localhost:19870

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐