摘要: 生产环境中,经常会有多个项目使用zookeeper,例如多个hbase集群。每个项目搭建一套独立的zookeeper,无论从机器成本,还是运维成本,都是一笔额外的开销。然而多项目,多集群共用zookeeper又涉及一个权限隔离的问题。zookeeper本身提供了ACL机制,表示为scheme:id:permissions,第一个字段表示采用哪一种机制,第二个id表示用户,permissions表示相关权限(如只读,读写,管理等)。zookeeper提供了如下几种机制(scheme):world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeepe... 阅读全文
posted @ 2013-09-11 18:30 王晓伟 阅读(10025) 评论(0) 推荐(1) 编辑
摘要: 经常会有一些Hadoop监控的需求,例如datanode节点掉线,Tasktracker blacklist的数量,以及Namenode,Jobtracker的内存GC信息等。之前采用Hadoop API获取这类信息插入Mysql,再用php脚本做逻辑判断并发送报警。这种做法代价比较高,需要在每个集群部署一个java用以收集信息。后来发现hadoop提供了一个JMX的json数据接口,可以比较方便的得到这些信息。只需在页面上便可访问到,例如namenode只需要将http://namenode:50070/dfshealth.jsp换成http://namenode:50070/jmx即... 阅读全文
posted @ 2013-09-11 17:38 王晓伟 阅读(3496) 评论(0) 推荐(0) 编辑
摘要: 早上发现一个任务有20个reduce,但是只有四个正常完成,剩余16个等待了8个小时才分配执行(集群槽位资源充足)解决方法:查看了集群的log,发现有这种warn:2013-09-11 01:56:38,620 WARN org.apache.hadoop.mapred.JobInProgress: No room for reduce task. Node tracker_slave028.hadoop.sjs.org:localhost/127.0.0.1:54676 has 91520086016 bytes free; but we expect reduce input to tak 阅读全文
posted @ 2013-09-11 17:12 王晓伟 阅读(320) 评论(0) 推荐(0) 编辑