Hadoop安装详细教程 单机版


前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例仅供参考。

一、Hadoop是什么?

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决海量数据的存储以及分析计算的问题,并且含有一个更广泛的概念——Hadoop生态圈。
Hadoop是大数据集成技术之一的

二、Hadoop单机版安装

1.安装步骤

① Hadoop解压
安装前已经完成主机配置以及JDK安装,这里不多详细介绍。
咱们开始:
首先 (Hadoop默认安装在家目录下的 /opt/module/ 没有就使用 mkdir 命令创建)
代码如下(示例):

[kira@hadooploca7 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

等待安装完毕后检查是否解压成功

[kira@hadooploca7 software]$ ls /opt/module/
hadoop-3.1.3

② 环境配置
我们老师在教我们的时候把Hadoop解压后的文件夹名从 hadoop-3.1.3 改成 hadoop 这样比较方便后续操作。
打开 /etc/profile.d/my_env.sh 文件(如果忘记解压到哪里了使用 pwd 查询、vim命令修改不成功使用 sudo )

[kira@hadooploca7 hadoop]$ sudo vim /etc/profile.d/my_env.sh

在my_env.sh文件末尾 添加如下内容:

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

保存并退出 source 一下让变量生效

[kira@hadooploca7 hadoop]$ source /etc/profile

测试是否安装成功

[kira@hadooploca7 hadoop]$ hadoop version
Hadoop 3.1.3

reboot 一下 ~

[kira@hadooploca7 hadoop]$ sudo reboot

查看Hadoop目录结构(已经使用一段时间 所以文件有增添变化)

[kira@hadooplocal7 hadoop]$ ll
总用量 92
drwxr-xr-x. 2 kira kira    203 6月  15 13:52 bin
drwxr-xr-x. 4 kira kira     37 6月  28 16:25 data
drwxr-xr-x. 3 kira kira     20 6月  15 13:15 etc
drwxr-xr-x. 2 kira kira    106 6月  15 13:52 include
drwxr-xr-x. 3 kira kira     20 6月  15 13:52 lib
drwxr-xr-x. 4 kira kira    288 6月  15 13:52 libexec
-rw-rw-r--. 1 kira kira  23450 6月  15 13:02 LICENSE-binary
drwxr-xr-x. 2 kira kira   4096 6月  15 13:52 licenses-binary
-rw-rw-r--. 1 kira kira  15217 6月  15 13:02 LICENSE.txt
drwxr-xr-x. 3 kira kira   4096 6月  28 16:35 logs
-rw-rw-r--. 1 kira kira  29473 6月  15 13:02 NOTICE-binary
-rw-rw-r--. 1 kira kira   1541 5月  22 00:11 NOTICE.txt
-rw-rw-r--. 1 kira kira    175 5月  22 00:11 README.txt
drwxr-xr-x. 3 kira kira  4096 10月  28 15:36 sbin
drwxr-xr-x. 4 kira kira     31 6月  15 14:18 share

Hadoop 重要目录:
bin 目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本。
etc 目录:Hadoop的配置文件目录,存放Hadoop的配置文件。
lib 目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)。
sbin 目录:存放启动或停止Hadoop相关服务的脚本。
share 目录:存放Hadoop的依赖jar包、文档、和官方案例。

2.Hadoop运行模式

完全分布式是我们的开发重点,这篇帖子先给大家介绍如何进行单机版配置
Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
① 本地模式:单机运行,只是用来演示案例,生产环境不推荐使用。
② 也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境,我们用来测试,生产环境不推荐使用。
③ 多台服务器组成分布式环境,模拟真实生产环境推荐使用。

3.Hadoop集群配置

① 集群配置
Ⅰ. 集群规划部署
(完全分布式按此规划,单机版跳过)
ⅰ. ⅲNameNode和SecondaryNameNode不要安装在同一台虚拟机(服务器)。
ⅱ. ResourceManager 也很消耗内存,不要和 NameNode 、 SecondaryNameNode 配置在同一台虚拟机(服务器)上。
默认文件配置
咱也不知道,咱也不敢问~ 照着做就OK呐
#NameNode 、 ResourceManager 、 SecondaryNameNod 单机版配置在同一机器上,完全分布式需要分别配置,因为它们都比较消耗内存,分开配置可以减小竞争压力~ (土豪、大佬除外)

Ⅱ. 配置文件说明
Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
ⅰ. 默认配置文件:
[core-default.xml]
[hdfs-default.xml]
[yarn-default.xml]
[mapred-default.xml]
ⅱ. 自定义配置文件:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在 /hadoop 解压包里的 /hadoop 这个路径(根据下面操作),用户可以根据项目需求重新进行修改配置。
Ⅲ. 配置集群
ⅰ. 核心配置文件
[配置 .xml 文件中修改或添加]
配置 core-site.xml
切换到该文件路径

[kira@hadooplocal7 ~]$ cd /opt/module/hadoop/etc/hadoop/

或者

[kira@hadooplocal7 ~]$ cd $HADOOP_HOME/etc/hadoop

接下去使用 vim 命令修改该 xml 文件

[kira@hadooplocal7 hadoop]$ vim core-site.xml

修改内容如下

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:8020</value>
    </property>

    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>

    <!-- 配置HDFS网页登录使用的静态用户为atguigu -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>atguigu</value>
    </property>
</configuration>

ⅱ. HDFS 配置文件
配置 hdfs-site.xml
一样的使用 vim 命令修改该 xml 文件

[kira@hadooplocal7 hadoop]$  vim hdfs-site.xml

修改内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
	<!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
</configuration>

ⅲ. YARN 配置文件
配置 yarn-site.xml
一样的使用 vim 命令修改该 xml 文件

[kira@hadooplocal7 hadoop]$  vim yarn-site.xml

修改内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</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_MAPRED_HOME</value>
    </property>
</configuration>

ⅳ. MapReduce 配置文件
配置 mapred-site.xml
一样的使用 vim 命令修改该 xml 文件

[kira@hadooplocal7 hadoop]$  vim mapred-site.xml

修改内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

Ⅳ. 检查 Hadoop 配置文件

[kira@hadooplocal7 hadoop]$ cat core-site.xml
[kira@hadooplocal7 hadoop]$ cat hdfs-site.xml
[kira@hadooplocal7 hadoop]$ cat yarn-site.xml
[kira@hadooplocal7 hadoop]$ cat mapred-site.xml

检查修改后与上述文件是否一致

②群起集群
Ⅰ.配置 workers

[kira@hadooplocal7 hadoop]$ vim /opt/module/hadoop/etc/hadoop/workers

在该文件中添加内容:(注意不能有空格和空行)

hadooplocal7
hadooplocal8
hadooplocal9

Ⅱ. 启动集群
如果集群是第一次启动需要在 hadooplocal7 节点格式化 NameNode
(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)
使用 hadoop 文件夹下 sbin 文件中命令进行
ⅰ. 格式化 NameNode

[kira@hadooplocal7 hadoop]$ hdfs namenode -format

ⅱ. 启动 HDFS

[kira@hadooplocal7 hadoop]$ sbin/start-dfs.sh

ⅲ. 在配置了ResourceManager的节点(hadooplocal9)启动YARN

[kira@hadooplocal7 hadoop]$ sbin/start-yarn.sh

ⅳ. Web端查看 HDFS 的 NameNode(打开 CentOS 8 中的火狐浏览器)
1、浏览器中输入:http://hadooplocal8:9870
单机版输入:http://hadooplocal7:9870 (9870为端口号,你设置为哪个就输入哪个一般来说是8090 这里是9870)
2、查看 HDFS 的上存储的数据信息
ⅴ. Web端查看 YARN 的 ResourceManager(打开 CentOS 8 中的火狐浏览器)
1、浏览器中输入:http://hadooplocal9:8088
单机版输入:http://hadooplocal7:8088
2、查看 YARN 上运行的Job信息

③配置历史服务器
为了查看程序的历史运行情况,需要配置一下历史服务器。(单机版直接跳过)
Ⅰ. 配置mapred-site.xml

[kira@hadooplocal7 hadoop]$  vim mapred-site.xml

ⅰ. 在文件里增添配置:

<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop102:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102:19888</value>
</property>

ⅱ. 在 hadooplocal8 启动历史服务器:

[kira@hadooplocal7 hadoop]$ mapred --daemon start historyserver

ⅲ. 查看历史服务器是否启动

[kira@hadooplocal7 hadoop]$ jps

ⅳ. 查看 JobHistory
浏览器中输入:http://hadooplocal8:19888/jobhistory
单机版输入:http://hadooplocal7:19888/jobhistory

篇幅过大先不开启日志聚集功能,开启日志聚集需要重新启动 NodeManager 、 ResourceManage 和 HistoryServer

④ 集群启动 / 停止方式总结
Ⅰ. 各个模块分开启动 / 停止(配置ssh免密为前提,不知道怎么配置ssh可以问度娘)
ⅰ. 启动 / 停止 HDFS (使用 hadoop 文件夹中 sbin 文件下的命令)

[kira@hadooplocal7 hadoop]$ start-hdfs.sh
[kira@hadooplocal7 hadoop]$ stop-hdfs.sh

ⅱ. 启动 / 停止 YARN (使用 hadoop 文件夹中 sbin 文件下的命令)

[kira@hadooplocal7 hadoop]$ start-yarn.sh
[kira@hadooplocal7 hadoop]$ stop-yarn.sh

Ⅱ. 各个服务组件逐一启动 / 停止
ⅰ. 分别启动 / 停止 HDFS 组件

[kira@hadooplocal7 hadoop]$ hdfs --daemon start namenode/datanode/secondarynamenode
[kira@hadooplocal7 hadoop]$ hdfs --daemon stop namenode/datanode/secondarynamenode

ⅱ. 启动 / 停止 YARN

[kira@hadooplocal7 hadoop]$ yarn --daemon start  resourcemanager/nodemanager
[kira@hadooplocal7 hadoop]$ yarn --daemon stop resourcemanager/nodemanager

Ⅲ. 启动 / 停止整体服务(使用 hadoop 文件夹中 sbin 文件下的命令)

[kira@hadooplocal7 hadoop]$ start-all.sh
[kira@hadooplocal7 hadoop]$ stop-all.sh

三、总结

这里对文章进行总结:
如果要完成完全分布式集群还需要在克隆另外两台虚拟机并安装配置Hadoop 、集群时间同步等操作,我们可以编写一些集群脚本控制集群启动 / 停止、分发文件等,使用 rsync 进行分发文件,效率更快~
还有安装Hadoop之前的主机IP配置及JDK安装还有ssh免密登录等参考这儿~
Hadoop环境搭建

文章不一定严谨,欢迎大佬指导!

最后祝大家学习愉快~

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>