云服务器搭建Hadoop分布式

文章目录

    • 1.服务器配置
    • 2.Java环境
    • 3. 安装Hadoop
    • 4. 集群配置
    • 5. 编写集群的启动脚本

1.服务器配置

服务器主机名配置
115.157.197.82s110核
115.157.197.84s210核
115.157.197.109s310核
115.157.197.31s410核
115.157.197.60gracal10核

所有的软件安装在/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

image-20231020175203487

3. 安装Hadoop

  • 确保Hadoop统一版本:hadoop3.1.3
  • 编写文件分发脚本,可以在一台服务器分发到其他服务器:xsync脚本,在/home/gaochuchu/bin目录下

4. 集群配置

  • 各个组件的分布情况

    s1s2s3s4gracal
    HDFSNameNode DataNameNodeDataNameNodeSecondaryNameNode DataNameNodeDataNameNodeDataNameNode
    YARNNodeManagerResourceManager NodeManagerNodeManagerNodeManagerNodeManager
  • 常用端口配置 (分Hadoop2.x和Hadoop3.x的区别)

    端口名称Hadoop2.xHadoop3.x
    NameNode内部通信端口8020/90008020/
    NameNode HTTP UI500709870
    MapReduce查看执行任务端口80888088(容易和框架端口冲突,本文配置的7666)
    历史服务器通信端口1988819888
  • 在客户端机器(笔记本)配置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查看相关信息

          image-20231022220729482
          • 发生地址的重定位,然后使用命令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
      
      • 问题:

        image-20231020173832878

      • 解决:

        • 这里的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端口是否联通,说明联通 image-20231020235145661
        说明s1服务器和…31:9866可能是不连通的

      • 经查找相关资料说明是…31服务器的icmp(Internet Control Message Protocol)被禁用导致。
        命令查看iptable是否有防火墙设置:

        iptables -L INPUT --line-numbers
        

        发现:

        image-20231020233954593

        命令删除这条记录:

        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脚本,可以查看所有服务器上的节点状态

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光学知识整理-偏振光

偏振光 目录基础概念基础概念的补充平面偏振光(线偏振光)部分偏振光圆偏振光椭圆偏振光菲涅耳公式相位关系 反射折射所引起的偏振态的改变斯托克斯倒逆关系重要参数 目录 基础概念 光是横波:光是电磁波,其电场分量(电场强度)E、磁场分量(磁…

biquad滤波器的设计

1.介绍 Biquad滤波器是一种常用的数字滤波器结构,它使用二阶差分方程(difference equation)来实现滤波功能。它得名于其包含两个极点(poles)和一个零点(zero)。 双二阶滤波器(biquad)是最常用…

当我让文心一言写个代码来庆祝1024程序员节,它写的代码是……

先让它写个自我介绍吧~ 大家好,我是一个人工智能语言模型,我的中文名是文心一言,英文名是ERNIE Bot。我可以协助您完成范围广泛的任务并提供有关各种主题的信息,比如回答问题,提供定义和解释及建议。如果您有任何问题…

改进YOLOv5 | 头部解耦 | 将YOLOX解耦头添加到YOLOv5 | 涨点杀器

改进YOLOv5 | 头部解耦 | 将YOLOX解耦头添加到YOLOv5 论文地址:https://arxiv.org/abs/2107.08430 文章目录 改进YOLOv5 | 头部解耦 | 将YOLOX解耦头添加到YOLOv51. 解耦头原理2. 解耦头对收敛速度的影响3. 解耦头对精度的影响4. 代码改进方式第一步第二步第三步第四步第五步本…

Kotlin笔记(六):泛型的高级特性

前面学习了Kotlin中的泛型的基本用法,跟Java中的泛型大致相同,Kotlin在泛型方面还提供了不少特有的功能,掌握了这些功能,你将可以更好玩转Kotlin,同时还能实现一些不可思议的语法特性,那么我们自然不能错过这部分内容了…

Wordpress - Xydown独立下载页面插件

Wordpress - Xydown独立下载页面插件; 1.使用ftp将demo.php和download.php上传到网站根目录(两个文件中设计网站信息的代码可根据实际情况修改为自己的信息) 使用ftp将demo.php和download.php上传到网站根目录(两个文件中设计…

[ Windows ] ping IP + Port 测试 ip 和 端口是否通畅

开发过程中经常会黑窗口中手动测试一下计划请求的目标ip和端口是否通畅,测试方式如下: 一、单纯测试ip是否能够 ping 通,这个比较熟悉了,运行 cmd 打开黑窗口 输入如下指令,能够如下提示信息,表示端口是通…

【AIGC核心技术剖析】用于高效 3D 内容创建生成(从单视图图像生成高质量的纹理网格)

3D 内容创建的最新进展主要利用通过分数蒸馏抽样 (SDS) 生成的基于优化的 3D 生成。尽管已经显示出有希望的结果,但这些方法通常存在每个样本优化缓慢的问题,限制了它们的实际应用。在本文中,我们提出了DreamGaussian&…

Node.js、Vue的安装与使用(Linux OS)

Vue的安装与使用(Linux OS) Node.js的安装Vue的安装Vue的使用 操作系统:Ubuntu 20.04 LTS Node.js的安装 安装Node.js Node.js官方下载地址 1.选择合适的系统架构(可通过uname -m查看)版本安装 2.下载文件为tar.xz格…

微信小程序之个人中心授权登录

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 ,越幸运。 1.了解微信授权登录 微信登录官网: 小程序登录https://developers.weixin.qq.com/miniprogram/d…

SystemVerilog Assertions应用指南 Chapter 1.17使用参数的SVA检验器

1.17使用参数的SVA检验器 SVA允许像 Verilog那样在检验器中使用参数( parameter),这为创建可重用的属性提供了很大的灵活性。比如,两个信号间的延迟信息可以在检验器中用参数表示,那么这种检验器就可以在设计只有时序关系不同的情况中重用。例子1.2显示了个带延迟默…

人大金仓与哪吒科技达成战略合作,加快推动智慧港口建设

近日,人大金仓与哪吒港航智慧科技(上海)有限公司(以下简称“哪吒科技”)达成战略合作。双方旨在共享优势资源,联合为港口企业转型升级提供完备的技术支撑与行业解决方案。人大金仓总裁杜胜、哪吒科技总经理…

基于FPGA的图像拉普拉斯变换实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a vivado2019.2 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 202…

cdm解决‘ping‘ 或者nslookup不是内部或外部命令,也不是可运行的程序或批处理文件的问题

当我们在执行cmd时,会出现不是内部或外部命令,也不是可运行的程序的提示。 搜索环境变量 点开高级 >> 环境变量 打开Path,看是否在Path变量值中存在以下项目: %SystemRoot%/system32; %SystemRoot%; %SystemRoot%/Syste…

Opencv之RANSAC算法用于直线拟合及特征点集匹配详解

Opencv之RANSAC算法用于直线拟合及特征点集匹配详解 讲述Ransac拟合与最小二乘在曲线拟合上的优缺点 讲述在进行特征点匹配时,最近邻匹配与Ransac匹配的不同之处 另外,Ransac也被用于椭圆拟合、变换矩阵求解等 1. 直线拟合 1.1 原理 RANSAC(RANdom …

Mysql中的RR 隔离级别,到底有没有解决幻读问题

Mysql 中的 RR 事务隔离级别,在特定的情况下会出现幻读的问题。所谓的幻读,表示在同一个事务中的两次相同条件的查询得到的数据条数不一样。 在 RR 级别下,什么情况下会出现幻读 这样一种情况,在事务 1 里面通过 update 语句触发当…

【CGSSA-BP预测】基于混合混沌-高斯变异-麻雀算法优化BP神经网络回归预测研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

手机拍照转机器人末端坐标(九点标定法)

1.打印标定纸,随机九个点 2.让UR机器人末端分别走到P1-P9九个点 在图示位置读取九个点的X,Y坐标 3.手机拍照(固定点) 测试可以随机拍一张,实用的话需要固定手机的拍照位置,得到的图片如下: 4.…

使用AI编写测试用例——详细教程

随着今年chatGPT的大热,每个行业都试图从这项新技术当中获得一些收益我之前也写过一篇测试领域在AI技术中的探索:软件测试中的AI——运用AI编写测试用例现阶段AI还不能完全替代人工测试用例编写,但是如果把AI当做一个提高效率的工具&#xff…