DNS异常导致RM/NM进程挂掉

某天凌晨4点左右DNS异常导致测试集群RM进程挂掉。
这是个已知的bug:https://issues.apache.org/jira/browse/YARN-713

但后续发现所有NM进程也挂掉了,需要研究下是怎么回事。

阅读全文 »

HA failover与zookeeper超时

最近想到一个问题,在一个HA的集群当中,Active挂掉后,多久才会发生failover?
换言之,Active挂了后,多久才能发现?

阅读全文 »

hadoop豆知识

一些零散的知识点。

阅读全文 »

一些思考

大概1、2年前,看到某媒体评的互联网未来4个热点:云计算、大数据、社交、移动互联网。当年的热点现在怎样了?

阅读全文 »

8小时之外

近期的一些计划:

有些书早就买了,读了一半就放下了,打算重读下

  • Mahout in Action
  • 信息简史
  • 数学之美
  • 编程珠玑
  • Just for fun

胡乱总结下,一个码农的知识体系应该分几部分:

  • 理论:知道当然很好,不知道也无伤大雅。比如一些硬件相关的东西/操作系统原理/计算机网络/高级的算法/编译原理等等。毕竟不是搞理论研究的。不是说理论化不好,但过于理论化就是本末倒置。当年上学的时候没学好,不过书我还留着,有时间翻翻。
  • 基础:无论什么工作都会用到。例如Java/Python一些语言层面的细节、JVM原理、GC、基本的数据结构和算法、设计模式、Linux的基本概念、bash脚本等等。
  • 工具:因人、因工作而异,对我来说重要的工具包括git/maven/jira/IDE/Sublime,Linux下一些工具(vim/sed/awk/grep/top/netstat/lsof/strace/jstack等)。也包括常用的java类库(guava/slf4j/apache commons/junit/jackson/jodatime/jersey/jetty等),JDK自带的就更不用说了。
  • 系统:跟工作关系很大。对我而言就是hadoop生态系统(zookeeper/hdfs/mapreduce/yarn/hbase/hive/spark/storm)。还有kerberos(目前唯一官方支持的安全机制)。也包括一些在hadoop之上的应用,比如统计、推荐、数据挖掘、机器学习。

只是个大概的分类,肯定还有很多细节。
很多技术都没有列上去,但都能按这个方法归类。

理论/基础对所有人、所有工作都是一样的。
工具/系统看自己的工作方向,因人而异。

这是一个抽象层次由低到高的过程。
有这些知识作为基础,剩下的只需要积累经验了。

切记只取一瓢,技术是无穷尽的。(最近又对Node.js很感兴趣。。。)

同步hexo主题

上一篇文章中使用git在不同机器间同步。
主题作者一直在增加新功能,我偶尔会修改下主题的样式,如何应用到我自己的站点里?
其实就是git的submodule的用法。

以下操作在公司的pc上

1
2
3
4
5
6
7
8
9
10
11
12
# 首先clone我自己的repo
git clone ssh://foolbear@foolbear.me:8086/home/foolbear/git-repo/hexo-theme-next.git
# 添加一个github的remote
git remote add github git@github.com:iissnan/hexo-theme-next.git
# 将作者的一些更新合并到我自己的分支
git pull github master
git checkout foolbear
git merge master
# 肯定会有些冲突,解决冲突后commit
git commit -m "xxx"
# 修改后的foolbear分支push到我自己的repo
git push origin foolbear

以下操作在我自己笔记本上

1
2
3
cd themes/next
git pull
git checkout foolbear

概念上是很简单的,只是记录下。

《Just for fun —— Linus Torvalds自传》

Talk is cheap. Show me the code.

其实这本书大概一周前就读完了,只是一直懒得总结。
技术的书看多了,偶尔看看这种轻松愉快的调剂下,蛮好的。翻译的也不错。

阅读全文 »

hadoop中的lzo和snappy

澄清一些相关概念。

Lempel-Ziv是一种编码方式(类比霍夫曼编码),特点是字典小速度快:http://zh.wikipedia.org/wiki/LZW
在这个理论的基础上实现了很多压缩算法,包括lzo/lzf/lz4/lzw/snappy等等。snappy特殊,不是lz前缀。
http://en.wikibooks.org/wiki/Data_Compression/Dictionary_compression

这里只考虑lzo和snappy,这两个用的比较广泛。
它们的共同特点是压缩比小、压缩/解压快(更注重解压速度)、不耗CPU、会占用一些内存。snappy相对更快。

阅读全文 »

为github pages绑定域名

之前为了给blog绑定域名,折腾了很长时间,记录下。

其实github pages的帮助已经说得很清楚了,有两种方式:

  1. A记录指向github pages的IP,这个IP可能会变;
  2. CNAME记录指向xxx.github.io;

在自己的repo里再加一个CNAME文件即可。注意不要和域名的CNAME记录混淆。

最初我用自己的域名foolbear.me的A记录设置,确实能成功,但要fan| qiang。。。

我以为是github的IP被qiang了,于是换成CNAME方式。
按github的文档,CNAME方式有个问题,只能绑定二级域名,就是只能绑定blog.foolbear.me,而不能直接绑定foolbear.me。我用godaddy和linode的nameserver都测试过,确实无法直接在裸域名上新建CNAME记录。

DNSPod可以。于是把域名的nameserver改成dnspod,直接新建一个@的CNAME记录指向jiangxy.github.io。
绑定确实成功了,但还是要fan| qiang。。。我这才意识到自己的域名被qiang了。。。

只有http的访问被重置,而且是关键字屏蔽。比如http://www.apple.com/foolbear.me都会直接返回链接被重置,接下来几分钟之内都无法访问apple.com。。。

我也很无奈。。。我没干啥啊。。。

好在dns还是正常的,除了http外其他访问方式还正常。

只能重新申请域名并绑定,终于成功了。

这次申请了im的域名。原来的me域名只能绑定到linode上了。

用git同步hexo文章

hexo写作有个问题就是换机器时如何同步。网上有很多文章用dropbox实现的。
相对而言我还是git更熟悉些,所以选择用git在不同机器间同步文章和配置。
而且hexo init后还自动生成了一个.gitignore,说明hexo默认也是偏向于git的。

场景:在一台全新的机器上写blog,步骤尽量简化。

阅读全文 »