NO Route to Host 的解决办法

来源:互联网 发布:mac java环境变量设置 编辑:程序博客网 时间:2024/05/16 10:50

在hadoop集群中跑程序 出现NO Route to Host的错误,原因其实很简单 ,就是因为系统防火墙没有关。下面先讲讲hadoop的工作原理
Hadoop 总体概述 1
Hadoop起源于Google的集群系统, Google的数据中心使用廉价Linux PC机组成集群,在上面运行各种应用。即使是分布式开发的新手也可以迅速使用Google的基础设施。
其核心组件有3个:
第一个就 是,GFS(Google File System),一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口;
第二个是 MapReduce,Google发现大多数分布式运算可以抽象为MapReduce操作。Map是把输入Input分解成中间的Key/Value 对,Reduce把Key/Value合成最终输出Output。这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行, 并把结果存储在GFS上;
第三个,BigTable,一个大型的分布式数据库,这个数据库不是关系式的数据库,而是一个巨大的表格,用来存储结构化的数据。
Hadoop特点
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
Hadoop的组成部分
Hadoop框架最核心的设计由两部分组成,分别是分布式文件系统和分布式计算框架。
分布式文件系统Hdfs为海量的数据提供了存储,主要用于大规模数据的分布式存储。
分布式计算框架MapReduce为海量的数据提供了计算,它构建在分布式文件系统之上,对存储在分布式文件系统中的数据进行分布式计算。
Hdfs和Mapreduce的关系
在Hadoop中,MapReduce底层的分布式文件系统是独立模块, Hadoop 默认使用的分布式文件系统是Hdfs,它与MapReduce 框架紧密结合。
用户也可按照约定的一套接口实现自己的分布式文件系统,然后经过简单的配置后,存储在该文件系统上的数据便可以被 MapReduce 处理,例如Spark。
Hadoop核心进程 1
[root@master ~]# jps
–31144 Jps
–19571 NameNode
–19672 DataNode
–19803 SecondaryNameNode
–19887 JobTracker
–19994 TaskTracker
Hadoop核心进程 2
NameNode
它是Hadoop 中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问
DataNode
它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个 datanode 守护进程。
SecondaryNameNode
它不是 namenode 的冗余守护进程,而是提供周期检查点和清理任务。
出于对可扩展性和容错性等考虑,我们一般将SecondaryNameNode运行在一台非NameNode的机器上。
Hadoop核心进程 3
JobTracker
JobTracker负责调度 DataNode上的工作。每个 DataNode有一个TaskTracker,它们执行实际工作。
JobTracker和 TaskTracker采用主-从形式,JobTracker跨DataNode分发工作,而 TaskTracker执行任务。
JobTracker还检查请求的工作,如果一个 DataNode由于某种原因失败,JobTracker会重新调度以前的任务。
TaskTracker
TaskTracker是在网络环境中开始和跟踪任务的核心位置。与Jobtracker连接请求执行任务而后报告任务状态。

当自己运行程序没有出现自己想要的结果时,首先去http://master1.hadoop:8088/cluster/apps/KILLED看看自己的程序运行状态如下图这里写图片描述
若出现下图的错误时
这里写图片描述
首先就要检查自己Hadoop集群上每个机器的防火墙是否关闭
1. 关闭防火墙
1> 查看防火墙状态
service iptables status
或者
/etc/init.d/iptables status
这里写图片描述
这是防火墙没有关闭的状态
黑色的图片是防火墙关闭的状态
这里写图片描述
2> 永久关闭防火墙 执行下面两条命令
service iptables stop
chkconfig iptables off
这里写图片描述
然后再次运行,是不是发现程序就不在报NO Route to Host的错误了!!!

0 0
原创粉丝点击