设为首页 收藏本站
查看: 680|回复: 0

[经验分享] Hadoop集群配置【一、各种悲催的错误】

[复制链接]

尚未签到

发表于 2015-7-12 10:52:26 | 显示全部楼层 |阅读模式
  暂且隐去具体什么项目,需要处理存储海量数据,一次存储多次读取,数据用作建模分析以及检索。
  本人比较倒霉,部署时基本能遇到的问题都遇到了。。好吧,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停止的时候却一直停不掉,或者很慢很慢,或者你选取其中的如干节点可以,但是选择所有的节点就不可以。。。。反正你遇到了很奇怪的显现,那么看看你每台机器的防火墙吧。关闭你的防火墙可能一下子就好了。
  之后把每个环节的详细步骤整理成文档吧。困了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85740-1-1.html 上篇帖子: 揭开Hadoop的面纱 下篇帖子: hadoop 开发环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表