全部版块 我的主页
论坛 数据科学与人工智能 大数据分析 Hadoop论坛
227 0
2025-11-26

获取Ubuntu系统镜像文件

访问阿里云开源镜像站点,找到Ubuntu版本的ISO文件进行下载。

https://mirrors.aliyun.com/oldubuntu-releases/releases/16.04.0/?spm=a2c6h.25603864.0.0.6be57ff3u2zMGR

点击对应的下载链接开始获取系统镜像。由于文件体积较大,下载过程可能需要一定时间,请保持网络稳定并耐心等待完成。

ubuntu-16.04-desktop-amd64.iso

搭建虚拟机环境

启动虚拟机创建向导,进入新建虚拟机流程。

创建新的虚拟机

按照提示继续操作,选择合适的配置选项。

典型

确认后点击“下一步”继续。

在接下来的步骤中,选择适当的硬件设置。

安装程序光盘映像文件

点击浏览按钮,定位到之前已下载的Ubuntu光盘镜像(ISO文件)。

浏览

参考下图所示进行参数设定。

设置虚拟磁盘的最大容量为100GB(实际占用空间将根据使用情况动态增长,并不会立即消耗全部存储)。

100GB

同时勾选相关选项以优化性能。

将虚拟磁盘存储为单个文件

点击确认完成配置。

完成

随后系统将自动开始安装流程,等待安装进度结束。

安装完成后界面如下所示:

选择登录项,并输入预设用户名信息。

xmudblab

123456

按下回车键即可成功登录系统。

通过快捷键组合调出命令行终端:

CTRL
+
ALT
+
T

若需关闭终端窗口,可点击左上角的关闭按钮。

圆X

文件管理操作

点击左侧任务栏中的文件管理图标,可以打开系统资源管理器,功能类似于Windows中的“此电脑”。

Floppy Disk

打开后,右键点击该图标,再选择弹出菜单中的关闭选项。

Quit

即可退出当前窗口。

至此,虚拟机的基础安装工作已完成。

配置开发运行环境

首先创建一个专用用户用于后续Hadoop相关操作。

sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop		# 给Hadoop用户设置密码
sudo adduser hadoop sudo	# 给Hadoop用户提权,避免不必要的权限问题

网络设置调整

进入VMware菜单栏,点击“编辑”,选择“虚拟网络编辑器”。

在右下角点击更改设置按钮以获得权限修改能力。

更改设置

选中名为 NAT 模式的网络类型,并对其进行配置调整。

找到标识为

VMnet8

的NAT网络,取消勾选“使用本地DHCP服务”的选项。

然后手动设置子网IP地址和子网掩码,具体配置如下图所示。

设置完毕后先点击“应用”,再点击“确定”保存更改。

切换至Ubuntu虚拟机内部,点击音频图标旁的网络连接按钮,进入网络设置界面。

选择“因特网”标签页,选中第一个网络连接条目,点击“编辑”。

进入IPv4设置页面,点击Method下拉框,选择“Manual”(手动)模式。

接着点击下方添加按钮

Add

输入IPv4地址、子网地址

172.25.254.10

子网掩码

255.255.255.0

以及网关地址

172.25.254.2

注意:此处的IP配置需与VMware虚拟网络编辑器中的设定保持一致。

随后配置DNS服务器地址为:114.114.114.114

所有设置完成后,点击“Save”保存,退出设置界面后重启Ubuntu虚拟机使配置生效。

更新软件包源

打开右侧的系统设置面板,进入“软件与更新”模块。

点击更新源地址旁边的下拉箭头

Download ...

在弹出列表中向上滑动,查找并选择中国区镜像节点

China

例如选择阿里云或其他国内加速源

...aliyun...

确认选择后点击应用更改

Choose Server

点击“重新加载”按钮,触发apt源同步。

Reload

若加载失败,可尝试更换其他国内服务器地址后再次尝试。

# 加载完成后,打开终端,并输入命令,进行更新
sudo apt-get update	# 成功更新,如下图所示
sudo apt-get install vim -y # 安装新的编辑器

安装SSH并配置免密登录

所有Hadoop操作均应在hadoop用户环境下执行命令,否则可能导致操作失败。

sudo apt-get install openssh-server	# Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server
ssh localhost	# 尝试远程连接本机
exit	# 退出刚才的 ssh localhost
cd ~/.ssh/	# 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa	# 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys	# 加入授权
# 这样,本机就可以被远程连接(使用xshell来代替VM)
# 另一方面,实现了Hadoop集群、单节点模式 SSH 的免密登陆
# 从此处开始,以后操作均在xshell中进行

安装Java运行环境

确保系统中已正确安装JDK,以便支持Hadoop运行。

# 安装 Java 环境(Java 21.0.04)
sudo apt-get install wget -y	# 安装下载工具
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz	
# 若虚拟机下载失败,请使用Windows前往官网进行下载,下载完成后,上传至虚拟机
sudo mkdir /usr/lib/jvm -p	# 创建放置Java的目录
sudo tar -zxvf ./jdk-21_linux-x64_bin.tar.gz -C /usr/lib/jvm	# 解压Java压缩包

# 查看JAVA的版本
ls /usr/lib/jvm
jdk-21.0.4
vim ~/.bashrc	# 编辑环境变量
...	# 在最下一行输入,根据自己的版本改变路径
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.4
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

source ~/.bashrc	# 刷新环境变量


java -version	# 安装成功,命令显示如下

安装 Hadoop 3.3.5 版本

下载并解压Hadoop安装包,配置环境变量。

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz	# 同理,下载Hadoop
sudo tar -zxvf ./hadoop-3.3.5.tar.gz -C /usr/local

cd /usr/local/
sudo mv ./hadoop-3.3.5/ ./hadoop
sudo chown -R hadoop:hadoop hadoop/	# 修改权限

/usr/local/hadoop/bin/hadoop version	# 安装成功,显示如下

单机模式运行测试(非分布式)

Hadoop默认运行模式为本地非分布式,无需额外配置即可直接运行任务。

该模式下所有进程运行在一个Java进程中,适合调试和学习使用。

示例任务说明:以input目录下的所有文件作为输入源,提取符合正则表达式 dfs[a-z.]+ 的单词,统计其出现频次,并将结果输出至output目录。

cd /usr/local/hadoop
sudo mkdir ./input
sudo cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep ./input ./output 'dfs[a-z.]+'
sudo cat ./output/*          # 查看运行结果

注意:Hadoop默认不允许覆盖已有输出目录,因此每次重复运行前必须删除原有的output文件夹。

./output

执行删除操作后方可重新运行任务。

rm -r ./output

部署伪分布式集群环境

Hadoop可在单机上以伪分布式方式运行,此时各组件作为独立的Java进程启动,主机同时承担NameNode与DataNode角色,数据读写基于HDFS进行。

主要配置文件位于以下路径:

/usr/local/hadoop/etc/hadoop/

这些配置文件采用XML格式,每个配置项通过<name>和<value>标签对定义。

# 以下是伪分布式需要修改的配置文件
vim ./etc/hadoop/core-site.xml
...
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

Hadoop的实际运行模式由配置文件内容决定,程序启动时会自动读取这些设置。

如需从伪分布式切换回本地模式,只需移除core-site.xml中的特定配置项即可。

vim ./etc/hadoop/hdfs-site.xml
...
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# 在第54行基础上,去掉注释,并添加JAVA的具体路径
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.4

完成配置后,需对NameNode进行格式化处理。

cd /usr/local/hadoop
./bin/hdfs namenode -format	# 启动完成,如下图所示

随后启动NameNode和DataNode守护进程。

cd /usr/local/hadoop
./sbin/start-dfs.sh  # start-dfs.sh是个完整的可执行文件,中间没有空格
# 启动完成,如下图所示

# 可通过 jps 命令来判断是否启动成功
hadoop@ubuntu:/usr/local/hadoop$ jps
6355 SecondaryNameNode
6566 Jps
6007 NameNode
6138 DataNode
# SecondaryNameNode NameNode DataNode 均出现,表示启动成功

启动成功后,可通过浏览器访问Web管理界面。

http://localhost:9870

在此界面上可查看NameNode与DataNode状态信息,并在线浏览HDFS中的文件内容。此功能要求Windows主机能够正确解析虚拟机IP地址。

运行Hadoop伪分布式任务

执行实际的数据处理任务,验证伪分布式环境是否正常工作。

./bin/hdfs dfs -mkdir -p /user/hadoop	# 在 HDFS 中创建用户目录
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
./bin/hdfs dfs -ls input	# 查看文件列表

在伪分布式环境下运行 MapReduce 作业,其操作方式与单机模式基本一致,主要区别在于文件读取来源的不同。伪分布式模式下,系统读取的是 HDFS 中的文件,而非 Ubuntu 虚拟机本地的文件系统。

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep input output 'dfs[a-z.]+'

./bin/hdfs dfs -cat output/* # 查看的是位于 HDFS 中的输出结果

执行 Hadoop 程序时需注意:输出目录不能预先存在,否则程序将报错。因此,若需重复执行作业,应先删除已有的 output 目录。可通过执行相应命令完成该操作。

./bin/hdfs dfs -rm -r output    # 删除 output 文件夹

当需要停止 Hadoop 服务时,可运行指定命令进行关闭。

./sbin/stop-dfs.sh

再次启动 Hadoop 时,无需重新对 NameNode 进行格式化或初始化,只需执行启动脚本即可恢复正常运行状态。

./sbin/start-dfs.sh
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群