上个月通过email,帮朋友的朋友解决了一个Cloudera的Spark-SQL无法访问HBase做数据分析的问题,记录一下。
首先,对方已经做好了Hive访问HBase,所以spark-sql原则上可以通过调用Hive的元数据来访问Hbase。但是执行极慢,而且日志无报错。中间都是邮件沟通,先问了几个问题,是否启用了Kerberos,是否Hive访问Hbase正常,HBase shell访问数据是否正常等等,回答说没有用Kerberos,Hive访问Hbase正常,spark-sql读取Hive元数据也正常,Hbase shell也正常,就是spark-sql跑不了。 Continue reading Hadoop运维记录系列(十七) →
应了一个国内某电信运营商集群恢复的事,集群故障很严重,做了HA的集群Namenode挂掉了。具体过程不详,但是从受害者的只言片语中大概回顾一下历史的片段。
- Active的namenode元数据硬盘满了,满了,满了…上来第一句话就如雷贯耳。
- 运维人员发现硬盘满了以后执行了对active namenode的元数据日志执行了 echo “” > edit_xxxx-xxxx…第二句话如五雷轰顶。
- 然后发现standby没法切换,切换也没用,因为standby的元数据和日志是5月份的…这个结果让人无法直视。
Continue reading Hadoop运维记录系列(十六) →
阿里云貌似最近推出了FreeBSD镜像,这是我最喜欢的操作系统,个人看法比Linux好太多了。但是阿里云方面文档没有跟上,无任何挂载硬盘相关的操作说明,所以记录一下在阿里云FreeBSD镜像环境下挂载云磁盘的操作过程。 Continue reading 阿里云FreeBSD初始化方法 →
我一直用python2.x,python2.x内置的字符编码方式是unicode,这就对中文的处理造成了一些困扰,尤其是在用tornado写json接口的时候,如果不做处理,出来的没有中文,都是\x4d5f之类的东西。所以通常需要这样去处理下。 Continue reading Tornado学习笔记(二) →
以前很多业务都是用scribe做日志收集的支撑的,后来fb停止了对scribe的开发支持。而且scribe在机器上编译一次的代价太大了,各种坑,正好后来flume从1.3.0开始加入了对scribe的支持。就可以把原来scribe上面接入的数据转用flume收集了。虽然我很喜欢scribe,但是失去了官方支持毕竟还是很闹心的。 Continue reading 使用flume替代原有的scribe服务 →
早期搭建Hadoop集群的时候,在做主机和IP解析的时候,通常的做法是写hosts文件,但是Hadoop集群大了以后做hosts文件很麻烦,每次加新的服务器都需要整个集群重新同步一次hosts文件,另外,如果在同一个域下面做两个集群,做distcp,也需要把两个集群的hosts文件全写完整并完全同步,很麻烦。那么,一劳永逸的办法就是做DNS。DNS我这边已经用了很长时间了,几年前为了学这个还专门买了一本巨厚的BIND手册。 Continue reading Hadoop运维记录系列(十五) →
大菠萝3已经通了,用巫医基本没难度,玩游戏的过程中引发了一些思考,结合整个游戏的历史背景设定,总觉得不写出来就缺点什么。我是暴雪的忠实粉丝,暴雪每款游戏我都玩了,包括早期Dos下的失落的维京人。 Continue reading 关于Diablo3的历史和现状思考 →
最近开始用Tornado做开发了,究其原因,主要是Tornado基于Python,一来代码量少开发速度快,二来采用epoll方式,能够承载的并发量很高。在我的i5台式机上用ab测试,不连接数据库的情况下,单用get生成页面,大概平均的并发量在7900左右。这比php或者java能够承载并发量都高很多很多。三来Python代码可维护性相对来说比php好很多,语法结构清晰。四来,tornado的框架设计的很黄很暴力,以HTTP请求方式作为方法名称,通常情况下,用户写一个页面只需要有get和post两种方式的方法定义就够了。 Continue reading Tornado学习笔记(一) →
周末去了趟外地,受托给某省移动公司(经确认更正,是中国移动位置基地,不是省公司)做了一下Hadoop集群故障分析和性能调优,把一些问题点记录下来。
该系统用于运营商的信令数据,大约每天1T多数据量,20台Hadoop服务器,赞叹一下运营商乃真土豪,256G内存,32核CPU,却挂了6块2T硬盘。还有10台左右的服务器是64G内存,32核CPU,4~6块硬盘,据用户反馈,跑数据很慢,而且会有失败,重跑一下就好了。 Continue reading Hadoop运维记录系列(十四) →