Hadoop(二)HDFS基本操作

2022-08-18 15:11:51 浏览数 (1)

HDFS

HDFS由大量服务器组成存储集群,将数据进行分片与副本,实现高容错。

而分片最小的单位就是块。默认块的大小是64M。

HDFS Cli操作

官网

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html

启动命令

代码语言:javascript复制
sbin/start-dfs.sh

停止命令

代码语言:javascript复制
sbin/stop-dfs.sh

创建目录

代码语言:javascript复制
hadoop fs -mkdir /chesterdata

查看是否创建成功

代码语言:javascript复制
hadoop fs -ls /

上传文件

代码语言:javascript复制
hadoop fs -put test.txt /chesterdata

查看文件

代码语言:javascript复制
hadoop fs -ls /chesterdata

验证块是不是64M,上传一个130M的文件

代码语言:javascript复制
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

代码语言:javascript复制
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

代码语言:javascript复制
package main

import "github.com/colinmarc/hdfs"

通过go mod tidy安装

代码语言:javascript复制
[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

代码语言:javascript复制
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 .运行

代码语言:javascript复制
[root@localhost hdfsdemo]# go run .
<nil>

通过cli检查是否真正删除

代码语言:javascript复制
[root@localhost hadoop-3.2.3]# hadoop fs -ls /chesterdata

根据ui来查看文件

0 人点赞