前言——作为装过几次集群的菜鸟,对于hadoop集群的安装还是比较有心得的:只要配置文件够好,集群配置就非常容易,否则也容易出现莫名其妙的问题!总结了一份3台机器搭建较完好的集群的一份配置文件

在我将集群配置文件,防火墙(自以为)、集群时间、Java环境变量等等都搞定的情况下,竟然还是出了问题。

现象是访问不了yarn的web端口。

因为我在机器上搭过好几次集群,可能存在版本不一样的情况,所以我先用bin/hadoop version查看了hadoop各个节点对应的hadoop版本,发现一样(在其它场景中,我犯过这样的错误);

jps查看Java进程是首要的测试手段,但是没发现明显异常;

然后经典操作:看日志,英语能对大佬来说可能是锦上添花,但对菜鸟来说就是落井下石,不过在logs目录下隐隐发现一个问题,yarn所在机器的logs日志没有其它2个几个节点的日志,再看里面文件里面内容并没有明显的报错信息。

然后看日志、调网络搞了一晚上最终发现了一个十分明显的问题,在非yarn机器上的机器日志里面显示一直尝试与yarn进程进行连接却一直失败,由此使用网络工具确定了是yarn所在节点自身的问题,使用curl -I查看虚拟机互相访问的情况(没有装浏览器),也是发现yarn主机能自己访问8088端口,但集群里面其它节点却访问不了改节点的8088端口,netstat -ntpl查看网络端口情况发现一切正常。耗了一段时间后,错误信息已经比较明显是yarn主机的网络问题。

是不是防火墙问题?但是在最开始就已经使用systemctl disable firewall关了linux(centos7)的防火墙,并且用systemctl status firewall查看了几遍的防火墙并且一直都显示没有这个模块。

灵机一动,根据最近学习的linux知识,linux的服务守护进程daemon基本都是以d结尾的,然而这里使用却是firewall,少了个d。但是就醍醐一般的使用systemctl status firewalld查看yarn主机的防火墙状态,结果果然是active,一抹绿色优点扎眼。

systemctl disable firewalld关闭防火墙自启动,systemctl stop firewalld关闭防火墙,然后删除集群的data和logs信息,重新bin/hadoop namenode -format格式化namenode,重启集群,再jps看集群状态,windows浏览器访问yarn的8088端口,终于一切正常了。

1这次出错集群的访问状态很多地方都有较明显的问题,但是因为没经验所以get不到重点,所以空耗了许久。防火墙问题主要还是linux操作不规范和不熟悉,结果导致了一直以为自己执行正确的代码关闭了防火墙,最开始手熟使用firewalld,执行正确,结果反而让自己觉得firewall(错觉)也是正确的,机器尚且可能硬件出错,更何况人呢。执行复杂操作时(集群统一执行某操作)自动化脚本时第一选择,当然脚本因为权限、环境变量等问题也有可能发生问题,不过也还有测试自动化脚本。

本次错误应该是在三台机器关闭防火墙,第一次成功了,但第二、三次却失败了,但因为对linux操作不熟悉,以为是成功了。这种疲劳错误,应该多使用脚本避免人的疲劳误差。

总结:以上记载个人犯错过程,以下对hadoop及linux做一些总结:

1、hadoop集群出错,首要检测手段jps查看Java的进程,注意是否有异常,如果有应该多加关注。缺点:对于某些问题Java进程不会及时体现出来,所以这个操作应该要经常使用,在大规模集群里面肯定要使用自动化脚本进行相应管理,在大数据方面有进阶的zookeeper框架可以管理整个集群。

2、根据jps结果、bug的具体现象分析,bug是哪个类型的,如网络问题、配置问题、硬件问题(HA解决)等。

3、配置问题:查看集群的所有配置是否一致,hadoop框架本身的版本、hadoop及linux网络的配置文件、集群时间、namenode与datanode生成的版本信息是否一致、data与logs文件是否有隐藏的一些问题等。

4、网络问题:

  4.1、windows主机网络是否与虚拟机网络相连,可以使用ping命令,这个比较基础,但也不得不查。

  4.2、对于服务器(没有浏览器)web端口进行访问,可以使用curl -I测试8088端口;ping命令不能测试端口,可以使用端口对应的工具(比如ssh登陆对应22号),或者使用专业的端口扫描工具进行测试。

  4.3、关闭防火墙,centos7 systemctl disable firewalld关闭防火墙,centos7使用systemctl工具进行管理,其它linux版本应该使用对应的管理工具关闭防火墙。

  4.4、使用netstat -nptl查看linux系统的端口信息,ip:端口,监听ip上面的端口;0.0.0.0ipv4,::::ipv6,监听本机所有ip的端口;需要开放的端口注意不要监听127.0.0.1,监听了loopback本地环回地址,则只能本地访问。

5、硬件问题:集群HA可以用secondarynamenode复制元数据实现大部分(会丢失数据);主备模式则可以根据安全需求增加集群的安全性,代价是数据冗余大。

hadoop不能互相访问和linux防火墙守护进程的更多相关文章

  1. 深入理解Linux操作系统守护进程的意义

    Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的.守护进程 ...

  2. 【Linux】- 守护进程的启动方法

    转自:Linux 守护进程的启动方法 Linux中"守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问 ...

  3. python实现Linux启动守护进程

    python实现Linux启动守护进程 DaemonClass.py代码: #/usr/bin/env python # -*- coding: utf-8 -*- import sys import ...

  4. linux 创建守护进程的相关知识

    linux 创建守护进程的相关知识 http://www.114390.com/article/46410.htm linux 创建守护进程的相关知识,这篇文章主要介绍了linux 创建守护进程的相关 ...

  5. linux C守护进程编写

    linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件.守护进程是一种很有用的进程. Linux的大多数服 ...

  6. asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)

    原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二) 续上一篇文章:asp.net core2.0 部署centos7/linux系统 -- ...

  7. linux日志守护进程 syslog

    几乎所有的网络设备都可以通过syslog协议,将日志信息以UDP的形式传送给远端服务器,远端接收日志服务器必须通过syslogd监听UDP端口514,并根据 syslog.conf 配置文件张的配置处 ...

  8. hadoop地址配置、内存配置、守护进程设置、环境设置

    1.1  hadoop配置 hadoop配置文件在安装包的etc/hadoop目录下,但是为了方便升级,配置不被覆盖一般放在其他地方,并用环境变量HADOOP_CONF_DIR指定目录. 1.1.1  ...

  9. Linux Supervisor 守护进程基本配置

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...

随机推荐

  1. Java自学-图形界面 容器

    Swing 的容器 JFrame和JDialog java的图形界面中,容器是用来存放 按钮,输入框等组件的. 窗体型容器有两个,一个是JFrame,一个是JDialog 步骤 1 : JFrame ...

  2. Qt之先用了再说系列-定时器的用法

    Qt 定时器是一个比好用的东西,在此就地简单记录一下使用的方式: 1.首先包含头文件 #include <QTimer> 2.具体用法有几种,我就写其中2种吧 1>执行一次 这种方式 ...

  3. C#LeetCode刷题之#933-最近的请求次数(Number of Recent Calls)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4134 访问. 写一个 RecentCounter 类来计算最近的 ...

  4. C#LeetCode刷题之#641-设计循环双端队列(Design Circular Deque)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4132 访问. 设计实现双端队列. 你的实现需要支持以下操作: M ...

  5. 遗传算法框架-基于java jenetics库实现

    本篇并非介绍如何从0开始开发遗传算法框架,反而推荐各位使用已有的GA库jenetics来做遗传算法. GA算法的逻辑还是贴下: 好了,下面介绍的是基于jenetics开发的更贴近业务侧的框架,以及使用 ...

  6. 团队作业4:第七篇Scrum冲刺博客(歪瑞古德小队)

    目录 一.Daily Scrum Meeting 1.1 会议照片 1.2 项目进展 二.项目燃尽图 三.签入记录 3.1 代码/文档签入记录 3.2 Code Review 记录 3.3 issue ...

  7. 【转】Camera 简介

    一.摄像头(CAMERA)又称为电脑相机.电脑眼等,它作为一种视频输入设备,在过去被广泛的运用于视频会议.远程医疗及实时监控等方面. 近年以来,随着互联网技术的发展,网络速度的不断提高,再加上感光成像 ...

  8. 通过索引优化sql

    sql语句的优化最重要的一点就是要合理使用索引,下面介绍一下使用索引的一些原则: 1.最左前缀匹配原则.mysql会一直向右匹配直到遇到范围查询(>.<.between.like)就停止匹 ...

  9. 区块链入门到实战(19)之以太坊(Ethereum) – 以太币

    以太币的作用:防范以太坊网络被滥用和激励矿工. 与比特币网络有比特币类似,以太坊(Ethereum)也有自己的虚拟币 — 以太币. 以太币的主要作用有2个: 应用程序执行任何操作都需要支付以太币,防范 ...

  10. “DNAT+云链接+CDN”加速方案,助力出海企业落地生长

    摘要:“DNAT+云链接+CDN”加速方案,真正释放技术红利,真诚助力企业出海. 随着国内互联网行业的人口红利逐渐消失,本土互联网市场竞争不断加剧,加之国家多项“走出去”政策的推动,越来越多的中国互联 ...