云服务器搭建Hadoop分布式
文章目录
- 1.服务器配置
- 2.Java环境
- 3. 安装Hadoop
- 4. 集群配置
- 5. 编写集群的启动脚本
1.服务器配置
服务器 | 主机名 | 配置 |
---|---|---|
115.157.197.82 | s1 | 10核 |
115.157.197.84 | s2 | 10核 |
115.157.197.109 | s3 | 10核 |
115.157.197.31 | s4 | 10核 |
115.157.197.60 | gracal | 10核 |
所有的软件安装在/opt/module下,软件安装包在/opt/softs下
2.Java环境
-
所有的服务器的java统一1.8版本,查看java版本
java --version
-
若存在java环境不统一,或者没有1.8版本的jdk
-
无1.8版本的java
yum install -y java-1.8.0-openjdk*
-
环境不统一
#查看java版本 alternates --config java #选择1.8版本的数字
-
-
相关的JAVA_HOME、Hadoop_HOME环境变量都保存在
/etc/profile.d/my_env.sh
中
3. 安装Hadoop
- 确保Hadoop统一版本:hadoop3.1.3
- 编写文件分发脚本,可以在一台服务器分发到其他服务器:xsync脚本,在
/home/gaochuchu/bin
目录下
4. 集群配置
-
各个组件的分布情况
s1 s2 s3 s4 gracal HDFS NameNode DataNameNode DataNameNode SecondaryNameNode DataNameNode DataNameNode DataNameNode YARN NodeManager ResourceManager NodeManager NodeManager NodeManager NodeManager -
常用端口配置 (分Hadoop2.x和Hadoop3.x的区别)
端口名称 Hadoop2.x Hadoop3.x NameNode内部通信端口 8020/9000 8020/ NameNode HTTP UI 50070 9870 MapReduce查看执行任务端口 8088 8088(容易和框架端口冲突,本文配置的7666) 历史服务器通信端口 19888 19888 -
在客户端机器(笔记本)配置ip和服务器主机名的映射,希望能通过主机名+端口号在浏览器访问各个Web页面
-
问题:通过s2:7666无法访问ResourceManger的web UI,而通过直接的ip:7666又可以访问其webUI
- 遇到这个问题我无法理解为什么会出问题
- 漫长的排错过程:
-
1.检查了服务器之间的ip和主机名的映射,各个服务器主机之间通过主机名可以ping通,说明映射没有问题
-
2.检查客户端mac本机的hosts文件映射未发现问题,并且在客户端的终端也能ping通各个主机名,说明映射没有问题
-
3.且查看各个服务器的防火墙也处于关闭状态
-
4.通过
netstat -nltp|grep 7666
查看端口的监听情况,也是正常监听状态 -
5.在网上搜索很多相关解决方案:关闭防火墙,设置etc/sysconfig/selinux的级别为disable,都没有结果
-
因此,我认为应该在客户端本机出现问题,验证问题过程
6.1 发现在本地主机
telnet s2 7666
可以成功访问,但是curl s2:7666
没有输出页面的任何信息6.2 使用cur -v s2:7666查看相关信息
-
发生地址的重定位,然后使用命令
curl -v http://s2:7666/cluser
成功返回了相关的html信息,说明页面其实是可以访问的
6.3 但是浏览器端还是无法访问:后查询到浏览器可能配置了代理服务器,而’curl’命令未配置代理。代理服务器会烦扰浏览器的访问。
因此我关闭了VPN代理,成功访问到s2:7666页面!!
以后VPN代理一定要慎用!!!排查了这么久发现最后居然是代理问题
-
-
-
-
启动集群测试
-
启动HDFS
[gaochuchu@s1 hadoop-3.1.3]$ sbin/start-dfs.sh
-
启动YARN
[gaochuchu@s1 hadoop-3.1.3]$ sbin/start-yarn.sh
-
问题:
-
解决:
- 这里的hadoop配置的是root用户创建的hadoop环境,本地用户无权限
- 修改环境变量/etc/profile,注释配置的HADOOP_HOME,重新source
-
-
-
运行hadoop自带的wordcount示例程序报错,并且一直卡在Running Job位置,报错信息如下:
java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as [某ip]:9866at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:134)at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:110)at org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1778)at org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1679)at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:716)......Caused by: java.net.NoRouteToHostException: No route to hostat sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716)at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:700)at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:804)at org.apache.hadoop.ipc.Client$Connection.access$3800(Client.java:421)at org.apache.hadoop.ipc.Client.getConnection(Client.java:1606)at org.apache.hadoop.ipc.Client.call(Client.java:1435)... 19 more
- 如何解决这种问题?
-
注意报错信息:No route to host ,说明没有到host的路由,排查思路,确定与对应服务器端口是否联通
-
首先测试某ip自身9866端口是否联通,说明联通
说明s1服务器和…31:9866可能是不连通的 -
经查找相关资料说明是…31服务器的icmp(Internet Control Message Protocol)被禁用导致。
命令查看iptable是否有防火墙设置:iptables -L INPUT --line-numbers
发现:
命令删除这条记录:
iptables -D INPUT 28
-
- 如何解决这种问题?
5. 编写集群的启动脚本
-
因为每次集群启动需要在NameNode节点的HADOOPHOME目录下使用命令启动HDFS
sbin/start-dfs.sh
-
在Yarn节点上通过命令启动Yarn(ResourceManager)
sbin/start-yarn.sh
-
配置了历史服务器,还需要在历史服务器的节点上使用命令启动历史服务器
mapred --daemon start historyserver
-
相应的停止集群也需要通过以下三个命令来停止集群
sbin/stop-dfs.sh sbin/stop-yarn.sh mapred --daemon stop historyserver
-
因此,可以编写相关的脚本启停(HDFS Yarn Historyserver)
-
在
/home/gaochuchu/bin
目录下编写myhadoop.sh脚本启停Hadoop集群#启动Hadoop集群 myhadoop.sh start #停止Hadoop集群 myhadoop.sh stop
-
-
服务器各节点的状态都需要通过在笔不同服务器上通过
jps
命令查看,比较麻烦- 在
/home/gaochuchu/bin
目录下编写jpsall
脚本,可以查看所有服务器上的节点状态
- 在
相关文章:

云服务器搭建Hadoop分布式
文章目录 1.服务器配置2.Java环境3. 安装Hadoop4. 集群配置5. 编写集群的启动脚本 1.服务器配置 服务器主机名配置115.157.197.82s110核115.157.197.84s210核115.157.197.109s310核115.157.197.31s410核115.157.197.60gracal10核 所有的软件安装在/opt/module下,软…...
2678. 老人的数目
给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息,信息用长度为 15 的字符串表示,表示方式如下: 前十个字符是乘客的手机号码。 接下来的一个字符是乘客的性别。 接下来两个字符是乘客的年龄。 最后两个字符是…...

【刷题-牛客】出栈、入栈的顺序匹配 (代码+动态演示)
【刷题-牛客】出栈、入栈的顺序匹配 (代码动态演示) 文章目录 【刷题-牛客】出栈、入栈的顺序匹配 (代码动态演示) 解题思路 动图演示完整代码多组测试 💗题目描述 💗: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个…...

vscode类似GitHub Copilot的插件推荐
由于GitHub Copilot前段时间学生认证的账号掉了很多,某宝激活也是价格翻了几倍,而却,拿来用一天就掉线,可以试试同类免费的插件哦。 例如:TabNine,下载插件后,他会提示你登录,直接登…...

Html -- 文字时钟
Html – 文字时钟 文字时钟,之前在Android上实现了相关效果,闲来无事,弄个网页版的玩玩。。。直接上代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><titl…...
快问快答:关于线上流量卡“归属地随机”几个问题!
在网上办过流量卡的朋友应该都知道,资费虽然便宜,但是归属地却是异地,今天小编就给大家聊一聊关于流量卡归属地的问题。 网上的流量卡都是归属地随机的卡,今天小编以问答的方式给大家普及一下,如果对于归属地有疑问…...

Linux常用命令——clock命令
在线Linux命令查询工具 clock 用于调整 RTC 时间。 补充说明 clock命令用于调整 RTC 时间。 RTC 是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致,或是把系统时间…...

澎湃OS上线:小米告别MIUI,跟小米汽车Say Hi
作者 | Amy 编辑 | 德新 10月17日,雷军发博官宣,「小米将启用全新操作系统,小米澎湃OS(Xiaomi HyperOS)」。 短短几百字的微博,数次提到了「小米汽车」: 小米向人车家全生态迈进,…...
域名不部署SSL证书有什么影响?
SSL证书是保护网站数据传输安全的重要工具,通过加密用户和服务器之间的通信来确保数据的保密性和完整性。然而,如果一个域名没有部署SSL证书,会对网站和用户产生一系列的负面影响。下文中将介绍域名不部署SSL证书的影响,并提供相应…...

Delphi 编程实现拖动排序并输出到文档
介绍:实现拖动排序功能,并将排序后的内容输出到文档中。我们将使用 Delphi 的组件来创建一个界面,其中包括一个 Memo 控件用于输入内容,一个 ListBox 控件用于显示排序后的内容,并且提供按钮来触发排序和输出操作。 代…...
android利用FFmpeg进行视频转换
大致思路:首先安装FFmpeg库到windows电脑上,先测试命令行工具是否可以使用(需要先配置环境),之后再集成到android程序中。 一些命令: 转化为流文件: ffmpeg -i input.mp4 -codec copy -bsf:v …...
Python中不同进制间的转换
Python中不同进制间的转换 一、不同进制在计算机科学、数学和其他领域中具广泛的应用。以下是一些常见的应用:1. 二进制(base-2): 在计算机系统中,数据以二进制形式存储和处理。二进制由0和1组成,是数字电子技术的基础…...

物流监管:智慧仓储数据可视化监控平台
随着市场竞争加剧和市场需求的不断提高,企业亟需更加高效、智能且可靠的仓储物流管理方式,以提升企业的物流效率,减少其输出成本,有效应对市场上的变化和挑战。 图扑自研 HT for Web 产品搭建的 2D 智慧仓储可视化平台,…...

C++对象模型(19)-- 函数语义学:成员函数
1、普通成员函数的调用 1.1 调用方式的转换 为了提高普通成员函数的调用效率,在C中,对普通成员函数的调用,会转换成对全局函数的调用。 假如有下面所示的成员函数: class Test { public:int m_i;int func(int a) {m_i a;retu…...

AI只需26秒,就可以设计一款会走路的机器人
由西北大学、麻省理工学院和佛蒙特大学组成的一支科研团队首次开发出一种可以完全自行设计机器人的 AI 算法。 这一 AI 算法不仅运行速度快,还可在个人计算机上运行,并从头开始设计全新的结构。只需告诉AI“我们想要一个可穿越陆地的机器人”,…...
简单实现spring的set依赖注入
Maven依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…...
STM32 HAL库函数——HAL_TIM_Base_Start_IT()详解
以STM32G030C8T6中的HAL_TIM_Base_Start_IT()函数为例,进行解释; 文章目录 一、函数原型和源代码二、函数用法详解:2.1 参数2.1.1 TIM_HandleTypeDef结构体详解 2.2 使用场景:2.3 使用方法: 三、函数使用示例ÿ…...

C语言之通讯录的实现篇优化版
目录 动态内存管理 通讯录声明 静态版本 动态版本 初始化通讯录 静态版本 动态版本 Add增加通讯录 静态版本 动态版本 Checkcapacity增容 DestroyContact释放动态空间 文件操作 SaveContact保存信息到文件中 初始化通讯录 旧版本 文件版本 LoadContact加载…...

C++17中std::string_view的使用
为了解决std::string初始化(或拷贝)成本高昂的问题,C17引入了std::string_view。std::string_view提供对现有字符串(C风格字符串、std::string、或另一个std::string_view)的只读访问,而无需进行拷贝。当想要有效地处理和操作字符串而不修改它们时&#…...

C#,数值计算——分类与推理Phylo_nj的计算方法与源程序
1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Phylo_nj : Phylagglom { public double[] u; public override void premin(double[,] d, int[] nextp) { i…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...

华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...