go+lua的分散式計算工具--Gleam

themoonstone發表於2016-10-29

此處是一個通過Go和LuaJIT編寫的快速和可擴充套件的分散式對映/縮減系統,很好的將Go的高併發性與Luajit高效能相結合,可獨立執行或用於分散式計算。 Gleam是一個高效能和高效的分散式執行系統,具備高效能、簡單,通用,靈活和易於定製的特點。它在Go中構建,使用者定義的計算可以用Lua,Unix管道工具或其它任何流程式編寫。下面是它的安裝方式和具體使用例項:

安裝方式:

1、安裝go

2、安裝luaJIT

3、將自定義的MessagePack.lua放在luajit可以找到的資料夾下。

4、 安裝測試

如果出現以下問題,只需複製MessagePack.lua到其中一個路徑。

  • luajit: (command line):1: module 'MessagePack' not found:
  • no field package.preload['MessagePack']
  • no file './MessagePack.lua'
  • no file '/usr/local/share/luajit-2.0.4/MessagePack.lua'
  • no file '/usr/local/share/lua/5.1/MessagePack.lua'
  • no file '/usr/local/share/lua/5.1/MessagePack/init.lua'
  • no file './MessagePack.so'
  • no file '/usr/local/lib/lua/5.1/MessagePack.so'
  • no file '/usr/local/lib/lua/5.1/loadall.so'

使用例項:

package main

import (
    "os"

    "github.com/chrislusf/gleam"
)

func main() {

    gleam.New().TextFile("/etc/passwd").FlatMap(`
        function(line)
            return line:gmatch("%w+")
        end
    `).Map(`
        function(word)
            return word, 1
        end
    `).ReduceBy(`
        function(x, y)
            return x + y
        end
    `).Fprintf(os.Stdout, "%s,%d\n").Run()
}

通過以上內容、我們知道Geam的安裝和使用都比較簡單、而且基於golang和lua簡單的語法規則和高效和併發效能、它也可以給使用者帶來更好的開發體驗。希望有興趣的同學可以享受到Gleam給大家帶來的便利

源文連結:

https://github.com/chrislusf/gleam

相關文章