云服务器搭建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…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

