坚信科学,分享技术

Category Archives: linux

linux qq的问题,ubuntu的问题,linux常用命令的问题,都在这个分类里能找到解答.

hive迁移hadoop namenode时遇到的问题

使用了一段时间的hive和hadoop,在迁移datanode时很容易,要迁移namenode,hive里就闹情绪了。更改namenode后,在hive中运行select 依旧指向之前的namenode地址。 要如何解决呢,具体操作如下: 1.复制打包老的namenode 2.复制打包老的namenode的hdfs目录 3.到新机器准备好:修改master的值 复制到各节点 修改hive的定义 4.hive这里使用了mysql来保存metadata 因为这些信息会被写死在hive的DBS和SBS表里,下面是关键的一步: 进入mysql,执行下面的sql, update DBS set DB_LOCATION_URI=REPLACE(DB_LOCATION_URI,'old host','new host'); update SDS set LOCATION=REPLACE(LOCATION,'old host','new host'); 启动,一切正常了!迁移hive namenode成功。

Continue reading

Posted in java, linux | Tagged , , | 3 Comments

maven打jar包自动生成run脚本-appassembler插件的使用

关键配置: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>1.1.1</version> <configuration> <programs> <program> <mainClass>com.chen.logtailer.Tail</mainClass> <name>app</name> </program> </programs> </configuration> </plugin> #mvn package appassembler:assemble #sh target/appassembler/bin/app 优点: 不需要管理各种run的脚本,自动生成。

Continue reading

Posted in java, linux | Tagged , | 2 Comments

巧用交换机,瞬间切流量

需求: 1号机服务移到2号机,然后要把1号机搬走。 原理: 交换机有ip对应mac地址的缓存,只需复制到ip和mac,可以在机房内的局域网里瞬间切换到另一个机器上。 操作: 1)在2号机准备好1号机的服务,并测试通过。记录1号机的mac和ip 2)以下操作要双开窗口,快速操作 3)在1号机执行:ifocnfig eth0 down 4)在2号机执行: ifconfig eth0:0 123.123.123.1 ifconfig eth0:0 hw ether 111111111111[1号机mac] ifconfig eth0:0 up 5)恭喜成功了! 6)搬走1号机,再也不要回来! 7)在2号机/etc/rc.local里添加: ifconfig eth0:0 123.123.123.1 ifconfig eth0:0 hw ether 111111111111[1号机mac] ifconfig eth0:0 up 终。

Continue reading

Posted in linux, 架构研究 | Tagged , | 1 Comment

硬件为王,软件为帝--记突增的访问

五一归来两周,精力都放在了因为服务器压力突增而来的各种鸡飞狗跳的事情上,今天总结一下,算是对过去两周的总结,希望对各创业团队有所借鉴。 1.访问突增,连锁反应 最先开始出现问题的,是在小负载下没有出现的问题,在大压力时,只要DB一堵,表像就会是循环锁死。 解决之道: 服务要有清晰的架构,开发规范里一定要有明确的架构层次规范,最好还有代码的层次规范。 2.mysql设计不合理,压力指数增加 mysql中存在大量的更新操作,特别是大字段或者变长字段的频繁更新,导致磁盘io居高不下,慢查询越来越多。 硬解决之道: raid卡加电,开启raid写缓存:一般服务器的raid卡都没有开启,开启是有一定用处的,但有一个前提,不是待续的高写入,否则这个写缓存是没有意义的。电池充电时无法缓存,一般三个月充一次电。 转微博:FusionioChina 回复 @YauzZ:多一个故障点。多一份丢数据的可能。而且目前有Raid卡的内存做到1GB。丢不起呀。(5月11日 23:29) 从raid分到多个盘、盘柜,都是从硬件上用多硬盘分担的好方案。 软解决之道: 写方案建立mysql隔离层,在写入前预先处理,类似软件缓存方案,效果明显,修改复杂。 3.后续可做 灵活的中间层数据层切换逻辑,让负载可以随时转移、分隔,基本可以达到“人傻钱多,万事不愁”。

Continue reading

Posted in java, linux, 架构研究 | Tagged , , | Leave a comment

erlang学习手记

ubuntu10.04下erlide for eclipse安装 网址:http://erlide.sourceforge.net/ 3.5版本的eclipse,直接用url http://erlide.org/update 安装 安装后,还需要erlang的环境: sudo apt-get install erlang 现在还不能打开文件,会报空指针错误,选择window->preferences->erlang->installed runtimes 把location选择到 /usr/lib/erlang 即可使用。 [把build automatically关掉,这插件还是不怎么靠谱的,用来写写代码就完了,要编译还是走命令行] erlang学习要点: (1)-module(xx). 注意前面的杠(-)和后面的点(.) 类似java的package,文件名要求为xx.erl,与module里名字相同。 (2)-export([double/1]). 同样注意杠和点。表示模块内的函数为double,包含一个参数。 扩展:多个声明这样写 -export([fac/1, mult/2]). (3)模式匹配 xxxx->aaaa; 箭头的用意:节省代码,不需要if...else...对应前面执行箭头后面。 (4)变量只能单次赋值 首字母必须大写。 (5)元子 以小写字母开头。只是一个名字。类似java的常量。 (6)元组 {inch,Y} {moscow,{c,-10}} 元组中有元素。 (7)列表 …

Continue reading

Posted in linux, 资料文档 | Tagged | Leave a comment

hadoop hive安装手记

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为 MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 [网络环境设置] vim /etc/hosts 192.168.100.52 hadoop1 192.168.99.34 hadoop2 192.168.103.135 hadoop3 分别到对应机器执行: hostname hadoop1 hostname hadoop2 hostname hadoop3 [打通机器] hadoop1# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa hadoop1# scp ~/.ssh/id_dsa.pub hadoop2:/root/ hadoop1# scp ~/.ssh/id_dsa.pub hadoop3:/root/ hadoop2# cat id_dsa.pub >> …

Continue reading

Posted in java, linux | Tagged , | 4 Comments

把手机当无线网卡-andriod usb0 ssh tunnle

小公司人员增长快,随着台式机日益加多,网速越来越慢,而wifi使用者却还不慢。于是就有了本文。 android手机通过usb共享网络很简单,只需要连上usb线后在手机设置里找到共享手机网络,打开即可。但是本文并非教如何连接usb线的。 图1 usb绑定设置pc共享android手机上网 ubuntu共享上网后,会发现连接不了线上的ssh,会等半天,报出no ruote。猜测是因为andriod手机的安全设置所致。其实本文重点讲如何ssh的。 先用android下载一个支持ssh的工具:connectbot。 打开软件,同时打开ubuntu,执行下面的语句安装sshd服务: apt-get install openSSL 然后启动sshd服务。 在connectbot中填写ubuntu机器ip,输入密码,ssh到ubuntu机器。 图2 用connectBot登录pc 这时按下菜单键,选择端口转发。选远端端口,填写2222,转发到192.168.1.1:22,确定以后,这个转发就建立了。 图3 connectBot端口转发 然后到ubuntu上执行ssh 127.0.0.1 -p2222 图4 我建立的端口转发 回车,输入192.168.1.1的密码,大功告成,成功利用端口转发打通了andriod手机共享usb0共享上网时的ssh。 关于ssh tunnel,详细见:http://www.54chen.com/_linux_/the-temporary-break-with-the-ssh-tunnel-restriction-cross-room.html

Continue reading

Posted in linux, 架构研究 | Tagged , , , | 1 Comment

squid缓存失效之谜:一步步提高squid缓存命中率办法记录

手里有个前端自己做cdn的服务器,结果发现进出流量相等,这是个诡异的事情,因为一般来说,做前端缓存的机器,流量基本上很长时间里都是出多进少的。 一开始的时候,是nginx做的nginx_cache,发现进出流量相等后,换上了squid 3.0,使用命令: squidclient -p 8088 mgr:info (启在8088) 发现如图所示的几个命中率,相当低下,一般的WEB服务器缓存30-60%是正常的,而CDN作用的应该说80%以上才是正常的。 刚启动squid的时候,个人认为是因为缓存文件还没有拖动到前端来,所以是正常的,但结果过了一天后,还是没有看到进流量松动。 第二天来,硬盘已经过了10G了,还是不行。通过cat access.log来看,cat access.log|gawk '{print $4}'|sort|uniq -c|sort -nr 发现TCP_MISS/200相当的多,再看流量图,进出还是没有变化。杯具。 于是乎,想到了直接tail -f access.log,看看究竟都有什么东西在访问。 一条接一条的xxx.jpg?unid=1111触动了我(公司用来做用户行为分析的参数),就这样白花花的浪费了缓存。 解决方案: 幸好,squid前面,还有一层nginx,于是考虑在nginx上做转发,将所有的xxx.jpg?xx=xx全部转到 xxx.jpg去,过滤掉url中的参数。尝试了几个不行,内置的参数$url $request_url都不可行。 只有一招利用403来跳转的可行。 location ~* (.jpg$)|(.png$)|(.gif$

Continue reading

Posted in WEB相关, linux, 架构研究 | Tagged , | 6 Comments

创业公司技术选型参考

java推荐框架 web项目来说,spring、struts是必选,当然有更加好用的,推荐来自疱丁分词作者王志亮在人人网的rose框架,使用上手快,配置少,是创业公司java必备。 php框架推荐 zend framework,或者直接写个简单的框架,php的框架更加倾向去规范代码,让所有项目在新人加入时快速上手。 代码版本控制 subversion是必选工具,简单易学,git也开始流行,也是可选方案。 jar包依赖管理 这是针对java项目,还在使用ant的朋友,可以考虑换换了,特别的,如果你的公司在很快扩张的时候,这个选择能让未来避开依赖混乱,遇事集体更新困难的困境。 公共代码建立 长期可遇见的公共部分,比如用户信息获取,memcache管理,毋庸置疑地需要提供公共的方法,越早越好。 代码可扩展 这就考量上面选择框架的气候是不是合理了,这里可扩展是指,在负载越来越大的时候,要能很轻易配置读写分离,rose在这方面做得很优雅,只需要简单配置就梦把看的代码用上新的数据源。 code review 有许多好用的系统,比如Review Board等,让参与者都知道修改,并且在最早期发现问题。 bug系统 jira、Bugfree等等,用系统控制流程。 培训体系 技术需要交流才会有进步,团体的进步才是真的进步。所以尽早建立起内部的培训体系非常有必要,同时也是活跃团体气氛的很好方法,其频度控制在两周一次最好。 知识管理 php+mysql的mediawiki是首选,每个优秀的工程师,都必须首先是一个完全熟悉wiki语法擅长写wiki的工程师。早年搞了一个把mysql换成postgr

Continue reading

Posted in linux, 架构研究 | Tagged , | 7 Comments

ubuntu下Empathy十月起无法登录msn的解决办法

作为ubuntu深度用户,我(54chen)在几个星期前就有网友来问过,msn登录常常会挂掉,甚至到现在已经无法再登录,受影响的范围很广,最新的10.10也是一样的,原因可能是msn单方面更新了接口,下面提供一种解决办法(以10.04lts Empathy 2.30.1.1 为例): #vim /usr/share/pyshared/papyon/service/description/SingleSignOn/RequestMultipleSecurityTokens.py 找到第24行注释掉: #CONTACTS = ("contacts.msn.com", "?fs=1&id=24000&kv=7&rn=93S9SWWw&tw=0&ver=2.1.6000.1") 修改为: CONTACTS = ("contacts.msn.com", "MBI") (请勿复制,引号有转义) 然后重启,恭喜你msn高昂登录。 附: ubuntu下empathy的msn群显示昵称 点击下载我修改过的文件: http://www.54chen.com/RequestMultipleSecurityTokens.py.gz gunzip RequestMultipleSecurityTokens.py.gz sudo cp RequestMultipleSecurityTokens.py /usr/share/pyshared/papyon/service/description/SingleSignOn/

Continue reading

Posted in linux | Tagged , , | 1 Comment
Page 3 of 111234510...Last »