[转 ]Hadoop - How to do a secondary sort on values ?

关于在hadoop中,如何让reduce阶段同一个key下的values有序,一篇很好的文章,写的比《Hadoop权威指南》清楚!

转载自:

http://www.bigdataspeak.com/2013/02/hadoop-how-to-do-secondary-sort-on_25.html

The problem at hand here is that you need to work upon a sorted values set in your reducer.[......]

继续阅读

HBase伪集群配置

与Hadoop一样,HBase也有三种运行模式:Standalone, Distributed, Pseudo-distributed。

其中,Pseudo-distributed称为伪集群模式,与Distributed基本一样,只不过进程都运行在一台机器上。

1、对HDFS配置伪集群模式。

见:Hadoop伪集群测试 与 Hadoop集群配置详细版

2、配置HBase

hbase-site.xml
<?xml version="1.0"[......]

继续阅读

Perl中切割字符串 限定分为几组

在Perl中,切割字符串很简单。
my ($k, $v) = split(/\t/, $string);
但如果数据中含有不止一个分隔符\t呢,比如这样:
a\tb\tc
此时,需要给spilit第三个参数,一个正整数,表示至多分为多少组。比如我们想只使用第1个分隔符,切分为2部分,则输入2。
my($first, $rest) = split(/\t/, $string, 2);
 [......]

继续阅读

Perl中如何让Hash的值为数组

这涉及到Perl的scalar和Array语境问题。

有问题的代码:
$new_hash{$some_key1} = @some_array1;

foreach($newhash{$some_key1}) {
print $_
}
打印的结果是只输出了一个元素,其值为数组的长度。

这里的问题是,赋值给Hash的Value是数组的长度,需要强制使用数组语境@{$hash{$key}}:
@{$new_hash{$some_key1}} = @some_array[......]

继续阅读