前天遇到一个hadoop问题,由于之前都是伪分布的情况,没有真正的涉及到集群的环境,最近按照一些资料自己搭建了一个集群环境,三台虚拟机,一个master,两个slave,利用jps查看节点信息,启动了所有的节点,包括数据节点datanode,但是在Web UI中查看活节点,显示为0,我执行hadoop fs -mkdir /input 成功,毫无疑问,当我执行hadoop fs -put ~/file/file*.txt /input/,时报错了,错误信息是could only be replicatied to 0 nodes, instead of 1,意思就是我的集群设置是至少要又一个1个节点,但是现在检测呆0个节点,
这个时候查看slave上的datannode日志文件,发现下面信息,这个的意思就是slave和master的通信没有成功,slave向发送心跳,没有被master接收懂啊;好了这个时候,我就百度这个问题,天啦,各种瞎搞,什么防火墙啊,-format之类,全部检查了一个遍,各种设置,但是无济于事,这个异常始终存在;
 
2017-03-31 01:56:05,272 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting
2017-03-31 01:56:05,273 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 50020: starting
2017-03-31 01:56:05,591 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: hadoop.master/192.168.62.130:9000
2017-03-31 01:56:10,595 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: hadoop.master/192.168.62.130:9000
2017-03-31 01:56:15,599 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: hadoop.master/192.168.62.130:9000
2017-03-31 01:56:20,603 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: hadoop.master/192.168.62.130:9000
2017-03-31 01:56:25,607 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: hadoop.master/192.168.62.130:9000
直到昨天我用命令,netstat dfsadmin -report 在master节点上查看活节点信息,好了,报错了,错误是(忘记截图了)
Access denied for user 。。。。。。。。。。
意思就是权限问题,然后又开始各种搜索,有说什么ssh,ip的,我都检查了,就是不行,但是最后看到了一个博客,我一看,觉得说的和我的问题没多大关系,估计也解决不了我的问题,但是还是抱着侥幸的心理尝试了一下,解决方法是:
在hdfs-site.xml文件中添加
<property>  
        <name>dfs.permissions</name>  
        <value>false</value>  
 </property> 

然后再一次重启hadoop,执行netstat dfsadmin -report ,我天,奇迹出现了,我的两个datanode信息,打印出来,WebnUI中也出现了live nodes 为2 ,接下来遍跑通了我的例子,

到此完美解决了我的问题,至于这两句话我不是很理解,看意思false,估计是屏蔽权限,不需要权限吧,所以slave和master通信成功;
这个问题困扰很久,很多方法都试过了,没用,说明我们遇到问题一定要先分析,不能盲目的去试各种方案,因为同一个问题的引发原因有很多,这一点需要具体问题具体分析;
 

hadoop节点之间通信问题的更多相关文章

  1. (六)ROS话题---节点之间通信的方式

    1. 理解 ROS 话题: (Ctrl+Alt+T 打开一个新终端) 运行下面的命令: $ roscore (Ctrl+Alt+T 打开一个新终端) $ rosrun turtlesim turtle ...

  2. <关于数据仓库>基于docker的Mysql与Hadoop/Hive之间的数据转移 (使用Apache Sqoop™)

    原创博客,转载请联系博主! 摘要:本文介绍了如何使用docker快速搭建一个可以从外部访问的mysql服务容器,和由docker搭建的分布式Hadoop文件系统,并且使用ApacheSqoop完成将m ...

  3. Prism 4 文档 ---第9章 松耦合组件之间通信

    当构建一个大而负责的应用程序时,通用的做法时将功能拆分到离散的模块程序集中.将模块之间的静态引用最小化.这使得模块可以被独立的开发,测试,部署和升级,以及它迫使松散耦合的沟通. 当在模块之间通信时,你 ...

  4. vue组件之间通信总结(超详细)

    组件通信在我们平时开发过程中,特别是在vue和在react中,有着举足轻重的地位.本篇将总结在vue中,组件之间通信的几种方式: props.$emit $parent.$children $attr ...

  5. 【转】wpa_supplicant与wpa_cli之间通信过程

    [转]wpa_supplicant与wpa_cli之间通信过程 转自:http://blog.chinaunix.net/uid-26585427-id-4051479.html wpa_suppli ...

  6. RAC 安装完成后 节点间通信不依赖于SSH

    RAC 安装完成后,想修改ssh 的端口.google了一下.原文https://community.oracle.com/thread/2444594?tstart=0 原文说的是11g,10g也好 ...

  7. 将单链表的每K个节点之间逆序

    [说明]: 本文是左程云老师所著的<程序员面试代码指南>第二章中“将单链表的每K个节点之间逆序”这一题目的C++复现. 本文只包含问题描述.C++代码的实现以及简单的思路,不包含解析说明, ...

  8. [Cocos2d-x]节点之间的相互通讯

    在做.NET开发时,对象之间的相互通讯一般使用事件(event)实现,事件概念是.NET对Delegate的封装. 在Cocos2d-x开发过程中,对象之间的通讯刚开始时不知道如何实现,于是想到c++ ...

  9. 计蒜客模拟赛D1T2 蒜头君的树:树上节点之间最短距离和

    题目链接:https://nanti.jisuanke.com/t/16446 题意: 给你一棵有n个节点的树以及每条边的长度,输出树上节点之间的最短距离和.然后进行m次操作,每次操作更改一条边的长度 ...

随机推荐

  1. Oracle 11g行字段拼接WMSYS.WM_CONCAT问题Not A LOB

    Oracle 11g行字段拼接WMSYS.WM_CONCAT问题Not A LOB 一.问题出现 项目中的某个查询需要将表中某个字段不重复地拼接起来,百度得到该函数WMSYS.WM_CONCAT(字段 ...

  2. Angularjs基础(九)

    AngularJS 应用应用程序讲解 实例: <html ng-app="myNoteApp"> <head> <meat charset=" ...

  3. 关于Navicat连接MySQL 报 Authentication plugin 'caching_sha2_password' cannot be loaded

    报错原因: 报这个错是因为MySQL8使用了 caching_sha2_password 加密方式而之前MySQL使用的是 mysql_native_password 加密方式,而你的Navicat不 ...

  4. Spring+SpringMVC+Mybatis(二)

    上一次讲的是利用mybatis提供的sqlSessionTemplate作为DAO进行数据库的操作,其实我们可以把它封装到我们自己的DAO里面,这样就是所谓的自己写DAO,这次我们写一下通过mybat ...

  5. Linux入门-第三周

    1.总结vim命令行模式常见快捷方式,以及vim查找,替换的方法 vim [options] [file ..] +# 打开文件后,让光标处于第#行的行首,(默认行尾) 举例vim +10 /etc/ ...

  6. Java中replace与replaceAll区别

    看门见山 1.java中replace API: replace(char oldChar, char newChar):寓意为:返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所 ...

  7. redis之哨兵(Sentinel)

    Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能. 而 ...

  8. mybatis报错:sql中有条件语句时出现属性没有getter的异常

    Mybatis问题:在使用条件语句动态设置SQL语句时出现如下错误 Caused by: org.apache.ibatis.reflection.ReflectionException: There ...

  9. Java : java基础(2) 集合&正则&异常&File类

    Obj 方法: hashCode() 返回内存地址值, getClass() 返回的时运行时类, getName() 返回类名, toString() 把名字和hashCode() 合在一起返回,如果 ...

  10. 网络基础,tpc,udp

    一 , 网络基础相关知识 1. 架构 (重点) C / S  架构 : client 客户端(APP) 和 server 服务器端 能充分发挥pc机的性能 B / S 架构 : browser 浏览器 ...