Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(下)

news2024/11/27 8:21:48

Hadoop运行模式(下)

  • 前言
  • 2.6 配置历史服务器
    • 1)配置mapred-site.xml
    • 2)分发配置
    • 3)在hadoop102启动历史服务器
    • 4)查看历史服务器是否启动
    • 5)查看JobHistory
  • 2.7 配置日志的聚集
    • 1)配置yarn-site.xml
    • 2)分发配置
    • 3)关闭NodeManager 、ResourceManager和HistoryServer
    • 4)启动NodeManager 、ResourceManage和HistoryServer
    • 5)删除HDFS上已经存在的输出文件
    • 6)执行WordCount程序
    • 7)查看日志
      • (1)历史服务器地址
      • (2)历史任务列表
      • (3)查看任务运行日志
      • (4)运行日志详情
  • 2.8 集群启动/停止方式总结
    • 1)各个模块分开启动/停止(配置ssh是前提)常用
      • (1)整体启动/停止HDFS
      • (2)整体启动/停止YARN
    • 2)各个服务组件逐一启动/停止
      • (1)分别启动/停止HDFS组件
      • (2)启动/停止YARN
  • 2.9 编写Hadoop集群常用脚本
    • 1)Hadoop集群启停脚本(包含HDFS,Yarn,Historyserver):myhadoop.sh
    • 2)查看三台服务器Java进程脚本:jpsall
    • 3)分发/home/atguigu/bin目录,保证自定义脚本在三台机器上都可以使用
  • 2.10 常用端口号说明
  • 2.11 集群时间同步
    • 1)需求
    • 2)时间服务器配置(必须root用户)
      • (1)查看所有节点ntpd服务状态和开机自启动状态
      • (2)修改hadoop102的ntp.conf 配置文件
      • (3)修改hadoop102的/etc/sysconfig/ntpd 文件
      • (4)重新启动ntpd服务
      • (5)设置ntpd服务开机启动
    • 3)其他机器配置(必须root用户)
      • (1)关闭==所有节点==上ntp服务和自启动
      • (2)在其他机器配置1分钟与时间服务器同步一次
      • (3)修改任意机器时间
      • (4)1分钟后查看机器是否与时间服务器同步
  • 常见错误及解决方案
    • 1)防火墙没关闭、或者没有启动YARN
    • 2)主机名称配置错误
    • 3)IP 地址配置错误
    • 4)ssh 没有配置好
    • 5)root 用户和atguigu 两个用户启动集群不统一
    • 6)配置文件修改不细心
    • 7)不识别主机名称
    • 8)DataNode 和NameNode 进程同时只能工作一个。
    • 9)执行命令不生效,粘贴Word中命令时,遇到-和长–没区分开。导致命令失效
    • 10)jps 发现进程已经没有,但是重新启动集群,提示进程已经开启。
    • 11)jps 不生效
    • 12)8088 端口连接不上
  • 题外话

前言

接着上篇,我们继续学习Hadoop运行模式。

2.6 配置历史服务器

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

1)配置mapred-site.xml

[atguigu@hadoop102 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> 

2)分发配置

[atguigu@hadoop102 
hadoop]$ 
$HADOOP_HOME/etc/hadoop/mapred-site.xml 
xsync 

3)在hadoop102启动历史服务器

[atguigu@hadoop102 hadoop]$ mapred --daemon start historyserver 

4)查看历史服务器是否启动

[atguigu@hadoop102 hadoop]$ jps

5)查看JobHistory

http://hadoop102:19888/jobhistory 

2.7 配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。

在这里插入图片描述
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
==注意:开启日志聚集功能,需要重新启动 NodeManager 、ResourceManager 和
HistoryServer。 ==
开启日志聚集功能具体步骤如下:

1)配置yarn-site.xml

[atguigu@hadoop102 hadoop]$ vim 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)分发配置

[atguigu@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/yarn
site.xml 

3)关闭NodeManager 、ResourceManager和HistoryServer

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

4)启动NodeManager 、ResourceManage和HistoryServer

[atguigu@hadoop103 ~]$ start-yarn.sh 
[atguigu@hadoop102 ~]$ mapred --daemon start historyserver 

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

[atguigu@hadoop102 ~]$ hadoop fs -rm -r /output 

6)执行WordCount程序

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

7)查看日志

(1)历史服务器地址

http://hadoop102:19888/jobhistory

(2)历史任务列表

在这里插入图片描述

(3)查看任务运行日志

在这里插入图片描述

(4)运行日志详情

在这里插入图片描述

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

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

(1)整体启动/停止HDFS

start-dfs.sh/stop-dfs.sh 

(2)整体启动/停止YARN

start-yarn.sh/stop-yarn.sh 

2)各个服务组件逐一启动/停止

(1)分别启动/停止HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode 

(2)启动/停止YARN

yarn --daemon start/stop  resourcemanager/nodemanager 

2.9 编写Hadoop集群常用脚本

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

[atguigu@hadoop102 ~]$ cd /home/atguigu/bin 
[atguigu@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 

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

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

2)查看三台服务器Java进程脚本:jpsall

[atguigu@hadoop102 ~]$ cd /home/atguigu/bin 
[atguigu@hadoop102 bin]$ vim jpsall 

➢ 输入如下内容

#!/bin/bash 
 
for host in hadoop102 hadoop103 hadoop104 
do 
        echo =============== $host =============== 
        ssh $host jps  
done 

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

[atguigu@hadoop102 bin]$ chmod +x jpsall 

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

[atguigu@hadoop102 ~]$ xsync /home/atguigu/bin/ 

2.10 常用端口号说明

端口名称Hadoop2.xHadoop3.x
NameNode内部通信端口8020 / 90008020 / 9000/9820
NameNode HTTP UI500709870
MapReduce查看执行任务端口80888088
历史服务器通信端口1988819888

2.11 集群时间同步

如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;
如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。

1)需求

找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,生产环境根据任务对时间的准确程度要求周期同步。测试环境为了尽快看到效果,采用1分钟同步一次。

在这里插入图片描述

2)时间服务器配置(必须root用户)

(1)查看所有节点ntpd服务状态和开机自启动状态

[atguigu@hadoop102 ~]$ sudo systemctl status ntpd 
[atguigu@hadoop102 ~]$ sudo systemctl start ntpd 
[atguigu@hadoop102 ~]$ sudo systemctl is-enabled ntpd 

(2)修改hadoop102的ntp.conf 配置文件

[atguigu@hadoop102 ~]$ sudo vim /etc/ntp.conf 

修改内容如下
(a)修改1(授权192.168.10.0-192.168.10.255 网段上的所有机器可以从这台机器上查
询和同步时间)

#restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap 

restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
(b)修改2(集群在局域网中,不使用其他互联网上的时间)

server 0.centos.pool.ntp.org iburst 
server 1.centos.pool.ntp.org iburst 
server 2.centos.pool.ntp.org iburst 
server 3.centos.pool.ntp.org iburst 

#server 0.centos.pool.ntp.org iburst 
#server 1.centos.pool.ntp.org iburst 
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

(c)添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中
的其他节点提供时间同步)

server 127.127.1.0
fudge 127.127.1.0 stratum 10

(3)修改hadoop102的/etc/sysconfig/ntpd 文件

[atguigu@hadoop102 ~]$ sudo vim /etc/sysconfig/ntpd 

增加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes 

(4)重新启动ntpd服务

[atguigu@hadoop102 ~]$ sudo systemctl start ntpd 

(5)设置ntpd服务开机启动

[atguigu@hadoop102 ~]$ sudo systemctl enable ntpd 

3)其他机器配置(必须root用户)

(1)关闭所有节点上ntp服务和自启动

[atguigu@hadoop103 ~]$ sudo systemctl stop ntpd 
[atguigu@hadoop103 ~]$ sudo systemctl disable ntpd 
[atguigu@hadoop104 ~]$ sudo systemctl stop ntpd 
[atguigu@hadoop104 ~]$ sudo systemctl disable ntpd 

(2)在其他机器配置1分钟与时间服务器同步一次

[atguigu@hadoop103 ~]$ sudo crontab -e 

编写定时任务如下:

*/1 * * * * /usr/sbin/ntpdate hadoop102 

(3)修改任意机器时间

[atguigu@hadoop103 ~]$ sudo date -s "2021-9-11 11:11:11" 

(4)1分钟后查看机器是否与时间服务器同步

[atguigu@hadoop103 ~]$ sudo date

常见错误及解决方案

1)防火墙没关闭、或者没有启动YARN

INFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:8032

2)主机名称配置错误

3)IP 地址配置错误

4)ssh 没有配置好

5)root 用户和atguigu 两个用户启动集群不统一

6)配置文件修改不细心

7)不识别主机名称

java.net.UnknownHostException: hadoop102: hadoop102 
at 
java.net.InetAddress.getLocalHost(InetAddress.java:1475) 
at 
org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(Job
 Submitter.java:146) 
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290) 
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287) 
at 
java.security.AccessController.doPrivileged(Native 
Method) 
at javax.security.auth.Subject.doAs(Subject.java:415)

解决办法:
(1)在/etc/hosts 文件中添加192.168.10.102 hadoop102
(2)主机名称不要起hadoop hadoop000等特殊名称

8)DataNode 和NameNode 进程同时只能工作一个。

在这里插入图片描述

9)执行命令不生效,粘贴Word中命令时,遇到-和长–没区分开。导致命令失效

解决办法:尽量不要粘贴Word中代码。

10)jps 发现进程已经没有,但是重新启动集群,提示进程已经开启。

原因是在 Linux 的根目录下/tmp 目录中存在启动的进程临时文件,将集群相关进程删
除掉,再重新启动集群。

11)jps 不生效

原因:全局变量hadoop java没有生效。解决办法:需要source /etc/profile文件。

12)8088 端口连接不上

[atguigu@hadoop102 桌面]$ cat /etc/hosts
注释掉如下代码

#127.0.0.1   
#::1         
localhost localhost.localdomain localhost4 localhost4.localdomain4 
hadoop102

题外话

我整理了一些资源,如果你也对Python和大数据感兴趣,关注下方公众号免费提取资料。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/818970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ChatGPT辅助学Rust | 基础系列 | Rust初相识】Rust简介与环境配置

教程目录 前言一&#xff0c;Rust简介1&#xff0c;Rust的历史2&#xff0c;Rust的特性3&#xff0c;为什么选择Rust4&#xff0c;Rust可以做什么 二&#xff0c; Rust环境配置1&#xff0c;windows11安装2&#xff0c;Linux安装 三&#xff0c;安装IDE 前言 Rust是一种系统编…

智慧水务配电能效系统的开发与功能介绍

随着城市化进程的步伐大大变快&#xff0c;城市建设与科学信息技术的融合程度也在不断提升&#xff0c;尤其是大数据信息技术的迅猛发展&#xff0c;为民生工程由信息化向智能化转型提供了条件。以城市的水务系统为例&#xff0c;依托大数据信息技术构建智慧水务系统是智慧城市…

从 DejaVu 改为 Noto,Ubuntu 23.10 发行版计划调整字体包

近日消息&#xff0c;代号为“Mantic Minotaur”的 Ubuntu 23.10 发行版计划调整字体包&#xff0c;从 DejaVu 修改为 Noto。 近日消息&#xff0c;代号为“Mantic Minotaur”的 Ubuntu 23.10 发行版计划调整字体包&#xff0c;从 DejaVu 修改为 Noto。 Ubuntu 开发团队表示为…

数字人第一剑,先斩“尹天仇”

第一波被数字人抢走饭碗的人类&#xff0c;不是带货主播&#xff0c;也不是虚拟偶像&#xff0c;而是好莱坞的群演们。 过去几个月&#xff0c;数千名好莱坞演员罢工&#xff0c;并出现在Netflix奈飞、华纳兄弟、Discovery、亚马逊、派拉蒙和NBC环球的办公大楼示威。 此次好莱坞…

哈工大计算机网络课程网络安全基本原理详解之:密钥分发中心与公钥认证中心

哈工大计算机网络课程网络安全基本原理详解之&#xff1a;密钥分发中心与公钥认证中心 在介绍密钥分发中心的概念前&#xff0c;先来回顾一下之前介绍的身份认证协议AP4.0&#xff1a;利用随机数R来避免“回放攻击”&#xff0c;并借助于对称加密算法来保证R的加密传输和解密&…

用python编写一个小程序,如何用python编写软件

大家好&#xff0c;给大家分享一下用python编写一个小程序&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; 1、python可以写手机应用程序吗&#xff1f; 我想有人曲解意思了&#xff0c;人家说用python开发渣蔽一个手机app&#xff0c;不是…

“ARTS挑战:探索技术,分享思考“

文章目录 前言一、学习的内容二、遇到的困难及解决办法三、学习打卡成果展示四、学习技巧的总结五、未来学习打卡计划后记 关于 ARTS 的释义 ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Sha…

大数据面试实际场景类问题怎么准备,实在遭不住了!

300万字&#xff01;全网最全大数据学习面试社区等你来&#xff01; 前几天我发了一个面试总结的文章&#xff0c;实际场景类问题在大数据领域面试的占比越来越多。大家面试开始「务实」&#xff0c;在实际场景问题中&#xff0c;顺便增加对框架原理性内容的考察&#xff0c;这…

Docker中gitlab以及gitlab-runner的安装与使用

1、本文主要讲述如何使用Docker安装gitlab以及gitlab-runner&#xff0c;并且会讲述gitlab-runner如何使用 2、gitlab部分不需要修改过多的配置即可使用&#xff0c;本文未讲述https配置&#xff0c;如有需求&#xff0c;可自行百度 3、Docker如何安装可以自行百度 一、Docker安…

react中的高阶组件理解与使用

一、什么是高阶组件&#xff1f; 其实就是一个函数&#xff0c;参数是一个组件&#xff0c;经过这个函数的处理返回一个功能增加的组件。 二、代码中如何使用 1&#xff0c;高级组件headerHoc 2&#xff0c;在普通组件header中引入高阶组件并导出高阶组件&#xff0c;参数是普…

linux备份与还原系统(类似window上ghost备份还原)

一、摘要 在linux上进行了几年的开发工作 &#xff08;qt ros&#xff09; 突然发现&#xff0c;现在有公司硬件、笔记本台式机一台占一个系统&#xff0c;导致硬件太浪费&#xff0c;又不能用虚拟机&#xff08;有时候要链接硬件必须物理机&#xff09;怎么办&#xff1f; 二…

Simple Set Problem

题意&#xff1a; 给你k个集合&#xff0c;每个集合里有ci个数&#xff0c;在每个集合里各挑一个数&#xff0c;求挑的k个数里的最大值减去最小值的值最小 思路&#xff1a; 可以将题意转换为&#xff0c;挑的所有数的集合一共有n种&#xff0c;求挑的数的最大值最小值的差最…

idealC-2020.1.4免费下载(附安装教程)

下载地址 [软件名称]: IntelliJ IDEA 2020 [软件大小]: 560MB [安装环境]: Windows [下载链接]: 链接: https://pan.baidu.com/s/1yGOWqfRVE6cPsAe0qHpnbg https://pan.baidu.com/s/1yGOWqfRVE6cPsAe0qHpnbg 提取码: zt88 软件介绍 idea 2020.是由捷克IntelliJ公司而…

快速响应,上门维修小程序让您享受无忧生活

随着科技的不断发展和智能手机的普及&#xff0c;上门维修小程序成为了现代人生活中越来越重要的一部分。上门维修小程序通过将维修服务与互联网相结合&#xff0c;为用户提供了更加便捷、高效的维修服务体验。下面将介绍上门维修小程序开发的优势。   提供便捷的预约方式&am…

NFTScan | 07.24~07.30 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。周期&#xff1a;2023.07.24~ 2023.07.30 NFT Hot News 01/数据&#xff1a;Azuki 地板价跌破 5 枚 ETH&#xff0c;过去 7 日跌幅逾 20% 7月24日&#xff0c; Blur数据显示&#xff0c;Azuki地板价已跌破…

开关降压型DC-DC芯片方案:30V-80V转24V/12V/5V芯片

摘要&#xff1a;本文介绍了一种开关降压型DC-DC芯片方案&#xff0c;可将输入电压范围在9V至100V之间的信号转换为24V、12V和5V输出。该芯片采用了外挂MOS管&#xff0c;能够提供10A峰值电流输出&#xff0c;并且具备低待机功耗、内置过温保护和输出短路保护等功能。此外&…

【图像分类】CNN+Transformer结合系列.3

介绍两篇图像分类的论文&#xff1a;ResMLP&#xff08;arXiv2305&#xff09;&#xff0c;MetaFormer&#xff08;CVPR2022&#xff09;&#xff0c;两者都与Transformer有关系&#xff0c;前者基于transformer结构的特点设计ResMLP&#xff0c;后者认为宏观架构才是Transform…

【教程】Tkinter实现Python软件自动更新与提醒

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 文件下载&#xff1a;https://download.csdn.net/download/sxf1061700625/88134425 示例演示&#xff1a; 参考代码&#xff1a; import os import _thread import shutil import subprocess import sys import …

RFID出入库管理系统

RFID(射频识别)技术作为一种先进的自动识别技术&#xff0c;已经广泛应用于各个领域&#xff0c;仓库管理系统就是其中之一。RFID仓储管理系统利用RFID技术实现实时数据传输和信息识别&#xff0c;为企业提供了高效、准确的库存管理解决方案。 RFID出入库管理系统基于RFID技术&…

基础概念:图片的卷积可视化结果

1. 前言 之前介绍过卷积的基本概念&#xff0c;具体的可以参考图片的卷积和池化操作&#xff0c;这里给出可视化的操作&#xff0c;因为卷积在初学的时候比较抽象&#xff0c;现在有时间就写写看&#xff0c;希望可以给初学的同学一点启发吧(这里前提是学过pytorch和相关的图像…