前言——作为装过几次集群的菜鸟,对于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. 小白入门Web前端开发学习一周小结

    说之前还是先说点其他的,简单介绍下自己为何选择web前端开发: 本人之前在一家国企单位从事质检工作,干了3年,工资和待遇还算不错,但由于其工作的流动性导致知识的脱轨以及精神上的空缺,最后还是打算在25 ...

  2. C#LeetCode刷题-数学

    数学篇 # 题名 刷题 通过率 难度 2 两数相加   29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 ...

  3. Android 内部存储读写介绍

    内部存储读写 内容介绍 Android系统允许应用程序创建仅能够自身访问的私有文件,文件保存在设备的内部存储器上,在Linux系统下的/data/data//files目录中 Android系统不仅支 ...

  4. 01第一个批处理文件 window开机自动加载批处理文件

    1 批处理文件用来加载python程序  批处理的文件名称为:Hello.bat @echo off C: cd C:\Users\\Desktop\python\HelloWorld\HelloWo ...

  5. “既生 ExecutorService, 何生 CompletionService?”

    前言 在 我会手动创建线程,为什么要使用线程池? 中详细的介绍了 ExecutorService,可以将整块任务拆分做简单的并行处理: 在 不会用Java Future,我怀疑你泡茶没我快 中又详细的 ...

  6. Webpack开发指南

    前言 成为一个全栈工程师,前端是必不可少的,这位前端构建工具webpack是一门必修的技术. 在学习webpack之前,先熟悉一下npm工具:https://www.runoob.com/nodejs ...

  7. phpstudy后门利用复现

    一.漏洞位置 程序自带的PHP的php_xmlrpc.dll模块中有隐藏后门,受影响的版本有phpstudy2016(php5.2/5.4).phpstudy2018(php5.2/5.4)等版本. ...

  8. 使用BurpSuite、Hydra和medusa爆破相关的服务

    一.基本定义 1.爆破=爆破工具(BP/hydra)+字典(用户字典/密码字典). 字典:就是一些用户名或者口令(弱口令/使用社工软件的生成)的集合. 2.BurpSuite 渗透测试神器,使用Jav ...

  9. Today At AntDock 2020年8月21日

    前段时间,我在 Mac 上使用 CLion 进行 C++ 编译,但发现 #include<bits/stdc++.h> 居然出了问题,无法使用,Xcode 也不行.我试图查找资料,但一般都 ...

  10. selenium定位方法实例

    selenium定位方法实例 首先打开浏览器输入微博的网址,将网页最大化,等待3秒 from selenium import webdriver import time driver = webdri ...