准备工作

创建Hadoop用户

创建普通hadoop用户

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

设置密码

$ sudo passwd hadoop

添加超级用户权限

$ sudo adduser hadoop sudo

更新APT

$ sudo apt-get update

安装SSH

Ubuntu默认已安装了SSH客户端,因此,这里还需要安装SSH服务端,请
在Linux的终端中执行以下命令:

$ sudo apt-get install openssh-server

安装后,可以使用如下命令登录本机:

$ ssh localhost

首次登录提示yes,然后输入hadoop密码

ssl_localhost.png

首先,请输入命令“exit”退出刚才的SSH,就回到了原先的终端窗口;然
后,可以利用ssh-keygen生成密钥,并将密钥加入到授权中,命令如下:

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

此时,再执行ssh localhost命令,无需输入密码就可以直接登录了,如图所示

ssl_direct.png

安装JDK环境

执行如下命令创建“/usr/lib/jvm”目录用来存放JDK文件

$cd /usr/lib
$sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件

执行如下命令对安装文件进行解压缩

$sudo tar -zvxf /home/hadoop/Downloads/jdk-8u311-linux-x64.tar.gz -C /usr/lib/jvm # (文件 目标位置)
设置环境变量
$vim ~/.bashrc

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

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

保存退出,并通过如下命令使之生效

$source ~/.bashrc

可以使用如下命令查看是否安装成功(之前exit了ssh导致失败,需连接)

$java -version

结果如下

java_version.png

安装Hadoop(伪分布式)

安装Hadoop

  • 单机模式:只在一台机器上运行,存储是采用本地文件系统,没有采
    用分布式文件系统HDFS;
  • 伪分布式模式:存储采用分布式文件系统HDFS,但是,HDFS的名称 节点和数据节点都在同一台机器上;
  • 分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节 点和数据节点位于不同机器上。

解压文件

    $ sudo tar -zvxf /home/hadoop/Downloads/hadoop-3.1.3.tar.gz -C /usr/local #将Downloads下的文件解压到/usr/local中
    $ cd /usr/local/
    $ sudo mv ./hadoop-3.1.3/ ./hadoop # 将文件夹名改为hadoop
    $ sudo chown -R hadoop ./hadoop # 修改文件权限

Hadoop解压后即可使用,可以输入如下命令来检查 Hadoop是否可用,成功
则会显示 Hadoop版本信息:

    $ cd /usr/local/hadoop
    $ ./bin/hadoop version
伪分布式修改配置文件
    $ cd ./etc/hadoop
    $ vim 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>

同样编辑以下文件

$ vim 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>

执行名称节点格式化

修改配置文件以后,要执行名称节点的格式化,命令如下

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

如果格式化成功,会看到“successfully formatted”的提示信息

format_success.png

执行以下命令运行Hadoop

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

配置PATH变量

vim ~/.bashrc

前面追加

export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin

保存执行

$ source ~/.bashrc

此后任何目录都可以直接执行

$ stop-dfs.sh
$ start-dfs.sh

已知问题

  • 多次fromat会导致DataNode出错 需要删除某目录下一个文件夹 出错自行google
最后修改:2022 年 04 月 18 日
如果觉得我的文章对你有用,请随意赞赏