gpt4 book ai didi

hadoop - 如何在 Golang 中编写 Map/Reduce 任务?

转载 作者:IT老高 更新时间:2023-10-28 13:08:33 29 4
gpt4 key购买 nike

我想在 Go(而不是 Streaming API!)中编写 Hadoop Map/Reduce 作业。

我试图掌握 hortonworks/gohadoopcolinmarc/hdfs但我仍然不知道如何真正写作业。我已经搜索了导入这些模块的 github 代码,但显然没有任何相关内容。

在某处是否有任何 WordCount.go

最佳答案

这个github:https://github.com/vistarmedia/gossamr是开始在 Hadoop 上使用 golang 作业的一个很好的例子:

吉斯特:

package main

import (
"log"
"strings"

"github.com/vistarmedia/gossamr"
)

type WordCount struct{}

func (wc *WordCount) Map(p int64, line string, c gossamr.Collector) error {
for _, word := range strings.Fields(line) {
c.Collect(strings.ToLower(word), int64(1))
}
return nil
}

func (wc *WordCount) Reduce(word string, counts chan int64, c gossamr.Collector) error {
var sum int64
for v := range counts {
sum += v
}
c.Collect(sum, word)
return nil
}

func main() {
wordcount := gossamr.NewTask(&WordCount{})

err := gossamr.Run(wordcount)
if err != nil {
log.Fatal(err)
}
}

开始脚本:

./bin/hadoop jar ./contrib/streaming/hadoop-streaming-1.2.1.jar \
-input /mytext.txt \
-output /output.15 \
-mapper "gossamr -task 0 -phase map" \
-reducer "gossamr -task 0 -phase reduce" \
-io typedbytes \
-file ./wordcount
-numReduceTasks 6

关于hadoop - 如何在 Golang 中编写 Map/Reduce 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31832266/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com