- 浏览: 141282 次
- 性别:
- 来自: 北京
-
最新评论
-
wudixiaotie:
white_crucifix 写道吓死宝宝了,以为有erlan ...
erlang hibernate -
white_crucifix:
吓死宝宝了,以为有erlang版的hibernate框架
erlang hibernate -
zzjmates:
...
rails缓存清空 -
wudixiaotie:
没用过rubymine
rails调试 -
string2020:
和工具(rubymine)提供的调试方式比,那个好
rails调试
文章列表
hadoop学习笔记
- 博客分类:
- hadoop
map参数中的key是什么:key是文件中的偏移量
value是这行数据,
context是负责hadoop map reduce之间数据的传递,所以map完成后要把结果写入到context中。
为什么要用文件的偏移量做key呢,估计是为了reduce的时候能有个顺序吧。
写入context的结果也是key value对,比如word count,写入的key肯定就是word,value就是count,然后把context传递给hadoop,hadoop把相同key的value组成一个数组value array,然后把key和value array传递给reduce,reduce ...
ruby来写hadoop的mapreduce,我用的方法是rubydoop。怎么配置环境呢:
1.安装rvm:
不说了 网上有
2.安装ruby:
由于我以前是做ruby的,所以习惯性的先安装了ruby,起码调试起来比jruby快多了。
3.安装jruby:
rvm install jruby然后等待安装完成
4.给编写mapreduce的目录设置默认的ruby版本和gemset:
进入到目标目录,执行rvm --create --ruby-version jruby-1.7.19@hadoop
生成两个文件.ruby-version ...
这是我自己想到的问题,结果去知呼提问,还没等别人回答, 我自己就想到方法实验了。。
fn main() {
let mut a = 34;
println!("a's addr:{:p}", &a);
let p = &mut a;
println!("p's addr:{:p}", &p);
println!("out test_pointer p's addr:{:p}", &test_pointer(p));
let b = 1 ...
在工作的时候遇到过这样的问题,由simple_one_for_one的supervisor创建的所有子进程在supervisor挂掉后不会被重启,才想到simple_one_for_one的supervisor会有这个隐患,同事提出个解决方案,把simple_one_for_one换成one_for_one,每次想动态子进程也可以调用supervisor:start_child。这个是个不错的方案,那么难道用simple_one_for_one就不能实现supervisor重启后子进程也重启么?当然能。怎么做呢?
应该在让顶层supervisor启动manager,manager的 ...
1.在~/.bashrc最后加入
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
2.重新启动terminal输入:
rvm use ruby-2.2.1 --default
把当前安装的ruby版本设为默认使用。
3.重新打开terminal后输入ruby -v 显示ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
have fun
libexpat1-dev (缺少expat.h)
libyaml-dev (缺少yaml.h)
1.rust里绑定变量是let,默认绑定了的变量是不可更改的,所以如果想让变量可变就要加上mut。
let x = 1; let mut y = 2;
2.match 相当于erlang中的case,但是case的每一项后都是分号,但是rust的match却是逗号。
3.match 的每一项最后都要加逗号,但是最后一项不加也不会报错,所有结尾加逗号的用法都是类似。
4.每个语句结尾都要加分号,但是当函数指定了返回值之后,这个函数的最后一个表达式不能加分号,负责会报错。
5.rust中除了两种声明之外其他的都是表达式。第一种声明是绑定声明:let x = 1;它不是表达式,所以没有返 ...
开发中遇到的诡异的bug
- 博客分类:
- 遇到的诡异bug
今天我们服务器组遇到个问题:
我们的服务是从Kafka里面取出数据,然后把offset存储到ssdb中,每个topic和partition都对应ssdb中不同的key,服务启动之后,每次kafka数据更新我们这边收到消息,然后存储之后就发现ssdb的值偶尔是-2,这就奇怪了,最开始我们是在代码中打印存储的日志,发现没什么问题,后来去查看ssdb的日志,才发现里面每次set的时候都会对同一个key存储2次,一次正确的值,一次是-2,当-2先存储的时候那么再次读取的值就是正确的,否则就是错误的。最开始大家以为是代码的事,所有人一起看也没发现什么问题,然后我们怀疑是ssdb的服务器有问题,把ssd ...
在包管理器中安装Codecs33和ConvertToUTF8这两个包
erlang supervisor分析
- 博客分类:
- erlang
当我们给supervisor指定需要创建的子进程的时候,会指定M,F,A,如果是simple_one_for_one的策略的话,启动子进程的方式是supervisor:start_child(SupName, OtherArgs),这种方式可以根据调用者的需求传不同的参数给需要启动的子进程的方法。和最初的参数合并成一个数组,A ++ OtherArgs。那么这个时候就有个问题了,既然参数不一致,那么在子进程挂掉的情况下,怎么重新启动对应的子进程呢???
原来supervisor会把每个自己管理的child的启动信息都存储在自己的进程字典中,Key就是Child的Pid,这样的话,如果某个Ch ...
1.sublime text 3 => install package => Rust
2.cd ~/.config/sublime-text-3/Packages
3.mkdir rust
4.git clone https://github.com/sp0/rust-style
5.cd rust-style
6.cargo build --release
7.ctrl+shift+p => Rust Code Formatter: Set Path =>
/home/xiaotie/.config/sublime-text-3/Packa ...
erlang输出调用栈信息
- 博客分类:
- erlang
在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。
也可以用这个函数:erlang:get_stacktrace ().平时调用他总是打印出空的数组,
这个函数只能在有异常的情况才能调用:
try
throw (asdf)
catch
R -&g ...
15.04禁用guest账户登录
- 博客分类:
- ubuntu
sudo vim /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
再结尾加一句话
allow-guest=false
1.如果在启动节点的时候报这个错 :
{"init terminating in do_boot",{'cannot load',elf_format,get_files}}
则需要在reltool.config中加入
{app, hipe, [{incl_cond, exclude}]},
2.当generate时,遇到:
ERROR: Failed to generate target from spec: "copy file /usr/local/lib/erlang/erts-6.4/bin/epmd -> `release ...