适用于 HDFS 的原生 Go 客户端
HDFS for Go ==================== > [!IMPORTANT] 需要维护者! 如果您或您的公司在生产环境中使用了该项目(我已经不再使用了),并有兴趣接管该项目,请通过电子邮件与我们联系。 这是一个原生的 Golang 客户端,用于 HDFS。 它使用协议缓冲区 API 直接连接到命名节点。 它尽可能地遵循标准库 os 包的风格,并在可能的情况下实现了其中的接口,包括 os.FileInfo 和 os.PathError。 以下是它在实际应用中的样子: ```go
client, _ := hdfs.New("namenode:8020")
file, _ := client.Open("/mobydick.txt")
buf := make([]byte, 59) file.ReadAt(buf, 48847)
fmt.Println(string(buf))
// => Abominable are the tumblers into which he pours his poison.
``` 如需完整文档,请查看 [Godoc][1]。 hdfs 二进制文件 ------------------
除了库之外,这个仓库还包含了一个用于 HDFS 的命令行客户端。与库一样,它的主要目标是使用喜欢的 Unix 语法,支持以下命令:
有效命令:
ls [-lah] [FILE]...
rm [-rf] FILE ...
mv [-fT] SOURCE... DEST
mkdir [-p] FILE ...
touch [-amc] FILE ...
chmod [-R] OCTAL-MODE FILE ...
chown [-R] OWNER[:GROUP] FILE ...
cat SOURCE ...
head [-n LINES | -c BYTES] SOURCE ...
tail [-n LINES | -c BYTES] SOURCE ...
du [-sh] FILE ...
校验和文件 ...
get SOURCE [DEST]
getmerge SOURCE DEST
将 SOURCE 设为 DEST
由于不需要等待 JVM 启动,因此速度也要快得多
hadoop -fs:
$ time hadoop fs -ls / > /dev/null
实际 0m2.218s
用户 0m2.500s
sys 0m0.376s
$ time hdfs ls / > /dev/null
实用 0m0.015s 用户 0m0.004s 系统 0m0.004s 最重要的是,它还提供了用于路径的 bash 标签完成功能!
暂无开放 Issues,或尚未同步最近议题。