关于hadoop2.x(2.7.1 2.7.2)集群配置和测试运行中Ubuntu虚拟机VM设置nat方式导致节点传输问题

集群配置都大同小异,在这里我简单说下我的配置:

主节点系统是Ubuntu 14.04 LTS x64其他两个节点在VM中系统为Centos 6.4 x64

JVM为jdk1.7_80

hadoop版本2.7.1和2.7.2都尝试了

出现的问题是:

启动hdfs系统正常,都启动起来了,jps查看如下

主节点 SecondaryNameNode和 NameNode

从节点:DataNode

但使用hfds命令dfsadmin -report发现live的datanode只有1个,而且当你不同时间report,这个存活的节点是交替改变的,一会是datanode1,一会是datanode2

如下

[email protected]:modules$ hdfs dfsadmin -report
Configured Capacity: 16488800256 (15.36 GB)
Present Capacity: 13008093184 (12.11 GB)
DFS Remaining: 13008068608 (12.11 GB)
DFS Used: 24576 (24 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

-------------------------------------------------
Live datanodes (1):

Name: 192.168.2.3:50010 (hadoop)
Hostname: hadoop1
Decommission Status : Normal
Configured Capacity: 16488800256 (15.36 GB)
DFS Used: 24576 (24 KB)
Non DFS Used: 3480969216 (3.24 GB)
DFS Remaining: 13007806464 (12.11 GB)
DFS Used%: 0.00%
DFS Remaining%: 78.89%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon May 09 17:30:08 CST 2016

再次report

[email protected]:modules$ hdfs dfsadmin -report
Configured Capacity: 16488800256 (15.36 GB)
Present Capacity: 13008007168 (12.11 GB)
DFS Remaining: 13007982592 (12.11 GB)
DFS Used: 24576 (24 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

-------------------------------------------------
Live datanodes (1):

Name: 192.168.2.3:50010 (hadoop)
Hostname: hadoop2
Decommission Status : Normal
Configured Capacity: 16488800256 (15.36 GB)
DFS Used: 24576 (24 KB)
Non DFS Used: 3480793088 (3.24 GB)
DFS Remaining: 13007982592 (12.11 GB)
DFS Used%: 0.00%
DFS Remaining%: 78.89%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon May 09 17:34:06 CST 2016

奇怪了..同时,通过web ui 50070查看datanode存活的节点时候,只能有1个.而且当你刷新页面,这个存活的节点是变化的,同上

一开始我没这样看,我是通过dfs -mkdir /test,然后put文件,出现IO传输异常..主要异常内容如下

<pre name="code" class="html">hdfs.DFSClient: org.apache.hadoop.ipc.RemoteException: Java.io.IOException:

could only be replicated to 0 nodes, instead of 1


我就纳闷了,先是检验每个机器的防火墙,Selinux,然后互ping,然后ssh连接测试都没有问题..

一切都正常啊,为何会报传输异常...

截取一部分日志如下;

2016-05-10 01:29:54,148 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool Block pool BP-1877985316-192.168.2.3-1462786104060 (Datanode Uuid c31e3853-b15e-46d8-abd0-ac1d1ed4572b) service to hadoop/192.168.2.3:9000 successfully registered with NN
2016-05-10 01:29:54,151 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Successfully sent block report 0x44419c23fe,  containing 1 storage report(s), of which we sent 1. The reports had 0 total blocks and used 1 RPC(s). This took 0 msec to generate and 2 msecs for RPC and NN processing. Got back one command: FinalizeCommand/5.
2016-05-10 01:29:54,152 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Got finalize command for block pool BP-1877985316-192.168.2.3-1462786104060
2016-05-10 01:29:57,150 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: DatanodeCommand action : DNA_REGISTER from hadoop/192.168.2.3:9000 with active state
2016-05-10 01:29:57,153 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool BP-1877985316-192.168.2.3-1462786104060 (Datanode Uuid c31e3853-b15e-46d8-abd0-ac1d1ed4572b) service to hadoop/192.168.2.3:9000 beginning handshake with NN

这段日志一直在重复,每2-3秒重复一次,另一个节点也是.

另外我查看了虚拟机右下角的网络传输信号灯,也是基本没隔1秒闪一下,说明每一秒主节点和从节点进行了一次ssh交互,起初没在意..以为是心跳..

其实如果是正常情况下,只有每一次ssh 提出一个requets的时候,才会闪烁一下,我是这么理解的

然后查阅官方文档,参考其他网上资源和问题,都试了都不行...纳闷死了..

小修改了一些自己的配置文件,但只要基本的东西配置的没错,小改动的都是没多大关系的.这个是我配置的文件:

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop:9000</value>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.7.2/data/tmp</value>
    </property>
    <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
        <property>
               <name>hadoop.proxyuser.hadoop.hosts</name>
               <value>*</value>
       </property>
       <property>
               <name>hadoop.proxyuser.hadoop.groups</name>
               <value>*</value>
       </property>
</configuration>

hdfs-site.xml

<configuration>
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>hadoop:50090</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	</property>
	<property>
		<name>dfs.permissions.enabled</name>
		<value>false</value>
	</property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/opt/modules/hadoop-2.7.2/data/dfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:/opt/modules/hadoop-2.7.2/data/dfs/data</value>
	</property>
	<property>
		<name>dfs.webhdfs.enabled</name>
		<value>true</value>
	</property>
</configuration>

这里只关系到hdfs文件系统,所以mapred-site.xml和yarh-sitexml在这里就不累述了.

经过无数次的namnode format和删除data, /tmp目录下的文件,都无济于事,后来我开始怀疑是hadoop版本问题,试了试从一开始hadoop2.7.1改为2.7.2,还一样,然后开始怀疑Ubuntu的问题..我接着转到我Win7系统上,在虚拟机里运行三个节点,上传一个文件成功,十分顺利啊,,我就纳闷了..这是unbutu哪里的问题,,,

说来说去都是关系这节点ssh传输问题..我就开始想会不会是虚拟机的网络问题..我就换了几个DNS,从VM中Net适配器在Ubuntu中的ip xx.xx.xx.1换到我Ubunt接入外网的路由器ip,xx.xx.xx.1,都没啥问题啊,各个节点ping自己,网关,互ping和外网,都很顺..说明不是这里的问题..

最后一个尝试了.这里我设的是VM Net链接方式...改成桥接模式..配置一个外网的DNS,,.然后重新format Namenode,启动hdfs...检查Datanode报告,上传文件测试,,,一切顺利..终于改成功了..

put一个文件

web ui查看,存活的两个节点都显示出来了,不会跟之一样只出现一个..

个人总结;

启动hdfs文件系统,启动节点启动正常,但是datanode个数不正常,put文件时报IO错.

无外乎

1配置的slave或者hdfs-site.xml有问题

2ssh传输有问题..

3 网络传输比如网关,DNS,ip配置,hosts文件出现了问题..

4 以上都设置正常,在换一种方式测试链接.比如改变虚拟机的Net或者桥接方式,

要从这里着手,像这种比较少见的问题,只能自己一个个试着调了..

关于Ubuntu下的Vm虚拟机Net方式连接为何会导致这种单线传输的问题,我也不是很了解..希望了解的补充以下..

毕竟只有hadoop传输有问题,其他的比如虚拟机中ping,联网,传文件,ssh访问之类的,都很顺利

时间: 2024-10-10 05:23:03

关于hadoop2.x(2.7.1 2.7.2)集群配置和测试运行中Ubuntu虚拟机VM设置nat方式导致节点传输问题的相关文章

Hadoop-2.2.0中文文档——MapReduce 下一代 -——集群配置

目的 这份文档描写叙述了怎样安装.配置和管理从几个节点到有数千个节点的Hadoop集群. 玩的话,你可能想先在单机上安装.(看单节点配置). 准备 从Apache镜像上下载一个Hadoop的稳定版本号. 安装 安装一个Hadoop集群,一般包含分发软件到全部集群中的机器上或者是安装RPMs. 一般地,集群中的一台机器被唯一地设计成NameNode,还有一台机器被设置成ResourceManager.这是master(主). 集群中剩下的机器作为DataNode 和 NodeManager.这些是

最新Hadoop-2.7.2+hbase-1.2.0+zookeeper-3.4.8 HA高可用集群配置安装

Ip 主机名 程序 进程 192.168.128.11 h1 Jdk Hadoop hbase Namenode DFSZKFailoverController Hamster 192.168.128.12 h2 Jdk Hadoop hbase Namenode DFSZKFailoverController Hamster 192.168.128.13 h3 Jdk Hadoop resourceManager 192.168.128.14 h4 Jdk Hadoop resourceMan

Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程

1.选取三台服务器(CentOS系统64位) 114.55.246.88 主节点 114.55.246.77 从节点 114.55.246.93 从节点 之后的操作如果是用普通用户操作的话也必须知道root用户的密码,因为有些操作是得用root用户操作.如果是用root用户操作的话就不存在以上问题. 我是用root用户操作的. 2.修改hosts文件 修改三台服务器的hosts文件. vi /etc/hosts 在原文件的基础最后面加上: 114.55.246.88 Master 114.55.

Docker中自动化搭建Hadoop2.6完全分布式集群

这一节将在<Dockerfile完成Hadoop2.6的伪分布式搭建>的基础上搭建一个完全分布式的Hadoop集群. 1. 搭建集群中需要用到的文件 [[email protected] hadoop-cluster]# ll total 340648# 用自动化构建集群的脚本 -rwxr-xr-x. 1 root root 2518 Aug 13 01:20 build-cluster.sh# 使用scp 来下载的文件的脚本 -rwxr-xr-x. 1 root root 314 Aug 1

Hadoop2.6.0安装 — 集群

文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6034187.html 这里写点 Hadoop2.6.0集群的安装和简单配置,一方面是为自己学习的过程做以记录,另一方面希望也能帮助到和LZ一样的Hadoop初学者,去搭建自己的学习和练习操作环境,后期的 MapReduce 开发环境的配置和 MapReduce 程序开发会慢慢更新出来,LZ也是边学习边记录更新博客,路人如有问题欢迎提出来一起探讨解决,不足的地方希望路人多指教,共勉! 目

Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo

近期为了分析国内航空旅游业常见安全漏洞,想到了用大数据来分析,其实数据也不大,只是生产项目没有使用Hadoop,因此这里实际使用一次. 先看一下通过hadoop分析后的结果吧,最终通过hadoop分析国内典型航空旅游业厂商的常见安全漏洞个数的比例效果如下: 第一次正式使用Hadoop,肯定会遇到非常多的问题,参考了很多网络上的文章,我把自己从0搭建到使用的过程记录下来,方便以后自己或其他人参考. 之前简单用过storm,适合实时数据的处理.hadoop更偏向静态数据的处理,网上很多hadoop的

Hadoop2.6(NN/RM)高可用集群安装与部署

Hadoop2对HDFS的改进很大,支持HDFS(NameNode) 和ResourceManager高可用性,避免集群中单点故障造成整个集群不可用.那么,从本文开始将部署一套高可用Hadoop集群及家族中相关开源系统,具体根据下面规划来,本文只部署高可用Hadoop集群,后续很快更新其他软件部署. 一.部署前准备 1. 节点分配 HostName IP Hadoop HBase Zookeeper Hive HMaster0 192.168.18.215 NameNode HMaster /

Hadoop2.6.0在CentOS 7中的集群搭建

我这边给出我的集群环境是由一台主节点master和三台从节点slave组成: master     192.168.1.2 slave1       192.168.1.3 slave2       192.168.1.4 slave3       192.168.1.5 申明:我搭建的这个集群不是在普通用户,所以一下操作都是在超级用户root上. 一.虚拟机的安装 a)         我们从centos官网下载CentOS7(下载DVD IOS镜像就行了) b)         在VMwar

Hadoop-2.5.2集群安装配置详解

转载请注明出处:http://blog.csdn.net/tang9140/article/details/42869531 最近学习了下hadoop的安装.下面详细说明下步骤 一.环境 我的是在Linux环境下进行安装的.对于想在windows系统上学习的同学,可以采用虚拟机方式或通过cygwin模拟linux环境方式进行学习. 现在有三台服务器,分配如下: 10.0.1.100 NameNode 10.0.1.201 DataNode1 10.0.1.202 DataNode2 NameNo