热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hadoop集群搭建常见问题与解决方案(一):避免配置过程中的常见陷阱

在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。

暂且隐去具体什么项目,需要处理存储海量数据,一次存储多次读取,数据用作建模分析以及检索。

本人比较倒霉,部署时基本能遇到的问题都遇到了。。好吧,Hadoop配置的教程基本网上写烂了都,我就当时小记一下,留个纪念。

今天头给我五个服务器,让我挑选一台作为master,其他作为slave。原则是:配置好的优先,如果配置相差不大,那么地址最高或者最低的当作master。

好,我接到的五台都是turbolinux系统。地址是内网互联的,彼此通过公网连不上的(虽然在一个网段),有防火墙。

公网(内网)IP:

128.0.0.1(192.168.0.1)

128.0.0.2(192.168.0.2)

128.0.0.3(192.168.0.3)

128.0.0.4(192.168.0.4)

128.0.0.5(192.168.0.5)

好了,这回大家看看我是如何悲催的遇到各种问题的

零.开部署账户

开账户,这个不是我开的,但是头儿强调了,必须开独立账户,比如,服务器上本来有oracle的DBA,那么你部署Hbase就给Hbase开个独立账户,然后分配下来,这样权限分明,便于操作和管理。而且,开账户密码和用户名最好一样。

一.hosts是神马?

头儿说了,修改hosts,在配置中使用hostname代替配置文件中的IP地址。我傻眼了,hosts是什么?原来在/etc/hosts这个文件中,你可以做IP与及其名称的映射。也就是说,在这个文件中你写了这样的内容:

192.168.0.1     hmaster      [此处你可以添加别名]

192.168.0.1     hslave1

192.168.0.2     hslave2

......                ......

192.168.0.5     hslave5

如果在这五台机器的hosts文件都做了修改,那么右边的名称就会被解释为IP地址,也可以说是IP的代称。这样配置文件中就不需要再有IP地址了,因为这些字符串被做了映射。但前提是,这五台的hosts映射都一样,另外,一个IP可以映射成多个,但是一个名称不能对应多个IP。

应该注意的是,Hadoop配置不支持下划线,所以建议还是使用'-'代替‘_’。

二.免密码登录

其实这一步很容易,把生成的公钥cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys这样追加进去就行了,但是,authorized_keys的权限应该是644。我照着做了,可是不行,为什么,因为我忽略了.ssh目录的权限,需要是700,弄好了就搞定!

三.DataNode起不来

之前我老格式化Hdfs,这样如果你格式化之前没有清空上一次tmp中的内容(其实不用清空,待会再说,tmp就是你core-site.xml配置文件中的hadoop.tmp.dir,默认是/tmp。)那么就会出现namenode namespaceID 不一致的错误,你可以在logs文件夹中的datanode日志看到它。你先停止一切Hadoop服务,再如果清空一下目录,然后在格式化就没事了。

其实清空目录这个办法最简单,但是太暴力了,你可以去看看/current/version这个文件里面的内容,尝试的改一下就OK了。

四.wordcount程序卡掉了

这个不知道为何,reduce到了16%就会卡掉了,我当时把hadoop.tmp.dir配成了/tmp,就这样了,然后改了个其他的目录就好了。。现在也不清楚为啥。

五.hadoop is in safe mode

如果遇到Hadoop报错:hadoop is in safe mode 请先运行命令: hadoop dfsadmin -safemode leave来解除安全模式。

六.多硬盘配置

说白了提高一下你硬盘的利用率,怎么搞,用df -lh命令看看你挂载的硬盘都挂在什么目录下了,然后分别在这些目录中建立你要使用的目录,你建立好之后,把这些目录按照如下方法配置下去:

修改mapred-site.xml,处在不同硬盘上的目录用逗号隔开

 

mapred.local.dir 

$HDATA1, $HDATA2, …

 

修改hdfs-site.xml的dfs.data.dir

dfs.data.dir

$HDATA1, $HDATA2, …

七.Hbase的Regionserver连接不上master

部署好Hbase打开60010主页查看只有一个regionserver,去regionserver查看日志,发现regionserver一直尝试连接master的hosts文件中127.0.0.1所映射的主机名,恰好,我的服务器的这个主机名对应的是公网Ip,有防火墙。所以就连不上了,具体错误如下:

WARN org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying

. Error was:
java.net.ConnectException: Connection refused

这样你只需要去master的hosts文件中看看127.0.0.1对应这什么,然后把它删掉,比如:

127.0.0.1    a1     localhost.localdomain localhost

把a1删除。

原因在于,master告诉slave,127对应的名称就是localhost,所以regionserver们在尝试连接master的时候都会通过127对应的名称去连接,如果这个名称恰好连不上那就出问题了。

出现了错误,一定要去看日志,日志里面写的很清楚。

八.防火墙

如果你觉得那里都弄好了,HBase也可以启动,但是再HBase停止的时候却一直停不掉,或者很慢很慢,或者你选取其中的如干节点可以,但是选择所有的节点就不可以。。。。反正你遇到了很奇怪的显现,那么看看你每台机器的防火墙吧。关闭你的防火墙可能一下子就好了。

之后把每个环节的详细步骤整理成文档吧。困了


推荐阅读
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
author-avatar
呦呦嘉宾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有