云服务器搭建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.hqwc.cn/news/144866.html

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

相关文章

GIL全局解释器锁

文章目录 GIL全局解释器锁一、引入:二、常用的Python解释器种类有哪些?1、CPython2、IPython3、PyPy4、Jython5、IronPython 三、GIL介绍四、GIL与Lock五、GIL与多线程总结 GIL全局解释器锁 一、引入: 首先要明白,GIL并不是Pyth…

工作中几个问题的思考

对于需要并行多公司并行处理的任务,方案是什么? 多线程、并行流、并发库(ExecutorService、Futrue、Callable),分布式计算(1)按照公司ID分片 (2)按照业务类型分片 处理…

【驱动开发】创建设备节点、ioctl函数的使用

一、控制三盏灯的亮灭 头文件: #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #def…

Apache Jmeter测压工具快速入门

Jmeter测压工具快速入门 一、Jmeter介绍二、Jmeter On Mac2.1 下载2.2 安装2.2.1 环境配置2.2.2 初始化设置 2.3 测试2.3.1 创建JDBC Connection Configuration2.3.2 创建线程组2.3.3 创建JDBC Request2.3.4 创建结果监控2.3.5 运行结果 2.4 问题记录2.4.1 VM option UseG1GC异…

Power BI 傻瓜入门 5. 准备数据源

本章内容将介绍: 定义Power BI支持的数据源类型探索如何在Power BI中连接和配置数据源了解选择数据源的最佳做法 现代组织有很多数据。因此,不用说,微软等企业软件供应商已经构建了数据源连接器,以帮助组织将数据导入Power BI等…

PAM从入门到精通(二十)

接前一篇文章:PAM从入门到精通(十九) 本文参考: 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构: 更加形象的形式: 七、PAM-API各函数源码详解 前边的文章讲解了各PAM-API函…

图像信号处理板设计原理图:2-基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板

综合图像处理硬件平台包括图像信号处理板2块,视频处理板1块,主控板1块,电源板1块,VPX背板1块。 一、板卡概述 图像信号处理板包括2片TI 多核DSP处理器-TMS320C6678,1片Xilinx FPGA XC7K420T-1FFG1156,1片X…

Linux进程(四)--进程地址空间(一)

前言:在Linux中,每个正在运行的进程都有自己独立的虚拟地址空间,该虚拟地址空间是逻辑上的抽象,用于在进程间提供隔离和保护。它将进程的内存分配和访问从物理内存中分离出来,为每个进程提供了一个独立的地址空间。这究…

零基础搭建个人网站详细流程

最近两天,为了给自己的工具类APP备案,买了阿里云ECS和域名。虽然很想说离线工具APP不用联网,但是现实就很无语。言归正传,既然买了总不能将它们闲置着,就诞生了建站的想法,至少还能放个用户协议和隐私协议。…

FFmpeg和rtsp服务器搭建视频直播流服务

下面使用的是ubuntu的,window系统可以参考: 通过rtsp-simple-server和ffmpeg实现录屏并发布视频直播_rtsp simple server_病毒宇宇的博客-CSDN博客 一、安装rtsp-simple-server (1)下载rtsp-simple-server 下载地址:R…

二、BurpSuite Intruder暴力破解

一、介绍 解释: Burp Suite Intruder是一款功能强大的网络安全测试工具,它用于执行暴力破解攻击。它是Burp Suite套件的一部分,具有高度可定制的功能,能够自动化和批量化执行各种攻击,如密码破解、参数枚举和身份验证…

时序分解 | Matlab实现CEEMD互补集合经验模态分解时间序列信号分解

时序分解 | Matlab实现CEEMD互补集合经验模态分解时间序列信号分解 目录 时序分解 | Matlab实现CEEMD互补集合经验模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现CEEMD互补集合经验模态分解时间序列信号分解 1.分解效果图 &#xff0…