Hadoop搭建教程

Hadoop入门 中,为大家简单介绍了 Hadoop

在本文,我将为大家演示基于 linux 的 Hadoop 搭建。

本文所用软件版本:

CentOS 7
Vmware 16
Xshell 7
Xftp 7

在开始之前你需要提前下载:

PS. 镜像下载时间超长

你需要提前准备:

  • 一台配置好 网络&主机名&配置好xshell 的虚拟机

本文将以初学者的视角进行详细讲解,左侧配有目录,大家按需选择阅读章节OuO。

全文中的重点内容都采用与本条相同的样式,鼠标悬停即可显示简要说明,方便快速理解。

VMware 软件使用

具体从软件配置到创建虚拟机这里不再赘述,大家可以自行搜索,这里只展示我觉得需要注意的点

网络设置

桥接模式会直接把虚拟机连接到物理网络,就像一台真实电脑。
虚拟机直接使用主机所在的局域网IP

NAT模式会通过主机共享网络连接,虚拟机和外网通信时由主机做中转。
虚拟机通过主机的网络访问外网

仅主机模式下,虚拟机只能和主机互通,不能访问外网。
适合内网测试或安全环境


关闭防火墙

1
2
systemcttl stop firewalld    --关闭防火墙
systemctl disable firewalld --永久关闭防火墙

jdk配置

1.使用Xftp传输压缩包并解压

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@master opt]# pwd
/opt
[root@master opt]# mkdir module #解压后的位置
[root@master opt]# mkdir software #压缩包
[root@master opt]# cd software
[root@master software]# ll
total 1488592
-rw-r--r--. 1 root root 87380462 Aug 27 10:59 apache-flume-1.11.0-bin.tar.gz
-rw-r--r--. 1 root root 22347776 Aug 27 10:59 apache-hive-3.1.2-bin.tar.gz
-rw-r--r--. 1 root root 14853274 Aug 27 10:59 apache-zookeeper-3.8.3-bin.tar.gz
-rw-r--r--. 1 root root 730107476 Aug 27 10:59 hadoop-3.3.6.tar.gz
-rw-r--r--. 1 root root 141600542 Aug 27 10:59 jdk-8u401-linux-x64.tar.gz
-rw-r--r--. 1 root root 528015360 Aug 27 10:59 mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
[root@master software]# tar -zvxf jdk-8u401-linux-x64.tar.gz -C ../module #解压jdk压缩包
[root@master software]# tar -zvxf hadoop-3.3.6.tar.gz -C ../module/ #解压hadoop压缩包
[root@master software]# cd ../module/
[root@master module]# ll
total 8
drwxr-xr-x. 10 1000 1000 4096 Jun 18 2023 hadoop-3.3.6
drwxr-x---. 8 root root 4096 Aug 27 11:02 jdk1.8.0_401

2.配置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@master module]# cd jdk1.8.0_401/
[root@master jdk1.8.0_401]# pwd
/opt/module/jdk1.8.0_401

[root@master module]# vi /etc/profile

export JAVA_HOME=/opt/module/jdk1.8.0_401
export PATH=$PATH:$JAVA_HOME/bin

[root@master module]# source /etc/profile #刷新环境变量
[root@master ~]# jps
508 Jps

克隆三台虚拟机

在克隆之前建议配置好hosts文件为下一步做准备

配置好后依次更改主机名

这里不过多赘述

配置免密—SSH

1.更改hosts

三台虚拟机都更改

1
2
3
4
vi /etc/hosts
[ip-1] [hostname-1]
[ip-2] [hostname-2]
[ip-3] [hostname-3]

2.生成并传输密钥

主节点生成密钥

1
2
ssh-keygen -t rsa #生成密钥
ssh-copy-id [hostname-1&2&3] #传输密钥

输入 yes+对应主机的密码

成功后可以使用 ssh + [hostname-1&2&3]进行测试

exit命令即可退出

配置Hadoop配置文件

以下配置文件的路径为$hadoop_home/etc/hadoop/

core-site.xml

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/software/hadoop-3.3.4/data</value> --hadoop路径
</property>
</configuration>

hdfs-site.xml

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50070</value>
</property>
</configuration>

mapred-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/root/software/hadoop-3.3.4</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/root/software/hadoop-3.3.4</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/root/software/hadoop-3.3.4</value>
</property>
</configuration>

yarn-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,
HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,
HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
</configuration>

hadoop-env.sh

1
export JAVA_HOME=$JAVA_HOME

workers

1
三台机器的名字

配置并刷新环境变量

1
2
3
4
5
6
7
8
9
#hadoop
export HADOOP_HOME=/root/software/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

刷新环境变量 source /etc/profile

SSH 传输

1
scp [-1246BCpqrv]  [-c cipher]  [-F ssh_config]  [-i identity_file]  [-l limit]  [-o ssh_option]  [-P port]  [-S program]  [[user@]host1:]file1 [...]  [[user@]host2:]file2

依次传输Hadoop、环境变量到其他虚拟机

启动Hadoop

Hadoop 启动与停止命令一览

1. 启动/停止所有守护进程

  • 启动所有守护进程

    sbin/start-all.sh

启动内容包括:NameNode、Secondary NameNode、DataNode、ResourceManager、NodeManager

  • 停止所有守护进程

    sbin/stop-all.sh

停止内容包括:NameNode、Secondary NameNode、DataNode、ResourceManager、NodeManager


2. HDFS 守护进程

  • 启动 HDFS 守护进程

    sbin/start-dfs.sh

启动内容:NameNode、Secondary NameNode、DataNode

  • 停止 HDFS 守护进程

    sbin/stop-dfs.sh

停止内容:NameNode、Secondary NameNode、DataNode

单独启动/停止 HDFS 守护进程

  • NameNode

    sbin/hadoop-daemons.sh start namenode

    sbin/hadoop-daemons.sh stop namenode

  • DataNode

    sbin/hadoop-daemons.sh start datanode

    sbin/hadoop-daemons.sh stop datanode

  • Secondary NameNode

    sbin/hadoop-daemons.sh start secondarynamenode

    sbin/hadoop-daemons.sh stop secondarynamenode


3. YARN 守护进程

  • 启动 YARN 守护进程

    sbin/start-yarn.sh

启动内容:ResourceManager、NodeManager

  • 停止 YARN 守护进程

    sbin/stop-yarn.sh

停止内容:ResourceManager、NodeManager

单独启动/停止 YARN 守护进程

  • ResourceManager

    sbin/yarn-daemon.sh start resourcemanager

    ``sbin/yarn-daemon.sh stop resourcemanager`

  • NodeManager

    sbin/yarn-daemons.sh start nodemanager

    ``sbin/yarn-daemons.sh stop nodemanager`


4. MapReduce JobHistory 服务

  • 启动 JobHistory

    sbin/mr-jobhistory-daemon.sh start historyserver

  • 停止 JobHistory

    sbin/mr-jobhistory-daemon.sh stop historyserver

测试是否成功

  • 先使用jps查看进程,查看是否成功启动所有进程

  • 打开网页 主节点的ip地址:9870
    查看是否有web ui,在这里你能看到你所搭建的集群的基本信息