暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Hadoop(二)HDFS基本操作

chester技术分享 2022-04-30
1957

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来查看文件


                            文章转载自chester技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                            评论