正文
HDFS
HDFS由大量服务器组成存储集群,将数据进行分片与副本,实现高容错。
而分片最小的单位就是块。默认块的大小是64M。
HDFS Cli操作
官网https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html
启动命令
sbin/start-dfs.sh
停止命令
sbin/stop-dfs.sh
创建目录
hadoop fs -mkdir /chesterdata
查看是否创建成功
hadoop fs -ls /
上传文件
hadoop fs -put test.txt /chesterdata
查看文件
hadoop fs -ls /chesterdata
验证块是不是64M,上传一个130M的文件
hadoop fs -put /usr/local/golang1181/go1.18.1.linux-amd64.tar.gz /chesterdata
查看此文件的块信息,hdfs的命令https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
hdfs fsck /chesterdata/go1.18.1.linux-amd64.tar.gz -files -blocks
编程语言操作HDFS
在Github上搜hdfs可以看到哪些语言支持hdfs的操作
我们选择golang来演示操作
引入github.com/colinmarc/hdfs,官网https://pkg.go.dev/github.com/colinmarc/hdfs#section-readme
package main import "github.com/colinmarc/hdfs"
通过go mod tidy安装
[root@localhost hdfsdemo]# go mod tidy go: finding module for package github.com/colinmarc/hdfs go: downloading github.com/colinmarc/hdfs v1.1.3 go: found github.com/colinmarc/hdfs in github.com/colinmarc/hdfs v1.1.3 go: finding module for package github.com/golang/protobuf/proto
创建hdfsclient,并尝试删除hdfs中的/chesterdata/go1.18.1.linux-amd64.tar.gz
package main import ( "fmt" "github.com/colinmarc/hdfs" ) func main() { client, _ := hdfs.New("localhost:9000") err := client.Remove("/chesterdata/go1.18.1.linux-amd64.tar.gz") fmt.Println(err) }
通过go run .运行
[root@localhost hdfsdemo]# go run .
<nil>
通过cli检查是否真正删除
[root@localhost hadoop-3.2.3]# hadoop fs -ls /chesterdata
根据ui来查看文件

分类:
Hadoop
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY