windows安装virtualBox虚拟机配置linux-ubuntu系统并完成Hadoop伪分布式环境搭建

    科技2026-06-12  1

    【环境】windows10 【所需资源文件与版本】 以下文件都是从老师提供的网盘链接下载: 1.VirtualBox-6.1.4 2.Ubuntukylin-16.04-desktop-amd64 3.hadoop-2.7.1 也可以从官网下载,下载时推荐用镜像源。

    【实验内容与完成情况】 配置整体思路: 1.下载所需资源文件到本地 2.安装虚拟机软件VirtualBox-6.1.4 按照virtualbox安装包自带的安装指南一步步向下做就可以。 3.启动VirtualBox,挂载ubuntu光盘并配置虚拟机 此处参考:https://blog.csdn.net/u012732259/article/details/70172704 4.在创建好的虚拟机上完成hadoop环境配置

    整个过程分为四大步,其中前三步都比较简单,我用一句话描述它们的做法。第四步(即在虚拟机上配置Hadoop)的过程较为复杂,将结合截图和linux命令行+虚拟机操作,进行详细的讲解。

    在Ubuntu上配置Hadoop 1.创建Hadoop用户,并修改密码

    sudo useradd -m hadoop -s /bin/bash sudo passwd hadoop

    2.更新apt

    sudo apt-get update

    3.vim安装与操作方法

    sudo apt-get install vim cd [待操作文件所在路径] vim [文件名]

    vim的操作: (1)正常模式:仅浏览,其他模式按Esc键返回正常模式 (2)插入编辑模式:可修改,正常模式下输入i (3)保存退出vim:先再编辑模式按Esc返回正常模式,然后再命令行中输入:wq保存编辑结果。

    4.安装SSH并配置SSH免密码登录

    sudo apt-get install openssh-server ssh localhost cd ~/.ssh/ ssh-keygen -t rsa cat ./id_rsa.pub >> ./authorized_keys

    之后再使用ssh localhost命令,无需输入密码就可以直接登录 参考:https://www.cnblogs.com/tanrong/p/10645467.html 配置结果:

    5.安装Java环境

    $ sudo apt-get update $ sudo apt-get install install openjdk-8-jdk $ java -version

    参考:https://www.cnblogs.com/tanrong/p/10641803.html

    配置结果:

    6.下载Hadoop到虚拟机上并解压安装 在文件传输的过程中,尝试了FTP服务器,或者共享文件夹方式,试图将老师提供的Hadoop安装包hadoop-2.7.1.tar.gz从windows本机传输到虚拟机上,但很麻烦,不建议采用。建议是把文件上传到自己的邮箱中,再从虚拟机上登录邮箱进行下载。下载后,压缩包将被保存到“/home/hadoop/下载”目录下。我们将对下载后的文件进行解压和安装。

    sudo tar -zxf ~/下载/hadoop-2.7.1.tar.gz -C /usr/local #解压到/usr/local cd /usr/local/ sudo mv ./hadoop-2.7.1/ ./hadoop #将文件夹名改为hadoop sudo chown -R hadoop ./hadoop #修改文件权限

    P.S. shell命令的解释 x: 从tar包中把文件提取出来 z: tar包是被gzip压缩过的,使用gunzip解压 f: 后面跟着的是文件 C:文件解压后转到指定的目录下

    结果检验:

    cd /usr/local/hadoop ./bin/hadoop version

    7.Hadoop单机配置 先尝试下单机模式下的grep能不能通

    能通的,我们开始伪分布式配置。

    8.Hadoop伪分布式配置 (1)修改配置文件

    gedit ./etc/hadoop/core-site.xml

    将文件中的:

    <configuration> </configuration> 修改为: <configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directions.</desciption> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>

    同样的方式修改文件hdfs-site.xml:

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

    (2)NameNode格式化

    cd /usr/local/hadoop ./bin/hdfs namenode -format

    (3)开启NameNode和DataNode守护进程

    cd /usr/local/hadoop ./sbin/start-dfs.sh

    9.运行伪分布式实例

    ./bin/hdfs dfs -mkdir -p /user/hadoop ./bin/hdfs dfs -mkdir input ./bin/hdfs dfs -put ./etc/hadoop/*.xml input ./bin/hdfs dfs -ls input #查看复制后的文件列表 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output ‘dfs[a-z.]+’ ./bin/hdfs dfs -cat output/* #查看运行结果 ./bin/hdfs dfs -rm -r output #再次执行时需要输出目录不存在,因此再本次执行结束时删除output文件夹 ./sbin/stop-dfs.sh #关闭hadoop #下次启动hadoop时输入 ./sbin/start-dfs.sh

    过程记录:

    可以顺利开/关hadoop

    10.wordcount实现 与之前的grep实例相似,命令行输入:

    遇到问题:

    解决: 重启hadoop

    ./sbin/start-dfs.sh

    Processed: 0.032, SQL: 9