安装Hadoop

Ubuntu 18.04.1 LTS (on VirtualBox)

Apache hadoop-3.3.1.tar.gz(2021 Jun 15)

JAVA 8 (openjdk version "1.8.0_162")

--

 

注,2020年7月写过一篇,今天,重新启程

 

Hadoop下载地址:

https://hadoop.apache.org/releases.html

选择其中的 Binary download,点击即开始下载(近600MB)。

 

本文记录 单机安装Hadoop的步骤,参考官文:

Hadoop: Setting up a Single Node Cluster.

 

目录

1、建立hadoop用户

2、配置免密登录

3、下载&解压

4、修改配置

4.1 etc/hadoop/hadoop-env.sh

5、配置伪分布式模式(pseudo-distributed mode)

5.1 etc/hadoop/core-site.xml

5.2 etc/hadoop/hdfs-site.xml

5.3 创建/data/hadoop

6、启动HDFS

7、配置YARN资源调度器

7.1 etc/hadoop/mapred-site.xml

7.2 etc/hadoop/yarn-site.xml

7.3 启动YARN

7.4 访问资源管理器

参考文档

 

1、建立hadoop用户

# 新建用户 hadoop
sudo useradd -m hadoop -s /bin/bash

# 添加到sudo组(管理员权限)
sudo adduser hadoop sudo

# 设置hadoop密码
passwd hadoop

试验时设置密码为 111。

 

新建用户后,多了一个 hadoop组( cat /etc/group),sudo组 下多了一个 hadoop:

$ cat /etc/group | grep sudo
sudo:x:27:user,hadoop

/home下多了 hadoop目录:

$ ls -l /home | grep hadoop
drwxr-xr-x  6 hadoop hadoop 4096 12月  4 12:08 hadoop

 

疑问:

hadoop 用户在 使用Hadoop的作用是什么?

 

2、配置免密登录

安装了 ssh。

 

修改 /etc/profile ,添加:

export PDSH_RCMD_TYPE=ssh

 

切换到 hadoop 用户,进入其 home 目录,执行ssh-keygen:

# 输入后,一直点回车
ssh-keygen

# 官文的
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

在 /home/hadoop 下生成了 .ssh 及其中的三个文件:

id_rsa、id_rsa.pub、known_hosts

执行命令,拷贝 id_rsa.pub 的内容到 authorized_keys 文件(不存在也没关系,会自动建立):

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

此时,执行 ssh localhost 就可以免密登录了。

 

疑问:

免密登录 的作用是什么?

下面配置 单机伪分布式模式 时需要。

 

3、下载&解压

下载得到 hadoop-3.3.1.tar.gz,放到 /home/hadoop/ws 中;

进入/home/hadoop/ws,原地解压:

tar zxvf hadoop-3.3.1.tar.gz

解压得到:

$ ll hadoop-3.3.1/
total 124
drwxr-xr-x 11 hadoop hadoop  4096 12月  4 11:34 ./
drwxrwxr-x  3 hadoop hadoop  4096 12月  4 11:34 ../
drwxr-xr-x  2 hadoop hadoop  4096 12月  4 11:34 bin/
drwxr-xr-x  3 hadoop hadoop  4096 12月  4 11:34 etc/
drwxr-xr-x  2 hadoop hadoop  4096 12月  4 11:34 include/
drwxr-xr-x  3 hadoop hadoop  4096 12月  4 11:34 lib/
drwxr-xr-x  4 hadoop hadoop  4096 12月  4 11:34 libexec/
-rw-rw-r--  1 hadoop hadoop 23450 12月  4 11:34 LICENSE-binary
drwxr-xr-x  2 hadoop hadoop  4096 12月  4 11:34 licenses-binary/
-rw-rw-r--  1 hadoop hadoop 15217 12月  4 11:34 LICENSE.txt
drwxrwxr-x  2 hadoop hadoop  4096 12月  4 12:08 logs/
-rw-rw-r--  1 hadoop hadoop 29473 12月  4 11:34 NOTICE-binary
-rw-rw-r--  1 hadoop hadoop  1541 12月  4 11:34 NOTICE.txt
-rw-rw-r--  1 hadoop hadoop   175 12月  4 11:34 README.txt
drwxr-xr-x  3 hadoop hadoop  4096 12月  4 11:34 sbin/
drwxr-xr-x  4 hadoop hadoop  4096 12月  4 11:34 share/

本试验用到过 etc、bin、sbin、logs 三个目录下的文件。

 

4、修改配置

4.1 etc/hadoop/hadoop-env.sh

末尾添加:

export JAVA_HOME=/usr

 

说明:

为什么是 /usr?使用 whereis java 得到的结果如下:

$ whereis java
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

其实,可以进一步追踪 java命令在哪里:/usr/bin/java 只是一个 符号链接。

$ ls -l /usr/bin | grep java
lrwxrwxrwx 1 root              root                     22 5月  26  2021 java -> /etc/alternatives/java
lrwxrwxrwx 1 root              root                     23 5月  26  2021 javac -> /etc/alternatives/javac
lrwxrwxrwx 1 root              root                     25 5月  26  2021 javadoc -> /etc/alternatives/javadoc
lrwxrwxrwx 1 root              root                     23 5月  26  2021 javah -> /etc/alternatives/javah
lrwxrwxrwx 1 root              root                     23 5月  26  2021 javap -> /etc/alternatives/javap

# 更进一步:/etc/alternatives/java 也是一个 符号链接
/etc/alternatives$ ls -l | grep java
lrwxrwxrwx 1 root root  46 5月  26  2021 java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
...

进一步跟踪,这里的 JAVA_HOME 应该配置为:

/usr/lib/jvm/java-8-openjdk-amd64

更改后,bin/hadoop命令仍然可用,说明是对的。

 

配置完毕,此时,可以使用 bin/hadoop 命令了。

安装Hadoop

上一篇:HDFS --JAVA API操作


下一篇:Hadoop思想与原理,HBase架构与原理,MapReduce架构与工作过程