go+lua的分散式計算工具--Gleam
此處是一個通過Go和LuaJIT編寫的快速和可擴充套件的分散式對映/縮減系統,很好的將Go的高併發性與Luajit高效能相結合,可獨立執行或用於分散式計算。 Gleam是一個高效能和高效的分散式執行系統,具備高效能、簡單,通用,靈活和易於定製的特點。它在Go中構建,使用者定義的計算可以用Lua,Unix管道工具或其它任何流程式編寫。下面是它的安裝方式和具體使用例項:
安裝方式:
1、安裝go
2、安裝luaJIT
- wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz
- tar zxf LuaJIT-2.0.4.tar.gz
- cd LuaJIT-2.0.4
- sudo make install
3、將自定義的MessagePack.lua放在luajit可以找到的資料夾下。
- // option 1: copy a file to lua lib path
- wget https://raw.githubusercontent.com/chrislusf/gleam/master/script/MessagePack.lua
- sudo cp MessagePack.lua /usr/local/share/luajit-2.0.4/
- // option 2: install for the machine
- sudo luarocks install --server=http://luarocks.org/dev gleam-lua
- // option 3: or install it locally
- luarocks install --server=http://luarocks.org/dev gleam-lua --local
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給大家帶來的便利
源文連結:
相關文章
- 【分散式計算】分散式日誌匯入工具-Flume分散式
- 分散式雲端計算分散式
- [分散式]分散式計算系統淺析分散式
- Hadoop 分散式儲存分散式計算Hadoop分散式
- 【轉】分散式計算的謬論分散式
- 雲端計算,網格計算,分散式計算,叢集計算的區別?分散式
- 分散式計算與Map Reduce分散式
- 【分散式計算】DFS && BigTable分散式
- 分散式計算如果學習分散式
- 雲端計算分散式平行計算:系統架構分散式架構
- 分散式計算的八個謬誤 - Ably分散式
- 分散式計算,核心知識點分散式
- 我對分散式計算框架的理解與設計分散式框架
- 關於分散式計算的一些概念分散式
- 分散式系統中的自主自治計算 - pathelland分散式
- Spark:一個高效的分散式計算系統Spark分散式
- 【分散式計算】MapReduce的替代者-Parameter Server分散式Server
- (OO + 分散式計算) = 軟體架構的方向分散式架構
- 分散式的版本控制工具分散式
- 詳解 Apache SkyWalking OAP 的分散式計算Apache分散式
- 分散式計算技術(上):經典計算框架MapReduce、Spark 解析分散式框架Spark
- Titan-hadoop 分散式圖計算框架Hadoop分散式框架
- 淺談分散式計算的開發與實現(一)分散式
- 為什麼分散式雲是雲端計算的未來?分散式
- 分散式計算技術的比較:Jini, Jxta and Web Services分散式Web
- 淺談分散式計算的開發與實現(1)分散式
- 用RMI實現基於Java的分散式計算(轉)Java分散式
- 《Storm分散式實時計算模式》——1.7總結ORM分散式模式
- 分散式編譯工具分散式編譯
- 分散式和叢集區別?什麼是雲端計算平臺?分散式的應用場景?分散式
- 郭斯傑:重新思考流計算時代的分散式儲存分散式
- Hadoop 三劍客之 —— 分散式計算框架 MapReduceHadoop分散式框架
- 什麼是分散式計算系統?—Vecloud微雲分散式Cloud
- 分散式計算領域的哥德爾Eric Brewer分散式
- 效能之殤 | 分散式計算、超級計算機與神經網路共同的瓶頸分散式計算機神經網路
- 從分散式計算到分散式訓練分散式
- Git分散式版本控制工具Git分散式
- Rust/WebAssembly將是雲原生分散式計算的未來? - thenewstackRustWeb分散式