hadoop-HDFS

这篇具有很好参考价值的文章主要介绍了hadoop-HDFS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.HDFS简介

2.1  Hadoop分布式文件系统-HDFS架构

hadoop-HDFS,hdfs,hadoop,大数据

2.2  HDFS组成角色及其功能

(1)Client:客户端

(2)NameNode (NN):元数据节点

管理文件系统的Namespace元数据

一个HDFS集群只有一个Active的NN

(3)DataNode (DN):数据节点

数据存储节点,保存和检索Block

一个集群可以有多个数据节点

(4)Secondary NameNode (SNN):从元数据节点

合并NameNode的edit logs到fsimage文件中

辅助NN将内存中元数据信息持久化

2.3  HDFS副本机制

(1)Block:数据块

HDFS最基本的存储单元,默认块大小:128M(2.x)

(2)副本机制

作用:避免数据丢失

副本数默认为3

存放机制:一个在本地机架节点;一个在同一个机架不同节点;一个在不同机架的节点

2.4  HDFS优缺点

(1)HDFS优点:高容错性;适合大数据处理;流式数据访问;可构建在廉价的机器上

(2)HDFS缺点:不适合低延时数据访问场景;不适合小文件存取场景;不适合并发写入,文件随机修改场景

2.HDFS基本文件操作命令

2.1   准备工作

1)启动单机Hadoop

2)-help:输出这个命令参数

hdfs dfs -help rm

3)创建/install文件夹

hdfs dfs -mkdir /sanguo

2.2 上传

1)-moveFromLocal:从本地剪切粘贴到HDFS

2)-copyFromLocal:从本地文件系统中拷贝文件到HDFS路径去

3)-put:等同于copyFromLocal,生产环境更习惯用put

hadoop-HDFS,hdfs,hadoop,大数据

4)-appendToFile:追加一个文件到已经存在的文件末尾

2.3 HDFS直接操作

1)-ls: 显示目录信息

hadoop fs -ls /sanguo

2)-cat:显示文件内容

hadoop fs -cat /install/shuguo.txt

3)-chgrp、-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限

hadoop fs  -chmod 666  /sanguo/shuguo.txt

hadoop fs  -chown  atguigu:atguigu   /sanguo/shuguo.txt

4)-mkdir:创建路径

hadoop fs -mkdir /jinguo

5)-cp:从HDFS的一个路径拷贝到HDFS的另一个路径

hadoop fs -cp /sanguo/shuguo.txt /jinguo

6)-mv:在HDFS目录中移动文件

hadoop fs -mv /sanguo/wuguo.txt /jinguo

hadoop fs -mv /sanguo/weiguo.txt /jinguo

7)-tail:显示一个文件的末尾1kb的数据

hadoop fs -tail /jinguo/shuguo.txt

8)-rm:删除文件或文件夹

hadoop fs -rm /sanguo/shuguo.txt

hadoop-HDFS,hdfs,hadoop,大数据

9)-rm -r:递归删除目录及目录里面内容

hadoop fs -rm -r /sanguo

hadoop-HDFS,hdfs,hadoop,大数据

10)-du统计文件夹的大小信息

hadoop fs -du -s -h /jinguo

27  81  /jinguo

hadoop fs -du  -h /jinguo

14  42  /jinguo/shuguo.txt

7   21   /jinguo/weiguo.txt

6   18   /jinguo/wuguo.tx

       说明:27表示文件大小;81表示27*3个副本;/jinguo表示查看的目录

11)-setrep:设置HDFS中文件的副本数量(集群)

hadoop fs -setrep 10 /jinguo/shuguo.txt

 

这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10。

2.4  进入资源管理器web页面:http://kb129:8088

2.5  查看历史服务器

(1)启动历史服务器:mapred --daemon start historyserver

hadoop-HDFS,hdfs,hadoop,大数据

(2)进入历史服务器网页访问:http://kb129:19888

3. windows中hadoop环境搭建

3.1  解压hadoop313至C盘server目录下,配置环境变量HADOOP_HOME    C:\server\hadoop313

将winutils.exe放至C:\server\hadoop-3.1.3\bin目录下

将hadoop.dll放至C:\Windows\System32目录下

hadoop-HDFS,hdfs,hadoop,大数据

4. Java实现HDFS文件读写

4.1  创建maven工程,quickstart工程

(1)配置依赖

hadoop-HDFS,hdfs,hadoop,大数据

<dependency>

      <groupId>org.apache.hadoop</groupId>

      <artifactId>hadoop-common</artifactId>

      <version>${hadoop.version}</version>

    </dependency>

    <dependency>

      <groupId>org.apache.hadoop</groupId>

      <artifactId>hadoop-hdfs</artifactId>

      <version>${hadoop.version}</version>

    </dependency>

    <dependency>

      <groupId>org.apache.hadoop</groupId>

      <artifactId>hadoop-mapreduce-client-core</artifactId>

      <version>${hadoop.version}</version>

    </dependency>

    <dependency>

      <groupId>org.apache.hadoop</groupId>

      <artifactId>hadoop-mapreduce-client-common</artifactId>

      <version>${hadoop.version}</version>

    </dependency>

    <dependency>

      <groupId>org.apache.hadoop</groupId>

      <artifactId>hadoop-client</artifactId>

      <version>${hadoop.version}</version>

</dependency>

4.2  test包中重写AppTest

hadoop-HDFS,hdfs,hadoop,大数据

package org.example;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;

/**
 * Unit test for simple App.
 */
public class AppTest {
    //可操作hdfs文件系统的对象
    FileSystem hdfs = null;

    @Before
    public void init() throws IOException {
        //构造一个配置参数对象,设置参数 要访问的hdfs的url
        Configuration conf = new Configuration();
        //指定使用hdfs访问
        conf.set("fs.defaultFS","hdfs://kb129:9000");
        System.setProperty("HADOOP_USER_NAME","root");
        hdfs = FileSystem.get(conf);

    }

    //上传本地文件到hdfs
    @Test
    public void shouldAnswerWithTrue() throws IOException {
        Path localFilePath = new Path("C:\\Windows\\System32\\drivers\\etc\\services");
        Path hdfsPath = new Path("/services.txt");
        //上传
        hdfs.copyFromLocalFile(localFilePath,hdfsPath);
        System.out.println("上传成功");
    }

    //从hdfs下载文件到本地
    @Test
    public void downloadFile() throws IOException {
        Path localFilePath = new Path("D:\\tttttmmmmmppppp");
        Path hdfsPath = new Path("/services.txt");
        //下载
        hdfs.copyToLocalFile(hdfsPath,localFilePath);
        System.out.println("下载成功");
    }

    @After
    public void close() throws IOException{
        hdfs.close();
    }
}

hadoop-HDFS,hdfs,hadoop,大数据文章来源地址https://www.toymoban.com/news/detail-678805.html

到了这里,关于hadoop-HDFS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop理论及实践-HDFS读写数据流程(参考Hadoop官网)

    主节点和副本节点通常指的是Hadoop分布式文件系统(HDFS)中的NameNode和DataNode。 NameNode(主节点):NameNode是Hadoop集群中的一个核心组件,它负责管理文件系统的命名空间和元数据。它记录了文件的目录结构、文件的块分配信息以及每个文件块所在的DataNode等关键信息。NameNo

    2024年02月14日
    浏览(35)
  • Hadoop HDFS:海量数据的存储解决方案

    在大数据时代,数据的存储与处理成为了业界面临的一大挑战。Hadoop的分布式文件系统(Hadoop Distributed File System,简称HDFS)作为一个高可靠性、高扩展性的文件系统,提供了处理海量数据的有效解决方案。本文将深入探讨HDFS的设计原理、架构组成、核心功能以及实际应用场

    2024年04月23日
    浏览(29)
  • hadoop之hdfs生产数据块损坏修复方法

    1、手动修复 检查数据块丢失情况 hdfs fsck / 修复指定路径的hdfs文件,尝试多次 hdfs debug recoverLease -path 文件位置 -retries 重复次数 删除所有损坏的块的数据文件 hdfs fsck / -delete 2、自动修复 hdfs会自动修复损坏的数据块,当数据块损坏后, DN节点执行directoryscan(datanode进行内村和

    2023年04月11日
    浏览(46)
  • 大数据:Hadoop HDFS,基础架构,去中心化,中心化模式,HDFS基础架构,虚拟机和云服务器部署HDFS

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库 这oracle比sql安全,强大多了,所以你需要学

    2024年02月17日
    浏览(35)
  • 尚硅谷大数据技术Hadoop教程-笔记03【Hadoop-HDFS】

    视频地址: 尚硅谷大数据Hadoop教程(Hadoop 3.x安装搭建到集群调优) 尚硅谷大数据技术Hadoop教程-笔记01【大数据概论】 尚硅谷大数据技术Hadoop教程-笔记02【Hadoop-入门】 尚硅谷大数据技术Hadoop教程-笔记03【Hadoop-HDFS】 尚硅谷大数据技术Hadoop教程-笔记04【Hadoop-MapReduce】 尚硅谷

    2023年04月08日
    浏览(67)
  • 大数据技术之Hadoop:使用命令操作HDFS(四)

    目录 一、创建文件夹 二、查看指定目录下的内容 三、上传文件到HDFS指定目录下 四、查看HDFS文件内容 五、下载HDFS文件 六、拷贝HDFS文件 七、HDFS数据移动操作 八、HDFS数据删除操作 九、HDFS的其他命令 十、hdfs web查看目录 十一、HDFS客户端工具 11.1 下载插件 11.2 本地安装Had

    2024年02月09日
    浏览(33)
  • 大数据技术之Hadoop:HDFS存储原理篇(五)

    目录 一、原理介绍 1.1 Block块 1.2 副本机制 二、fsck命令 2.1 设置默认副本数量 2.2 临时设置文件副本大小 2.3 fsck命令检查文件的副本数 2.4 block块大小的配置 三、NameNode元数据 3.1 NameNode作用 3.2 edits文件 3.3 FSImage文件 3.4 元素据合并控制参数 3.5 SecondaryNameNode的作用 四、HDFS的读

    2024年02月09日
    浏览(27)
  • Hadoop大数据技术-通过shell命令访问HDFS

    HDFS shell大致可以分为操作命令、管理命令、其他命令三类。 注意:当命令以“$”开头时,当前用户为普通用户;以“#”开头时,当前用户为root用户。 操作命令是以“ hdfs dfs ”开头的命令,用户可以通过执行这些命令,完成对文件的查找、上传、删除等操作。 [-p]:表示如

    2023年04月11日
    浏览(31)
  • 大数据技术之Hadoop:HDFS集群安装篇(三)

    目录 分布式文件系统HDFS安装篇 一、为什么海量数据需要分布式存储 二、 分布式的基础架构分析 三、 HDFS的基础架构 四 HDFS集群环境部署 4.1 下载安装包 4.2 集群规划 4.3 上传解压 4.4 配置HDFS集群 4.5 准备数据目录 4.6 分发hadoop到其他服务器 4.7 配置环境变量 4.8 为普通用户授

    2024年02月14日
    浏览(35)
  • 0202hdfs的shell操作-hadoop-大数据学习

    以下命令执行默认配置了hadoop的环境变量,且使用新命令。 一键启停脚本 独立进程启停 2.1 HDFS文件系统基本信息 HDFS作为分布式存储的文件系统,有其对数据的路径表达式。如果熟悉Linux文件系统,可以对比学习。 HDFS同Linux系统一样,均是以/作为根目录的组织形式 如何区分

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包