在Windows中使用VMware Workstation Pro安装Ubuntu虚拟机以及在Hadoop集群搭建的方法

一、实验目的:

掌握VMWare虚拟机、linux系统安装与配置;掌握hadoop集群的基本使用。

二、实验内容:

在Windows下安装VMWare虚拟机,在虚拟机中安装和配置linux系统;

搭建至少是伪分布式的Hadoop集群;也可搭建真集群的hadoop;

三、实验要求:

参照指导书及集群配置样例,熟悉相关内容,下载linux系统、JDK、Hadoop安装程序,熟悉相关软件的安装、使用技巧,初步掌握Hadoop集群的搭建和使用。

四、实验环境:

软件环境:Hadoop2.10.1及以上版本,JDK1.7等;

硬件环境:linux虚拟机。

五、实验步骤及结果

1.Windows中使用VMware Workstation Pro安装Ubuntu虚拟机

A.安装好的VMware Workstation Pro虚拟机软件可以https://www.vmware.com/官网中下载,Ubuntu LTS 20.04 ISO映像文件同样可以在官网中下载。

B.步骤1:新建一个虚拟机
打开VMware Workstation Pro,如下图所示,点击“创建新的虚拟机”按钮,在弹出的菜单中选择“典型”,创建一个虚拟机,(为了后续操作方便可以将虚拟机文件放在c盘),同时为你的虚拟机命名

C步骤2:设置虚拟机名称和系统类型
在弹出来的对话框中(如下图所示),在“名称”后面的文本框中输入虚拟机名称,比如,可以取名为“mxq”。在“文件夹”后面可以设置为本地磁盘目录,比如“C:\”。在“类型”后面的下拉列表框中,选择“Linux”。如果你选择的系统是32位Ubuntu系统,请在“版本”后面的下拉列表框中选择“Ubuntu (32 bit)”;如果你选择的系统是64位Ubuntu系统,请在“版本”后面的下拉列表框中选择“Ubuntu (64 bit)”;本教程采用的是64位Ubuntu系统。然后,点击“下一步”。

 

D:步骤3:设置虚拟机磁盘大小
可以根据电脑的内存情况来设置虚拟机内存大小。如果电脑总内存为16GB(如下图所示),可以划分1GB的内存给虚拟机来运行Ubuntu(实际上,在这种配置下运行虚拟机以后,仍会稍显卡顿,建议电脑总内存增加到8GB以上)。如果电脑总内存有8GB,那么可以划分3GB内存给Ubuntu,这样运行速度会快很多。设置好以后,可以点击“下一步”。

 

2.安装Ubuntu

 

点击开启此虚拟机,等待虚拟机载入(可能等待时间有一点漫长)

 

  如果英语看着可能不适的话可以下载汉化包,重启虚拟机之后,文字便换成了汉语。

 

这样,本实验的准备工作就完成了。

    3.Hadoop3.1.3安装教程_单机、伪分布式配置

  如果你安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。

首先按 ctrl+alt+t或者在虚拟机中按鼠标右键,打开终端窗口,输入如下命令创建新用户 :

这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。

 

   用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了。按 ctrl+alt+t 打开终端窗口,执行如下命令若出现如下 “Hash校验和不符” 的提示,可通过更改软件源来解决。若没有该问题,则不需要更改。从软件源下载某些软件的过程中,可能由于网络方面的原因出现没法下载的情况,那么建议更改软件源。在学习Hadoop过程中,即使出现“Hash校验和不符”的提示,也不会影响Hadoop的安装。

 

后续需要更改一些配置文件,请将后面用到 vim 的地方改为 gedit,这样可以使用文本编辑器进行修改,并且每次文件更改完成后请关闭整个 gedit 程序,否则会占用终端)

此处使用sudo apt-get install vim完成vim的配置。

    4.安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

此处的命令为sudo apt-get install openssh-server

安装后,可以使用ssh localhost来登陆SSH

 

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

 

此时再用 ssh localhost命令,无需输入密码就可以直接登陆了

    5.安装JAVA环境

Hadoop3.1.3需要JDK版本在1.8及以上。需要按照下面步骤来自己手动安装JDK1.8。
我们已经把JDK1.8的安装包jdk-8u162-linux-x64.tar.gz放在了百度云盘,可以点击这里到百度云盘下载JDK1.8安装包(提取码:ziyu)。请把压缩格式的文件   jdk-8u162-linux-x64.tar.gz下载到本地电脑,假设保存在“/home nziyu/Downloads/”目录下。
   在Linux命令行界面中,执行如下Shell命令(注意:当前登录用户名是hadoop):

cd /usr/b
sudo mkdir jvm cd ~ 

cd Downloads  jdk-8u162-linux-x64.tar.gz
sudo tar -zxvf .jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm 

   用vim编辑器打开了hadoop这个用户的环境变量配置文件,请在这个文件的开头位置,添加如下几行内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

 

   保存.bashrc文件并退出vim编辑器。然后,继续执行如下命令让.bashrc文件的配置立即生效:source ~/.bashrc

   这时,可以使用如下命令查看是否安装成功:java -version

 

    6.安装Hadoop3.1.3

sudo tar -zxf ~/下载/hadoop-3.1.3.tar.gz -C /usr/local    

cd /usr/local/

sudo mv ./hadoop-3.1.3/ ./hadoop            

sudo chown -R hadoop ./hadoop   #将Hadoop安装至usr/local/

    7.Hadoop单机配置(非分布式)

  Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。

现在我们可以执行例子来感受下 Hadoop 的运行。Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。

 

在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

 

    8.Hadoop伪分布式配置

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: 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 directories.</description>

    </property>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://localhost:9000</value>

    </property>

</configuration>

同样的,修改配置文件 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>

配置完成后,执行 NameNode 的格式化:

cd /usr/local/hadoop

./bin/hdfs namenode -format

启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。

    9.运行Hadoop伪分布式实例

上面的单机模式,grep 例子读取的是本地数据,伪分布式读取的则是 HDFS 上的数据。要使用 HDFS,首先需要在 HDFS 中创建用户目录:

./bin/hdfs dfs -mkdir -p /user/hadoop

接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中,即将 /usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中。我们使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是 /user/hadoop/input:

./bin/hdfs dfs -mkdir input

./bin/hdfs dfs -put ./etc/hadoop/*.xml input

复制完成后,可以通过如下命令查看文件列表:

./bin/hdfs dfs -ls input

伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件(可以将单机步骤中创建的本地 input 文件夹,输出结果 output 文件夹都删掉来验证这一点)。

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

查看运行结果的命令(查看的是位于 HDFS 中的输出结果):

./bin/hdfs dfs -cat output/*

若要关闭 Hadoop,则运行:

./sbin/stop-dfs.sh

讨论与心得

在安装VirtualBox虚拟机时,可能会弹出一些窗口询问是否要安装某些软件,一定要点击同意安装,否则,虚拟机不能正常运行。

如果不设置SSh免密登录的话,会在通过命令 jps 来判断是否成功启动,这一步最后只输出如下进程: jps,设置免密登录后即可解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值