大数据技术之Hadoop(入门)概述、运行环境搭建、运行模式


1 Hadoop 概述

1.1 Hadoop 是什么

1Hadoop是一个由Apache基金会所开发的分布式系统基础架构
2主要解决海量数据的存储和海量数据的分析计算问题
3广义上来说Hadoop通常是指一个更广泛的概念——Hadoop生态圈

1.2 Hadoop 优势

1高可靠性Hadoop底层维护多个数据副本所以即使Hadoop某个计算元素或存储出现故障也不会导致数据的丢失。
2高扩展性在集群间分配任务数据可方便的扩展数以千计的节点。
3高效性在MapReduce的思想下Hadoop是并行工作的以加快任务处理速度。
4高容错性能够自动将失败的任务重新分配。

1.3 Hadoop 组成面试重点

在这里插入图片描述
在Hadoop1.x 时代Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度耦合性较大。
在Hadoop2.x时代增加了Yarn。Yarn只负责资源的调度MapReduce 只负责运算。
Hadoop3.x在组成上没有变化。

1.3.1 HDFS 架构概述

Hadoop Distributed File System简称HDFS是一个分布式文件系统。

1NameNodenn存储文件的元数据文件名文件目录结构文件属性生成时间、副本数、文件权限以及每个文件的块列表块所在的DataNode等。
2DataNode(dn)在本地文件系统存储文件块数据以及块数据的校验和
3Secondary NameNode(2nn)每隔一段时间对NameNode元数据备份

1.3.2 YARN 架构概述

Yet Another Resource Negotiator 简称YARN 另一种资源协调者是Hadoop 的资源管理器。
在这里插入图片描述

ResourceManager(RM)整个集群资源内存、CPU等的管理者
NodeManager(NM)单个节点服务器资源的管理者。
ApplicationMaster(AM)单个任务运行的管理者。
Container容器相当于一台独立的服务器里面封装了任务运行所需要的资源如内存、CPU、磁盘、网络等。

说明
1客户端可以有多个
2集群上可以运行多个ApplicationMaster
3每个NodeManager上可以有多个Container

1.3.3 MapReduce 架构概述

MapReduce 将计算过程分为两个阶段Map 和Reduce
1Map 阶段并行处理输入数据
2Reduce 阶段对Map 结果进行汇总
在这里插入图片描述

1.3.4 HDFS、YARN、MapReduce 三者关系

如图所示
在这里插入图片描述

1.3.5 大数据技术生态体系

如图所示
在这里插入图片描述
图中涉及的技术名词解释如下

1SqoopSqoop 是一款开源的工具主要用于在Hadoop、Hive 与传统的数据库MySQL间进行数据的传递可以将一个关系型数据库例如 MySQLOracle 等中的数据导进到Hadoop 的HDFS 中也可以将HDFS 的数据导进到关系型数据库中。
2FlumeFlume 是一个高可用的高可靠的分布式的海量日志采集、聚合和传输的系统Flume 支持在日志系统中定制各类数据发送方用于收集数据。
3KafkaKafka 是一种高吞吐量的分布式发布订阅消息系统。
4SparkSpark 是当前最流行的开源大数据内存计算框架。可以基于Hadoop 上存储的大数据进行计算。
5FlinkFlink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
6OozieOozie 是一个管理Hadoop 作业job的工作流程调度管理系统。
7HbaseHBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库它是一个适合于非结构化数据存储的数据库。
8HiveHive 是基于Hadoop 的一个数据仓库工具可以将结构化的数据文件映射为一张数据库表并提供简单的SQL 查询功能可以将SQL 语句转换为MapReduce 任务进行运行。其优点是学习成本低可以通过类SQL 语句快速实现简单的MapReduce 统计不必开发专门的MapReduce 应用十分适合数据仓库的统计分析。
9ZooKeeper它是一个针对大型分布式系统的可靠协调系统提供的功能包括配置维护、名字服务、分布式同步、组服务等。

1.3.6 推荐系统框架图

推荐系统项目框架
在这里插入图片描述

2 Hadoop 运行环境搭建开发重点

2.1 模板虚拟机环境准备

2.1.1 hadoop100 虚拟机配置要求如下

1使用 yum 安装需要虚拟机可以正常上网yum 安装前可以先测试下虚拟机联网情况

[root@hadoop100 ~]# ping www.baidu.com

2安装epel-release

[root@hadoop100 ~]# yum install -y epel-release

3注意如果Linux 安装的是最小系统版还需要安装如下工具如果安装的是Linux桌面标准版不需要执行如下操作
net-tool工具包集合包含ifconfig 等命令
vim编辑器

[root@hadoop100 ~]# yum install -y net-tools
[root@hadoop100 ~]# yum install -y vim

2.1.2 关闭防火墙关闭防火墙开机自启

[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld.service

2.1.3 创建普通用户并修改普通用户的密码

[root@hadoop100 ~]# useradd Tom
[root@hadoop100 ~]# passwd Tom

2.1.4 配置普通用户具有 root 权限方便后期加sudo 执行 root 权限的命令

[root@hadoop100 ~]# vim /etc/sudoers

修改/etc/sudoers 文件在%wheel 这行下面添加一行如下所示
在这里插入图片描述
注意Tom这一行不要直接放到 root行下面因为所有用户都属于 wheel组你先配置了Tom具有免密功能但是程序执行到 %wheel行时 该功能又被覆盖回需要密码 。所以Tom要放到 %wheel这行下面。

2.1.5 在 /opt目录下创建文件夹 并修改所属用户和所属组
在这里插入图片描述
2.1.6 卸载虚拟机自带的 JDK

[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

rpm -qa查询所安装的所有rpm软件包
grep -i忽略大小写
xargs -n1表示每次只传递一个参数
rpm -e --nodeps强制卸载软件
注意注意如果你的虚拟机是最小化安装不需要执行这一步。

2.1.7 重启虚拟机

[root@hadoop100 ~]# reboot

2.2 克隆虚拟机

2.2.1 利用模板机 hadoop100克隆 三台虚拟机 hadoop102 hadoop103 hadoop104

注意克隆时要先关闭 hadoop100

2.2.2 修改克隆机 IP以 hadoop102 举例说明

1修改克隆虚拟机的静态 IP

[Tom@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

在这里插入图片描述
2查看 Linux虚拟机的虚拟网络编辑器编辑 ->虚拟网络编辑器 ->VMnet8
在这里插入图片描述
在这里插入图片描述
3查看 Windows系统适配器 VMware Network Adapter VMnet8的 IP地址

在这里插入图片描述
4保证 Linux系统 ifcfg-ens33文件中 IP地址、虚拟网络编辑器地址和 Windows系统 VMnet8网络 IP地址相同。

2.2.3 修改克隆机主机名 以 hadoop102举例说明

1修改主机名称

[root@hadoop100 ~]# vim /etc/hostname 

2配置 Linux克隆机主机名称映射 hosts文件 打开 /etc/hosts

[root@hadoop100 ~]# vim /etc/hosts

在这里插入图片描述
2.2.4 重启克隆机 hadoop102

[root@hadoop100 ~]# reboot

2.2.5 修改 windows的主机映射文件(hosts文件)

进入C:\Windows\System32\drivers\etc路径打开 hosts文件并添加如下内容 然后保存。
在这里插入图片描述

2.3 在 hadoop102 安装 JDK

1卸载现有 JDK
注意安装 JDK前一定确保提前删除了虚拟机自带的 JDK。

2用 XShell传输工具将 JDK导入到 opt目录下面的 software文件夹下面

3在 Linux系统下的 opt目录中查看软件包是否导入成功

[Tom@hadoop102 ~]$ ls /opt/software/
jdk-8u212-linux-x64.tar.gz

4解压 JDK到 /opt/module目录下

[Tom@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

5配置 JDK环境变量

[Tom@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh 

在这里插入图片描述
source一下 /etc/profile文件 让新的环境变量 PATH生效

[Tom@hadoop102 software]$ source /etc/profile

测试JDK是否安装成功

[Tom@hadoop102 software]$ java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
[Tom@hadoop102 software]$ 

2.4 在 hadoop102 安装 Hadoop

1用 XShell文件传输 工具将 hadoop-3.1.3.tar.gz导入到 opt目录下面的 software文件夹下面

2解压安装文件到 /opt/module下面

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

3查看是否解压成功

[Tom@hadoop102 software]$ ls /opt/module/
hadoop-3.1.3  jdk1.8.0_212

4将 Hadoop添加到环境变量

[Tom@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh 

在这里插入图片描述
让修改后的文件生效

[Tom@hadoop102 software]$ source /etc/profile

5测试是否安装成功

[Tom@hadoop102 software]$ hadoop version
Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar
[Tom@hadoop102 software]$ 

6重启 如果 Hadoop命令不能用再重启虚拟机

[Tom@hadoop102 hadoop-3.1.3]$ sudo reboot

2.5 Hadoop 目录结构

查看 Hadoop目录结构

[Tom@hadoop102 hadoop-3.1.3]$ ll
总用量 184
-rw-rw-r--. 1 Tom Tom     25 5月  28 16:49 a.txt
drwxr-xr-x. 2 Tom Tom    183 9月  12 2019 bin
drwxrwxr-x. 4 Tom Tom     37 5月  29 10:54 data
drwxr-xr-x. 3 Tom Tom     20 9月  12 2019 etc
drwxrwxr-x. 3 Tom Tom     18 5月  29 10:53 hdfsdata
drwxr-xr-x. 2 Tom Tom    106 9月  12 2019 include
drwxr-xr-x. 3 Tom Tom     20 9月  12 2019 lib
drwxr-xr-x. 4 Tom Tom    288 9月  12 2019 libexec
-rw-rw-r--. 1 Tom Tom 147145 9月   4 2019 LICENSE.txt
drwxrwxr-x. 3 Tom Tom   4096 5月  29 15:36 logs
-rw-rw-r--. 1 Tom Tom  21867 9月   4 2019 NOTICE.txt
-rw-rw-r--. 1 Tom Tom   1366 9月   4 2019 README.txt
drwxr-xr-x. 3 Tom Tom   4096 9月  12 2019 sbin
drwxr-xr-x. 4 Tom Tom     31 9月  12 2019 share
drwxrwxr-x. 2 Tom Tom     22 5月   6 22:23 wcinput
[Tom@hadoop102 hadoop-3.1.3]$ 

重要目录

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

3 Hadoop 运行模式

Hadoop官方网站 http://hadoop.apache.org/

Hadoop运行模 式包括本地模式伪分布式模式以及完全分布式模式

本地模式单机运行只是用来演示一下官方案例。 生产环境不用。
伪分布式模式 也是单机运行但是具备 Hadoop集群的所有功能。一台服务器模拟一个分布式的环境 。个别缺钱的公司用来测试生产环境不用。
完全分布式模式 多台服务器组成分布式环境。 生产环境使用

完全分布式模式搭建步骤
1准备 3台客户机 关闭防火墙、静态 IP、主机名称
2安装 JDK
3配置环境变量
4安装 Hadoop
5配置环境变量
6配置集群
7单点启动
8配置ssh
9群起并测试集群

3.1 编写集群分发脚本 xsync

1scp (secure copy)安全拷贝

scp可以实现服务器与服务器之间的数据拷贝 。(from server1 to server2)
基本语法:
在这里插入图片描述
2rsync远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和 scp区别 用 rsync做文件的复制要比 scp的速度快 rsync只对差异文件做更新。 scp是把所有文件都复制过去。
基本语法:
在这里插入图片描述
3xsync集群分发脚本

需求循环复制文件到所有节点的相同目录下

需求分析
rsync命令原始拷贝

rsync -av /opt/module/ Tom@hadoop103:/opt/

期望脚本xsync要同步的文件名称
期望脚本在任何路径都能使用 脚本放在声明了全局环境变量的路径

[Tom@hadoop102 bin]$ echo $PATH

脚本实现在 /home/Tom/bin目录下创建 xsync文件

#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
        echo Not Enough Arguement!
        exit;
fi

#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
        echo ==================== $host ====================
        #3. 遍历所有目录挨个发送

        for file in $@
        do
                #4. 判断文件是否存在
                if [ -e $file ]
                        then
                                #5. 获取父目录
                                pdir=$(cd -P $(dirname $file); pwd)

                                #6. 获取当前文件的名称
                                fname=$(basename $file)
                                ssh $host "mkdir -p $pdir"
                                rsync -av $pdir/$fname $host:$pdir
                        else
                                echo $file does not exists!
                fi
        done
done

修改脚本 xsync 具有执行权限

[Tom@hadoop102 bin]$ chmod +x xsync 

测试脚本

[Tom@hadoop102 bin]$ xsync /home/Tom/bin/

将脚本复制到 /bin中以便全局调用

[Tom@hadoop102 bin]$ sudo cp xsync /bin/

同步环境变量配置( root所有者
注意如果用了 sudo那么 xsync一定要给它的路径补全。

[Tom@hadoop102 ~]$ sudo ./bin/xsync 

让环境变量生效

[Tom@hadoop103 ~]$ source /etc/profile
[Tom@hadoop104 ~]$ source /etc/profile

3.2 SSH 无密登录配置

配置 ssh
基本语法ssh 另一台电脑的 IP地址

无密钥配置

免密登录原理
在这里插入图片描述
生成公钥和私钥

[Tom@hadoop102 .ssh]$ pwd
/home/Tom/.ssh

[Tom@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲三个回车就会生成两个文件id_rsa私钥、id_rsa.pub公钥

将公钥拷贝到要免密登录的目标机器上

[Tom@hadoop102 .ssh]$ ssh-copy-id hadoop102
[Tom@hadoop102 .ssh]$ ssh-copy-id hadoop103
[Tom@hadoop102 .ssh]$ ssh-copy-id hadoop104

注意还需要在hadoop103 上采用 Tom账号配置一下无密登录到hadoop102、hadoop103、hadoop104 服务器上。
在hadoop104 上采用 Tom账号配置一下无密登录到hadoop102、hadoop103、hadoop104 服务器上。
在hadoop102 上采用root 账号配置一下无密登录到hadoop102、hadoop103、hadoop104。

.ssh 文件夹下~/.ssh的文件功能解释
在这里插入图片描述

3.3 集群配置

集群部署规划

1NameNodeSecondaryNameNode不要安装在同一台服务器。
2ResourceManager也很消耗内存不要和 NameNodeSecondaryNameNode配置在同一台机器上。
在这里插入图片描述
配置文件说明

Hadoop配置文件分两类默认配置文件和自定义配置文件只有用户想修改某一默认配置值时才需要修改自定义配置文件更改相应属性值。

1默认配置文件
在这里插入图片描述
2自定义配置文件

core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上用户可以根据项目需求重新进行修改配置。

配置集群

1核心配置文件 配置core-site.xml

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml 
<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网页登录使用的静态用户为Tom -->
<property>
        <name>hadoop.http.staticuser.user</name>
<value>Tom</value>
</property>
</configuration>

2HDFS配置文件 配置 hdfs-site.xml

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml 
<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>

3YARN配置文件 配置 yarn-site.xml

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml 
<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>

4MapReduce配置文件 配置 mapred-site.xml

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml 
<configuration>
    <!--指定MapReduce程序运行在Yarn上-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

在集群上分发配置好的 Hadoop配置文件

[Tom@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/

去 103和 104上查看文件分发情况

[Tom@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml 
[Tom@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml 

3.4 群起集群

配置 workers

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers 

在该文件中增加如下内容

hadoop102
hadoop103
hadoop104

同步所有节点配置文件

[Tom@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/

启动集群

1如果集群是第一次启动 需要在 hadoop102节点格式化 NameNode注意格式化 NameNode会产生新的集群 id导致 NameNode和 DataNode的集群 id不一致集群找不到已往数据。 如果集群在运行过程中报错需要重新格式化 NameNode的话 一定要先停止 namenode和 datanode进程 并且要删除所有机器的 data和 logs目录然后再进行格式化。

[Tom@hadoop102 hadoop-3.1.3]$ hdfs namenode -format

2启动 HDFS

[Tom@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh

3在配置了 ResourceManager的节点 hadoop103 启动 YARN

[Tom@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

4Web端查看 HDFS的 NameNode
a浏览器中输入 http://hadoop102:9870
b查看 HDFS上存储的数据信息
在这里插入图片描述
5Web端查看 YARN的 ResourceManager
a浏览器 中输入 http://hadoop103:8088
b查看 YARN上运行的 Job信息
在这里插入图片描述
集群基本测试

1上传文件到集群

[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/ /input
[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz /

2上传文件后查看文件存放在什么位置
查看文件存储路径

[Tom@hadoop102 subdir0]$ pwd
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-572133316-192.168.10.102-1623663396433/current/finalized/subdir0/subdir0
[Tom@hadoop102 subdir0]$

查看 HDFS在磁盘存储文件内容

[Tom@hadoop102 subdir0]$ cat blk_1073741825
yes
ok
thanks
ok
you
yes
yes
[Tom@hadoop102 subdir0]$ 

3拼接

[Tom@hadoop102 subdir0]$ cat blk_1073741826>>tmp.tar.gz
[Tom@hadoop102 subdir0]$ cat blk_1073741827>>tmp.tar.gz
[Tom@hadoop102 subdir0]$ tar -zxvf tmp.tar.gz

4下载

[Tom@hadoop102 software]$ hadoop fs -get /jdk-8u212-linux-x64.tar.gz ./

3.5 配置历史服务器

为了查看程序的历史运行情况需要配置一下历史服务器。具体配置步骤如下

配置 mapred-site.xml

[Tom@hadoop102 hadoop-3.1.3]$ vim etc/hadoop/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>

分发配置

[Tom@hadoop102 hadoop-3.1.3]$ xsync etc/hadoop/mapred-site.xml 

在 hadoop102启动历史服务器

[Tom@hadoop102 hadoop-3.1.3]$ mapred --daemon start historyserver

查看历史服务器是否启动

[Tom@hadoop102 hadoop-3.1.3]$ jps

查看 JobHistory

http://hadoop102:19888/jobhistory

3.6 配置日志的聚集

日志聚集概念应用运行完成以后将程序运行日志信息上传到 HDFS系统上。
在这里插入图片描述
日志聚集功能好处 可以方便的查看到程序运行详情方便开发调试 。
开启日志聚集功能需要重新启动 NodeManager 、ResourceManager和HistoryServer。

开启日志聚集功能具体步骤如下:
1配置 yarn-site.xml

[Tom@hadoop102 hadoop-3.1.3]$ vim etc/hadoop/yarn-site.xml
<!--开启日志聚集功能-->
        <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
        </property>
        <!--设置日志聚集服务器地址-->
        <property>
                <name>yarn.log.server.url</name>
                <value>http://hadoop102:19888/jobhistory/logs</value>
        </property>
        <!--设置日志保留时间为7天-->
        <property>
                <name>yarn.log-aggregation.retain-seconds</name>
                <value>604800</value>
        </property>

2分发配置

[Tom@hadoop103 hadoop-3.1.3]$ xsync etc/hadoop/yarn-site.xml 

3关闭 NodeManager 、 ResourceManager和 HistoryServer

[Tom@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh
[Tom@hadoop102 hadoop-3.1.3]$ mapred --daemon stop historyserver

4启动 NodeManager 、 ResourceManage和 HistoryServer

[Tom@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
[Tom@hadoop102 hadoop-3.1.3]$ mapred --daemon start historyserver

5删除 HDFS上已经存在的输出文件

[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -rm -r /output

6执行 WordCount程序

[Tom@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

7查看日志

历史服务器地址http://hadoop102:19888/jobhistory
历史任务列表
在这里插入图片描述
查看任务运行日志
在这里插入图片描述
运行日志详情
在这里插入图片描述

3.7 集群启动/停止方式总结

各个模块分开启动 /停止(配置 ssh是前提)常用
1整体启动 /停止 HDFS

start dfs.sh/stop dfs.sh

2整体启动 /停止 YARN

start yarn.sh/stop yarn.sh

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

hdfs daemon start/stop namenode/datanode/secondarynamenode

2启动 /停止 YARN

yarn daemon start/stop resourcemanager/nodemanager

3.8 编写 Hadoop集群常用脚本

Hadoop集群启停脚本(包含 HDFS, Yarn, Historyserver) : myhadoop.sh

[Tom@hadoop102 hadoop-3.1.3]$ cd /home/Tom/bin/
[Tom@hadoop102 bin]$ vim myhadoop.sh 
#!/bin/bash

if [ $# -lt 1 ]
then
        echo "No Args Input..."
        exit ;
fi

case $1 in
"start")
        echo " =================== 启动hadoop集群==================="
        echo " ---------------启动hdfs ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
        echo " ---------------启动yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
        echo " ---------------启动historyserver ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭hadoop集群==================="
        echo " ---------------关闭historyserver ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
        echo " ---------------关闭yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
        echo " ---------------关闭hdfs ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
        echo "Input Args Error..."
;;
esac

保存后退出然后赋予脚本执行权限

[Tom@hadoop102 bin]$ chmod +x myhadoop.sh 

查看三台服务器 Java进程脚本 jpsall.sh

[Tom@hadoop102 hadoop-3.1.3]$ cd /home/Tom/bin/
[Tom@hadoop102 bin]$ vim jpsall.sh 
#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
        echo =============== $host ===============
        ssh $host jps
done

保存后退出然后赋予脚本执行权限

[Tom@hadoop102 bin]$ chmod +x jpsall.sh 

分发 /home/Tom/bin目录保证自定义脚本在三台机器上都可以使用

[Tom@hadoop102 bin]$ xsync /home/Tom/bin/

3.9 常用端口号说明

在这里插入图片描述


参考
https://www.bilibili.com/video/BV1Qp4y1n7ENspm_id_from=333.788.b_636f6d6d656e74.7

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Hadoop

“大数据技术之Hadoop(入门)概述、运行环境搭建、运行模式” 的相关文章