hadoop不能互相访问和linux防火墙守护进程
前言——作为装过几次集群的菜鸟,对于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防火墙守护进程的更多相关文章
- 深入理解Linux操作系统守护进程的意义
Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的.守护进程 ...
- 【Linux】- 守护进程的启动方法
转自:Linux 守护进程的启动方法 Linux中"守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问 ...
- python实现Linux启动守护进程
python实现Linux启动守护进程 DaemonClass.py代码: #/usr/bin/env python # -*- coding: utf-8 -*- import sys import ...
- linux 创建守护进程的相关知识
linux 创建守护进程的相关知识 http://www.114390.com/article/46410.htm linux 创建守护进程的相关知识,这篇文章主要介绍了linux 创建守护进程的相关 ...
- linux C守护进程编写
linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件.守护进程是一种很有用的进程. Linux的大多数服 ...
- asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)
原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二) 续上一篇文章:asp.net core2.0 部署centos7/linux系统 -- ...
- linux日志守护进程 syslog
几乎所有的网络设备都可以通过syslog协议,将日志信息以UDP的形式传送给远端服务器,远端接收日志服务器必须通过syslogd监听UDP端口514,并根据 syslog.conf 配置文件张的配置处 ...
- hadoop地址配置、内存配置、守护进程设置、环境设置
1.1 hadoop配置 hadoop配置文件在安装包的etc/hadoop目录下,但是为了方便升级,配置不被覆盖一般放在其他地方,并用环境变量HADOOP_CONF_DIR指定目录. 1.1.1 ...
- Linux Supervisor 守护进程基本配置
supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...
随机推荐
- SPP、ASPP、RFB、CBAM
SPP:ASPP:将pooling 改为了 空洞卷积RFB:不同大小的卷积核和空洞卷积进行组合,认为大的卷积应该有更大的感受野. CBAM:空间和通道的注意力机制 SPP: Spatial Pyram ...
- 【模式识别与机器学习】——最大似然估计 (MLE) 最大后验概率(MAP)和最小二乘法
1) 极/最大似然估计 MLE 给定一堆数据,假如我们知道它是从某一种分布中随机取出来的,可是我们并不知道这个分布具体的参,即“模型已定,参数未知”.例如,我们知道这个分布是正态分布,但是不知道均值和 ...
- python3.x与2.x中print输出不换行
python3.x: print(i,end=' ') 循环输出: ... ------------------------- print(i,end='!') 循环输出:!!!... end=单引号 ...
- day27:异常&反射
目录 认识异常处理 1.程序错误的种类 2.异常的分类 3.AssertionError(断言assert语句失败) 异常处理的基本语法 1.异常处理的基本语法 2.带有分支的异常处理 3.处理 ...
- The Definitive Guide to Ruby's C API The Ruby C API Running Ruby in C Running C in Ruby
最近在研究如何在C/C++中 嵌入ruby脚本,很感谢找到了一篇文章,分享一下. The Definitive Guide to Ruby's C API
- Homekit_温湿度_人体红外_光强_传感器
市面上大多数,传感器产品多是简单的单个传感器进行售卖,这里我推荐一款四合一的产品,使用Homekit进行控制. 前置需求: 苹果手机一台 四合一传感器一个 USB数据线一根 介绍: 1.外观上是一个小 ...
- Android 开发学习进程0.19 webview 的使用
Android 中的webview android 中的webview是可以在app内部打开HTML等的网页,不必再打开浏览器,有两种实现方法,即webviewclient webChromeclie ...
- 洛谷P1579.验证哥德巴赫猜想(DFS+素性测试)
题目背景 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和.质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是 ...
- Java 10更新汇总,新的编译器通吃主流编程语言
早些时候Oracle发布了Java 10,这是Oracle更改发布策略之后的第一版Java,Oracle现已决定每六个月发布一个新的Java版本,周期缩短了,但是并不是说我们要学的更多了,而是说缩短开 ...
- LNK2005 连接错误解决办法 2009-10-30 12:13
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@ ...