MIT6.824-extra-Go的下载和配置

本文介绍了Goland,JetBrains的Go开发IDE,探讨了环境变量设置(GOROOT和GOPATH),以及Go构建工具如gobuild和goinstall的使用。着重提到Defects问题和Go包管理解决方案,包括GoVendor和Gomodules的引入以提升项目管理和依赖管理的效率。
摘要由CSDN通过智能技术生成

Goland

Goland是Jetbrains开发的Go开发IDE,但是没有社区免费版
https://www.jetbrains.com/go/

Go

如下连接进行下载
https://www.jetbrains.com/go/

环境变量

使用如下命令查看
go env

GOROOT

Go的路径,执行go命令时,会使用 $GOROOT/bin/go.exe进行命令解析

GOPATH

该目录下应有三个子目录 $GOPAHT/src;$GOPATH/pkg;$GOPATH/bin

src

Go要求所有项目都放在 $GOPATH/src目录下。使用命令 go env -w GOPAHT=xxx进行修改。
使用第三方依赖时,可使用 go get xxx下载并安装内。如果第三方路径为 github.com/gin-gonic/gin, 那么第三方依赖的代码将下载到 $GOPAHT/src/github.com/gin-gonic/gin目录下,并且在 $GOPATH/pkg目录下完成安装。

pkg

Go要求项目生成的库文件放入该目录供其他包使用

bin

Go要求项目生成的可执行的二进制文件存储在该目录下

go build

go build [options] [input_fils]可以将若干文件进行编译得到二进制可执行文件,并存储在当前工作目录

go install

go install [package]可以将 $GOPATH/src下的某个包进行编译得到二进制可执行文件放入bin目录、得到库文件放入pkg目录。
如果不带package的名称,则会把当前工作目录内的所有go文件进行编译。
go install要求有main包,且main包下有main方法,才会生成可执行文件。
go install会产生.a中间文件存储到 $GOPATH/pkg,下次编译可根.a文件进行加速。
go get会执行go install

Defects

  • 第三方包和项目文件都在src目录下,混乱难管理
  • 没有版本控制,包间可能不兼容
  • 没有自动下载脚本,所有第三方包都得一个一个下载
  • 所有项目的依赖包版本需要一样

Go Vendor

将第三方依赖放入当前项目的vendor目录下

Go modules

允许把项目创建到任意目录下,使用go.mod进行管理。

go.mod

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MIT 6.824 课程的 Lab1 是关于 Map 的实现,这里单介绍一下实现过程。 MapReduce 是一种布式计算模型,它可以用来处理大规模数据集。MapReduce 的核心想是将数据划分为多个块,每个块都可以在不同的节点上并行处理,然后将结果合并在一起。 在 Lab1 中,我们需要实现 MapReduce 的基本功能,包括 Map 函数、Reduce 函数、分区函数、排序函数以及对作业的整体控制等。 首先,我们需要实现 Map 函数。Map 函数会读取输入文件,并将其解析成一系列键值对。对于每个键值对,Map 函数会将其传递给用户定义的 Map 函数,生成一些新的键值对。这些新的键值对会被分派到不同的 Reduce 任务中,进行进一步的处理。 接着,我们需要实现 Reduce 函数。Reduce 函数接收到所有具有相同键的键值对,并将它们合并成一个结果。Reduce 函数将结果写入输出文件。 然后,我们需要实现分区函数和排序函数。分区函数将 Map 函数生成的键值对映射到不同的 Reduce 任务中。排序函数将键值对按键进行排序,确保同一键的所有值都被传递给同一个 Reduce 任务。 最后,我们需要实现整个作业的控制逻辑。这包括读取输入文件、调用 Map 函数、分区、排序、调用 Reduce 函数以及写入输出文件。 Lab1 的实现可以使用 Go 语言、Python 或者其他编程语言。我们可以使用本地文件系统或者分布式文件系统(比如 HDFS)来存储输入和输出文件。 总体来说,Lab1 是一个比较简单的 MapReduce 实现,但它奠定了 MapReduce 的基础,为后续的 Lab 提供了良好的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值