HDFS HDFS由大量伺服器組成存儲集群,將數據進行分片與副本,實現高容錯。 而分片最小的單位就是塊。預設塊的大小是64M。 HDFS Cli操作 官網https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/F ...
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