Stan's Tech Blog

好记性不如烂键盘!

如何修改Hadoop的默认日志级别,还真是麻烦

鄙人使用的Hadoop版本为2.6.4。Hadoop的默认日志级别为INFO,对于百台以上的集群,如果文件操作频繁的话,NameNode会狂打日志,对性能会有一定的影响。 我们可以通过http://<namenode:50070>/logLevel在线修改NameNode的日志级别。如下所示: 但是,如果NameNode重启的话,又得重新设置,好麻烦。 怎么设置默认的日志级别为WARN呢? Hadoop使用的是log4j记录日志,我们理所当然会想到去修改${HADOOP_HOME}/etc/hadoop/

Scala模式匹配的`@`操作符

阅读Spark源码的时候,经常碰到模式匹配中带着@这样的写法,如: object CombineLimits extends Rule[LogicalPlan] { def apply(plan: LogicalPlan): LogicalPlan = plan transform { case ll @ Limit(le, nl @ Limit(ne, grandChild)) => Limit(

解决Mac下使用pip安装M2Crypto报错的问题

和Mac系统升级有关,/usr/include目录没有了,且没有权限修改。 正确的安装方法(前提,已安装brew): sudo env LDFLAGS="-L$(brew --prefix openssl)/lib" \ CFLAGS="-I$(brew --prefix openssl)/include" \ SWIG_FEATURES="-cpperraswarn -includeall -I$

Mac/Linux下管理多个版本的jdk

最近搞的一个项目是基于jdk1.7,打算升级到jdk1.8需要做一段时间的测试,也就是说开发依然在1.7的版本,同时要测试1.8。 安装 需要什么版本的jdk直接去oracle官网下载dmg安装包直接安装即可。 修改~/.bashrc或~/.zshrc 添加以下代码 # 尼玛,写这篇日志其实主要是为了记录jdk在Mac下的安装路径~~~ export JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_

Python性能分析——cProfile

cProfile是python内置的模块,是比较常用的性能分析工具,可以非常方便的辅助我们找出程序的性能瓶颈,类似的内置工具还有profile,hotshot,使用方法和cProfile类似。本文重点介绍cProfile几种常用的分析方法。 直接针对一个文件进行分析: python -m cProfile test.py,-m表示运行一个模块,这里直接运行了cProfile模块,对test.py进行性能分析,分析结果直接输出到控制台中,还可以通过-o参数将结果输出到指定文件中。 很多情况下,我们可能需要对一块具体的代码进行分析,可以这么做: # 在代码中嵌入cProfile模块相关分析代码 from cProfile import

对招聘及面试的一些新感悟

今天公司内的几个团队leader坐在一起交流了关于招聘及面试方面的一些东西,通过和大家分享彼此的经验,从中学到不少东西,对招聘面试这件事情有了一些新的认识。 关于招聘 一个团队的整体水平和团队负责人有着直接的关系,团队负责人对于自己所做的事情有多大的愿景,直接决定招人的水平,想象下,如果你自己本身对所做的事情就不感兴趣或者没有自信,你怎么能招到高水平的人进入你的团队。这是我今天感触最深的! 招人应该是团队负责人重点关注的事情,而不只是HR的事情,HR算是个协助,日常工作中应该投入精力去做好这件事(当然是在有招聘需求的情况下)。 屠呦呦获奖感言: 不要去追一匹马,用追马的时间种草。 找候选人的方式有很多种:知乎、博客、论坛、朋友介绍、GitHub等等。
job

Spark+Hadoop集群性能调优

Hadoop短路本地读(原理:unix domain socket),提高文件读取性能 Hadoop的NameNode节点连接数设置要合理,设置hdfs-site.xml的dfs.namenode.handler.count配置,合理的连接值:python -c 'import math ; print int(math.log(计算节点的数量) * 20)' Data Locality的问题(

解决go get无法获取golang.org的包的问题

由于国内被墙导致无法获取。所以go get获取包的时候会出现超时错误,就像我这次碰到的: ➜ vishnu git:(master) ✗ go get github.com/kataras/iris package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys/
go

Hive为查询结果添加行号

注:Hive的版本要支持窗口函数 SELECT * FROM (SELECT row_number() over (partition BY 1) AS rn, d.* FROM test d LIMIT 10) q

解决SBT运行时提示java.lang.OutOfMemoryError: PermGen space的问题

最近用sbt测试Spark的HiveContext总是出现java.lang.OutOfMemoryError: PermGen space的异常。 PermGen space是Java中常见的问题,进程堆的永久区空间不足了,一般直接配置-XX:MaxPermSize=256M就可以了。 但是sbt会把他当做自己的参数处理,我们运行sbt时这么做就可以了:sbt -J-XX:MaxPermSize=512M