Glow 是使用 Go 编写的易用分布式计算系统,是 [Hadoop Map Reduce](http://www.oschina.net/p/hadoop),[Spark](http://www.oschina.net/p/spark-project),Flint,[Samza](http://www.oschina.net/p/samza) 等等的替代品。
Glow 的目标是提供一个库,可以在并行线程或者分布式集群机器中进行更简单计算。
安装:
<pre class="brush:shell;toolbar: true; auto-links: false;">go get github.com/chrislusf/glow
go get github.com/chrislusf/glow/flow</pre>
简单示例:
<pre class="brush:cpp ;toolbar: true; auto-links: false;">package main
import (
"flag"
"strings"
"github.com/chrislusf/glow/flow"
)
func main() {
flag.Parse()
flow.New().TextFile(
"/etc/passwd", 3,
).Filter(func(line string) bool {
return !strings.HasPrefix(line, "#")
}).Map(func(line string, ch chan string) {
for _, token := range strings.Split(line, ":") {
ch <- token
}
}).Map(func(key string) int {
return 1
}).Reduce(func(x int, y int) int {
return x + y
}).Map(func(x int) {
println("count:", x)
}).Run()
}</pre>
![image](http://static.oschina.net/uploads/space/2015/1028/112404_EzGO_865233.png)