在Ubuntu中安装hadoop的详细过程

发布于:2025-04-21 ⋅ 阅读:(72) ⋅ 点赞:(0)

在Ubuntu中安装hadoop的详细过程

请自行安装Ubuntu系统(可参考:在VMWare中安装Linux虚拟机Ubuntu)

一、创建hadoop用户

如果在安装 Ubuntu 的时候不是用的 “hadoop” 用户,这时需要增加一个名为 hadoop 的用户。
首先打开终端窗口,输入如下命令创建新用户 :

sudo useradd -m hadoop -s /bin/bash

接着使用如下命令设置密码,按提示输入两次密码:

sudo passwd hadoop

可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较困难的权限问题:

sudo adduser hadoop sudo

最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。
在这里插入图片描述

二、更新apt

用 hadoop 用户登录后,我们要先更新一下 apt,后续我们会使用 apt 安装软件。打开终端窗口,输入如下命令:

sudo apt-get update

执行这个命令时,会让你输入hadoop用户的密码,如下:
在这里插入图片描述

三、安装vim

后续需要更改一些配置文件,我这里使用的是 vim,使用如下命令进行安装vim:

sudo apt-get install vim

安装软件时根据提示输入Y:
在这里插入图片描述

四、安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到 SSH 登陆,Ubuntu 默认已安装了 SSH client,但还需要安装 SSH server,命令如下:

sudo apt-get install openssh-server

在这里插入图片描述
安装后,使用如下命令登陆本机:

ssh localhost

输入该命令会有如下提示(SSH首次登陆提示),这时按照提示输入 yes 。然后按提示输入密码,这样就登陆到本机了。
在这里插入图片描述
但是这样登陆每次都需要输入密码,所以我们需要配置成SSH无密码登陆。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权

五、安装Java环境

我这里使用的共享方式安装的JDK
首先点击虚拟机设置,点击选项,再点击共享文件夹,选择总是启用或者是在下次关机或挂起前一直启用:
在这里插入图片描述
点击添加,出现如下图所示:
在这里插入图片描述
然后点击下一步,添加共享文件夹向导,选择浏览,选择主机路径,设置名称(名称可不改,看自己命名习惯),再点击下一步,再点击完成,最后点击确定,共享文件夹就设置成功了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来进入共享文件夹,ls显示该文件夹的内容列表:

cd /mnt/hgfs
ls

根据自己文件夹的实际地址进入,我这里的文件夹是BaiduNetdiskDownload:

cd BaiduNetdiskDownload/
ls

接下来进行安装java环境,先返回主目录,安装jdk,我这里安装的是JDK1.8:

cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd ~ #进入hadoop用户的主目录
cd /mnt/hgfs  #进入共享文件夹
ls
cd BaiduNetdiskDownload/  
ls
sudo tar -zxvf ./jdk-8u371-linux-x64.tar.gz -C /usr/lib/jvm  #把JDK文件解压到/usr/lib/jvm目录下

JDK文件解压缩以后,可以使用如下命令去查看一下:

cd /usr/lib/jvm
ls

在这里插入图片描述
然后接下来进行设置环境变量,使用vim进行编辑:

cd ~
vim ~/.bashrc

在环境配置文件中进行如下配置:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_371
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

添加完成后保存退出编辑,然后使用下面的命令使其立即生效:

source ~/.bashrc

然后使用如下命令查看是否安装成功:

java -version

出现如下页面就表示安装成功:
在这里插入图片描述

六、安装 Hadoop3.3.5

进行安装Hadoop,这里依然选择用共享文件夹的方式进行安装,根据上一部分的做法进入共享文件夹:

cd /mnt/hgfs  #进入共享文件夹
ls
cd BaiduNetdiskDownload/  
ls
sudo tar -zxvf ./hadoop-3.3.5.tar.gz -C /usr/local   # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.3.5/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限
cd /usr/local/hadoop
./bin/hadoop version   #命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息,如图所示

在这里插入图片描述
接下来进行Hadoop伪分布式配置,首先修改配置文件 core-site.xml,输入如下命令:

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>

接下来修改配置文件 hdfs-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>

将以上内容配置完成后,执行 NameNode 的格式化,输入如下命令:

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

成功的话会返回如下图类似的信息:
在这里插入图片描述
接着开启 NameNode 和 DataNode 守护进程:

cd /usr/local/hadoop
./sbin/start-dfs.sh  #start-dfs.sh是个完整的可执行文件,中间没有空格

执行完如上命令之后,显示如下:
在这里插入图片描述
启动完成后,可以输入jps判断是否成功启动,启动成功则显示如下内容:
在这里插入图片描述
若是 DataNode 没有启动成功的话,可以做如下尝试:

# 针对 DataNode 没法启动的解决方法
cd /usr/local/hadoop
./sbin/stop-dfs.sh   # 关闭
rm -r ./tmp     # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format   # 重新格式化 NameNode
./sbin/start-dfs.sh  # 重启

成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
关闭 Hadoop,则运行如下命令:

./sbin/stop-dfs.sh

注意: 下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行 ./sbin/start-dfs.sh 就可以了。