本文出处:http://blog.csdn.net/chaijunkun/article/details/23283431,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。

最近处理的数据越来越复杂,互联网上很火的Hadoop久闻盛名,想去学习一下。按照网上的例子配置了一番,老是出错误。但是正因为这个错误,才引发出对Hadoop集群管理的话题。

先说一下我的实验环境。我准备了4台虚拟机:

IP地址 机器名(hostname) 作用
192.168.1.101 hadoop_1 NameNode
192.168.1.102 hadoop_2 SecondaryNameNode
192.168.1.103 hadoop_3 DataNode-1
192.168.1.104 hadoop_4 DataNode-2

当我对NameNode进行格式化后,执行start-all,发现java进程没有启动成功(jps发现无任何进程),于是去查看日志,得到了下面的异常信息:

ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: hdfs://hadoop_1:9000

后来搜索这个问题,原来不止我一个人遇到,就是因为主机名中不能含有下划线“_”,后来我尝试了将hostname中的下划线改成点“.”,发现问题依旧。也就是说, Hadoop集群中的机器名不仅不能包含下划线,点也不可以。(关于这个问题,我看到了一篇文章: http://blog.iamzsx.me/show.html?id=54001,文中提到:“ 虽然linux支持一些特殊字符,但java里面并不支持”,至于他后面说的“点”可以,我这边实验的是不可以的)

常用的分隔符都不行,我们如何管理这些机器呢?要知道,这只是一个实验环境。到了真正的生产环境,也许你将会面对几十上百,甚至上千节点。后来没办法,尝试使用“减号”来分隔,将所有的机器名都换成如下形式:

IP地址 机器名(hostname)
192.168.1.101 hadoop-1
192.168.1.102 hadoop-2
192.168.1.103 hadoop-3
192.168.1.104 hadoop-4

此时运行start-all.sh后终于正常了:

[hduser@hadoop-1 bin]$ jps
1292 NameNode
1498 JobTracker
1438 SecondaryNameNode
1587 Jps

既然减号,可以使用,在大规模集群中我们可以这样划分:

集群:针对不同的任务,我们可以使用不同的集群,后期还可以根据复杂度对该集群进行伸缩控制。简称c,cluster

机架:在机房中,服务器都会放到机架当中,像一个大衣柜一样,一层一层堆叠着符合工业标准尺寸的服务器。简称r,rack

筐位:这个主要是针对刀片式服务器,在同一个机架中我们放置若干个刀片筐,用来承载刀片服务器。简称f,frame

槽位:这个也是针对刀片式服务器,在同一个刀片筐中可以放置若干个刀片服务器,每一个放置的位置称之为槽位。简称s,slot

在Hadoop集群优化中我们知道,从配置中体现网络拓扑结构,可以让集群自动优先选择同一机架中的机器协同工作,这样减少不同机架间的网络IO,提高效率。而网络规划中必不可少的就是对机器命名的管理。我们要从机器名中就能判断出它所在的位置。无论是性能优化的角度,还是从硬件维护的角度来说都是有益的。

因此我们不妨对Hadoop集群中的机器进行如下命名:

hadoop-c-[集群编号]-r-[机架编号]-f-[筐位编号]-s-[槽位编号]

例如:

hadoop-c-0-r-0-f-0-s-0

这就表示这台机器属于0号集群,在0号机架上0号筐位的0槽位上。是不是很容易定位?

在实验环境中,我们使用“修改/etc/hosts文件”的方式来手工绑定机器名和ip地址。这样做的缺点是一旦一台机器做出改动之后,要对群集中所有机器的hosts文件进行同步更新。这对于大型集群来说简直是一场噩梦。我们可以使用专门的DNS服务器来管理这些机器。只要所有的节点使用相同的DNS服务器,在主机更改时只需要修改DNS服务器即可。

写在最后:

其实个人觉得只要能让A主机找到B主机即可。我们往往将hosts文件中,IP对应的主机名称和/etc/sysconfig/network的HOSTNAME属性设置成一致的,这是一种习惯。然而实际上我们完全可以设置成不一样的。拿我们刚才实验环境中的例子。在/etc/sysconfig/network中设置的HOSTNAME属性为hadoop_1(这里面有下划线),我们完全可以在hosts文件中就指明192.168.1.101指向的机器是hadoop-1(注意,这里用的是减号),在我们配置Hadoop的时候,一律使用hadoop-1这样的名称即可。

从主机名谈Hadoop集群管理相关推荐

  1. Hadoop集群管理与NFS网关

    目录 一.Hadoop集群管理 1.访问集群文件系统 2.重新初始化集群 3.增加新的节点 4.修复节点 5.删除节点 二.NFS网关 1.NFS网关概述 2.NFS网关架构图 3.HDFS用户授权 ...

  2. 第127讲:Hadoop集群管理之安全模式解析及动手实战学习笔记

    第127讲:Hadoop集群管理之安全模式解析及动手实战学习笔记 hadoop在启动时namenode会把fsimage加载进内存,同时和edits内容合并,以此建立整个文件系统的元数据的镜像(内存级 ...

  3. Hadoop详解(五)——ZooKeeper详解,ZooKeeper伪分布搭建和集群搭建,Hadoop集群搭建,sqoop工具的使用

    ZooKeeper简介 什么是ZooKeeper? ZooKeeper是Google的Chubby一个开源的实现,是Hadoop分布式协调服务. 它包含了一个简单的原语集,分布式应用程序可以基于它实现 ...

  4. 从零搭建生产Hadoop集群(五)——CDH集群修改主机名与IP

    从零搭建生产Hadoop集群(五)--CDH集群修改主机名与IP 一.概述 二.完整步骤 1.官网推荐步骤: (1)验证下SSL/TLS认证是否所有服务都有配备,确认创建新的SSL/TLS认证. (2 ...

  5. 浅谈Oracle RAC --集群管理软件GI

    浅谈Oracle RAC --集群管理软件GI基本架构 今天周五,想想可以过周末,心情大好.一周中最喜欢过的就是周五晚上,最不喜欢过的是周日晚上和周一,看来我不是个热爱劳动的人啊.趁着现在心情愉悦,赶 ...

  6. 使用HUE来管理hadoop集群

    HUE Hue是cdh专门的一套web管理器,它包括3个部分hue ui,hue server,hue db.hue提供所有的cdh组件的shell界面的接口.你可以在hue编写mr,查看修改hdfs ...

  7. hadoop集群搭建 修改配置文件(三台主机都要配置)

    hadoop集群搭建      修改配置文件(三台主机都要配置) master 主机配置 1)hadoop-env.sh vim hadoop-env.sh 2)core-site.xml vim c ...

  8. 虚拟化Hadoop集群的部署和管理 - 基本操作

    在Big Data Extensions(BDE)上不仅可以在分钟级别非常快速地部署Hadoop集群,这点可以通过前文<大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hado ...

  9. Hadoop集群启动后利用Web界面管理HDFS

    Hadoop集群启动后,可以通过自带的浏览器Web界面查看HDFS集群的状态信息,访问IP为NameNode所在服务器的IP地址,hadoop版本为3.0以前访问端口默认为9870,hadoop版本为 ...

最新文章

  1. 设计模式入门之原型模式Prototype
  2. nginx php7 fastcgi,Windows下搭建PHP7+FastCGI+Nginx环境
  3. websocket文档_WebSocket推送 原理扫盲到上手实践
  4. Markdown编辑器:纯前端演示(可接入项目、含源码下载) - 总结篇
  5. 谈谈如何学习Linux操作系统
  6. python自动翻译pdf_python实现从pdf文件中提取文本,并自动翻译的方法
  7. bzoj 3672 利用点分治将CDQ分治推广到树型结构上
  8. 如何用python读取表_Python读取MySQL表数据的方法介绍
  9. java接收json数组转成字符串、对象转json、json字符串转list
  10. mysql mysql.sock_MySQL下mysql.sock丢失问题的解决[ubuntu, linux, mysqld.sock]
  11. 最新Apple苹果开发者账号AppleID注册流程
  12. 青春期的我们……妥协…挣扎…惊醒
  13. java基础面经--下
  14. 计算机键盘输入法基础知识,3、使用键盘打字 --电脑基础知识
  15. 一维数组二维数组(排序 最大值 插入排序)
  16. VBA(14)排序Sort
  17. 过滤器(Filter)和拦截器(interceptor)区别
  18. 微信支付-vue 实现微信支付-前端篇
  19. 【前沿解读】斯坦福研究员论文-以太坊可逆交易标准ERC20/721R的机制、创新与局限
  20. 服务器和应用系统迁移方案

热门文章

  1. 11月23日python笔记(python基础2.6-3.0)
  2. 写通俗易懂代码-用卫语句替代嵌套条件表达式
  3. struts2中的值栈对象ValueStack
  4. Quartz2D绘制路径
  5. 老徐FrankXuLei受邀为花旗银行讲授《微软WCF服务分布式开发与SOA架构设计课程》...
  6. 说明书 Cisco wrv210
  7. TSqlConnection
  8. WebSocket(伍) 断开连接
  9. Eclipse中配置CORBA环境
  10. centos web服务器---sysctl.conf调优参数