当前位置: 首页 > news >正文

hadoop-HDFS

1.HDFS简介

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

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

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

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

hadoop fs -rm -r /sanguo

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

(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目录下

4. Java实现HDFS文件读写

4.1  创建maven工程,quickstart工程

(1)配置依赖

<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

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;@Beforepublic void init() throws IOException {//构造一个配置参数对象,设置参数 要访问的hdfs的urlConfiguration conf = new Configuration();//指定使用hdfs访问conf.set("fs.defaultFS","hdfs://kb129:9000");System.setProperty("HADOOP_USER_NAME","root");hdfs = FileSystem.get(conf);}//上传本地文件到hdfs@Testpublic 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下载文件到本地@Testpublic void downloadFile() throws IOException {Path localFilePath = new Path("D:\\tttttmmmmmppppp");Path hdfsPath = new Path("/services.txt");//下载hdfs.copyToLocalFile(hdfsPath,localFilePath);System.out.println("下载成功");}@Afterpublic void close() throws IOException{hdfs.close();}
}

相关文章:

hadoop-HDFS

1.HDFS简介 2.1 Hadoop分布式文件系统-HDFS架构 2.2 HDFS组成角色及其功能 &#xff08;1&#xff09;Client&#xff1a;客户端 &#xff08;2&#xff09;NameNode (NN)&#xff1a;元数据节点 管理文件系统的Namespace元数据 一个HDFS集群只有一个Active的NN &#xff…...

0202hdfs的shell操作-hadoop-大数据学习

文章目录 1 进程启停管理2 文件系统操作命令2.1 HDFS文件系统基本信息2.2 介绍2.3 创建文件夹2.4 查看指定文件夹下的内容2.5 上传文件到HDFS2.6 查看HDFS文件内容2.7 下载HDFS文件2.8 HDFS数据删除操作 3 HDFS客户端-jetbrians产品插件3.1 Big Data Tools 安装3.2 配置windows…...

生活小记-挂号信

"挂号信"通常指的是在邮寄过程中通过挂号邮寄服务寄送的信件&#xff0c;相对于普通信件有一些特殊的特点和服务。以下是挂号信与其他信件&#xff08;例如普通信件&#xff09;之间的区别&#xff1a; 跟踪和确认&#xff1a; 挂号信&#xff1a;通过挂号邮寄服务寄…...

3D点云处理:基于PCA的计算点云位姿(占位待整理)

文章目录 文章目录&#xff1a;3D视觉个人学习目录微信&#xff1a;dhlddxB站: Non-Stop_...

本地私有仓库、harbor私有仓库部署与管理

本地私有仓库、harbor私有仓库部署与管理 一、本地私有仓库1.本地私有仓库简介2.搭建本地私有仓库3.容器重启策略介绍 二、harbor私有仓库部署与管理1.什么是harbor2.Harbor的特性3.Harbor的构成4.harbor部署及配置5.客户端测试 三、Harbor维护1.创建2.普通用户操作私有仓库3.日…...

尚硅谷SpringMVC (5-8)

五、域对象共享数据 1、使用ServletAPI向request域对象共享数据 首页&#xff1a; Controller public class TestController {RequestMapping("/")public String index(){return "index";} } <!DOCTYPE html> <html lang"en" xmln…...

jupyter notebook中查看python版本的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

动态字符串 String (完整源码)

C自学精简教程 目录(必读) C数据结构与算法实现&#xff08;目录&#xff09; 本文的实现基本上和 动态数组 vector 是一样的。 因为大部分接口都一样。 所以&#xff0c;本文就直接给出全部的源码和运行结果。 //------下面的代码是用来测试你的代码有没有问题的辅助代码…...

【深度学习】实验05 构造神经网络示例

文章目录 构造神经网络1. 导入相关库2. 定义一个层3. 构造数据集4. 定义基本模型5. 变量初始化6. 开始训练 构造神经网络 注明&#xff1a;该代码用来训练一个神经网络&#xff0c;网络拟合y x^2-0.5noise&#xff0c;该神经网络的结构是输入层为一个神经元&#xff0c;隐藏层…...

用了这么久SpringBoot却还不知道的一个小技巧

前言 你可能调第三方接口喜欢启动application&#xff0c;修改&#xff0c;再启动&#xff0c;再修改&#xff0c;顺便还有个不喜欢写JUnitTest的习惯。 你可能有一天想要在SpringBoot启动后&#xff0c;立马想要干一些事情&#xff0c;现在没有可能是你还没遇到。 那么SpringB…...

Websocket、SessionCookie、前端基础知识

目录 1.Websocket Websocket与HTTP的介绍 不同使用场景 Websocket链接过程 2.Session&Cookie Cookie的工作原理 Session的工作原理 区别 3.前端基础知识 1.Websocket Websocket与HTTP的介绍 HTTP&#xff1a; 1.HTTP是单向的&#xff0c;客户端发送请求&#xff0…...

【云原生进阶之PaaS中间件】第一章Redis-2.4缓存更新机制

1 缓存和数据库的数据一致性分析 1.1 Redis 中如何保证缓存和数据库双写时的数据一致性&#xff1f; 无论先操作db还是cache&#xff0c;都会有各自的问题&#xff0c;根本原因是cache和db的更新不是一个原子操作&#xff0c;因此总会有不一致的问题。想要彻底解决这种问题必须…...

Qt——事件处理详解

Qt事件处理 一、事件基础 事件是Qt应用程序中的基本构建块&#xff0c;它们代表了一些特定的行为或状态变化。事件可以是鼠标点击、键盘输入、窗口大小改变、定时器事件等。每个事件都是一个对象&#xff0c;继承自QEvent类。 二、事件常见类型 Qt中的事件分为多种类型&…...

基于位置管理的企业员工考勤打卡系统设计 微信小程序

员工考勤打卡系统设计app是针对员工必不可少的一个部分。在公司发展的整个过程中&#xff0c;员工考勤打卡系统设计app担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类员工考勤打卡系统设计app程序也在不断改进。本课题所设计的 MVC基于HBuilder X的员工考勤…...

adb 查找应用包名,应用 Activity 等信息

列出设备上的包 不使用参数&#xff1a;adb shell pm list packages&#xff0c;打印设备/模拟器上的所有软件包 根据包名查看应用的activity 命令&#xff1a; dumpsys package 包名 adb shell dumpsys package 包名 petrel-cv96d:/data/app # dumpsys package com.instal…...

八、SpringBoot集成Kafka

目录 一、添加依赖二、SpringBoot 生产者三、SpringBoot 消费者 一、添加依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><depend…...

联网智能实时监控静电离子风机的工作流程

联网智能实时监控静电离子风机是通过将静电离子风机与互联网连接&#xff0c;实现对其状态和性能的远程监控和管理。 具体实现该功能的方法可以包括以下几个步骤&#xff1a; 1. 传感器安装&#xff1a;在静电离子风机上安装适当的传感器&#xff0c;用于感知相关的参数&…...

第12章 微信支付

mini商城第12章 微信支付 一、课题 微信支付 二、回顾 1、分布式事务 2、分布式事务理论 3、掌握分布式事务解决方案模型 4、能基于Seata解决强一致性分布式事务 5、能基于RocketMQ解决柔性事务 三、目标 1、密码安全学 摘要加密 Base64 对称加密 2、微信支付 微信支…...

Java基础二十二(对集合元素排序比较)

对集合元素排序比较 1. 使用 Comparable 接口实现默认排序 Comparable 是 Java 中的一个接口&#xff0c;用于定义对象之间的排序规则。 实现了 Comparable 接口的类可以比较其对象的大小&#xff08;包装类都实现了该接口&#xff09;&#xff0c;从而可以在集合类&#xf…...

(15)线程的实例认识:同步,异步,并发,并发回调,事件,异步线程,UI线程

参看&#xff1a;https://www.bilibili.com/video/BV1xA411671D/?spm_id_from333.880.my_history.page.click&vd_source2a0404a7c8f40ef37a32eed32030aa18 下面是net framework版本 一、文件构成 1、界面如下。 (1)同步与异步有什么区别&#xff1f; …...

LinkSwift网盘直链助手:让你的下载体验更简单高效

LinkSwift网盘直链助手&#xff1a;让你的下载体验更简单高效 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

Vue3 表单深度解析

Vue3 表单深度解析 引言 随着前端技术的发展,Vue.js 已经成为最受欢迎的前端框架之一。Vue3 作为 Vue.js 的最新版本,带来了许多改进和新特性。其中,表单处理是 Vue3 中一个非常重要的部分。本文将深入解析 Vue3 表单的用法、特点以及最佳实践。 Vue3 表单概述 在 Vue3 …...

【图像增强】基于Grünwald–Letnikov和Riesz分数阶算子的四种分数阶PDE图像增强算法的MATLAB实现

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

自主Agent的下一代智能系统

如果说上一代AI是“单打独斗”的数字大脑&#xff0c;那么自主Agent&#xff08;智能体&#xff09;的下一代——“人机环境系统智能”&#xff0c;就是“人机共生”的实体生态。它标志着AI正在从虚拟的比特世界&#xff0c;跨越到与人类、物理环境深度融合的现实世界。我们可以…...

LabVIEW项目实战:用‘类+队列’模式管理仪器参数,告别全局变量混乱

LabVIEW工程实践&#xff1a;基于类与队列的仪器参数管理框架设计 在工业自动化测试系统中&#xff0c;仪器参数管理一直是困扰工程师的典型难题。当系统需要同时控制网口、串口、GPIB等多种接口的测试设备时&#xff0c;传统的全局变量方案会导致参数耦合、修改不同步等问题。…...

企业级融媒体生产管理平台/智能会议管理系统EasyDSS构建一体化应急视频指挥体系

在自然灾害、安全生产事故等突发事件处置中&#xff0c;应急指挥的核心诉求是数据绝对安全、指令极速传递、态势全面感知。私有化视频会议系统EasyDSS打破传统协作壁垒&#xff0c;为应急指挥打造专属化、高可靠的音视频中枢&#xff0c;成为应急处置的核心技术支撑。一、私有化…...

One API 部署教程(下):使用指南

导读:前面两篇讲了本地和线上部署,现在 One API 已经跑起来了,接下来就是真正的使用环节! 理解核心概念 在开始之前,咱们先搞清楚几个关键概念,不然后面容易晕。 渠道(Channel):就是你的各个 AI 平台的 API Key。比如你有 DeepSeek 的 Key、OpenAI 的 Key、通义千问…...

QQ音乐解析终极指南:如何免费获取全网音乐资源

QQ音乐解析终极指南&#xff1a;如何免费获取全网音乐资源 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic 你是否厌倦了音乐平台的层层限制&#xff1f;想要畅听所有歌曲却不想支付高昂的会员费&#xff1f;Q…...

当贝盒子H5 64G版618首销TOP1!多平台登顶,凭什么这么火?

2026年5月14日&#xff0c;当贝官方发布了618抢先购首日当贝盒子H5 64G版的首销战报。据官方数据显示&#xff0c;这款重磅升级的电视盒子在京东、天猫、抖音三大主流电商平台的电视盒子类目热销榜中&#xff0c;全部拿下TOP1席位&#xff0c;成为今年618大促第一天的现象级爆款…...

FFXIV TexTools:如何用3个步骤打造你的专属艾欧泽亚冒险形象

FFXIV TexTools&#xff1a;如何用3个步骤打造你的专属艾欧泽亚冒险形象 【免费下载链接】FFXIV_TexTools_UI 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_TexTools_UI 想象一下&#xff0c;你站在艾欧泽亚的冒险广场上&#xff0c;周围的玩家都穿着独特的装备…...