hadoop基础知识分享(一)

Hadoop 概述

Hadoop 是一个适合海量数据的分布式存储和分布式计算的平台。Hadoop 的处理思想是“分而治之”。Hadoop 主要包含三个核心组件:

  1. HDFS:分布式存储框架,适合海量数据存储
  2. MapReduce:分布式计算框架,适合海量数据计算
  3. YARN:资源调度平台,负责给计算框架分配计算资源

Hadoop 组件介绍

  • HDFS(Hadoop Distributed File System):分布式文件存储系统,采用主从架构,主节点为 NameNode,负责管理文件系统的名称空间和文件的访问;从节点为 DataNode,负责实际数据的存储。
  • MapReduce:一种依赖磁盘 I/O 的批处理计算模型,通过主从结构进行分布式计算。主节点为 MRAppMaster,负责接收任务并调度;从节点执行具体的计算任务。
  • YARN(Yet Another Resource Negotiator):负责资源调度和管理,主节点为 ResourceManager,从节点为 NodeManager。

Hadoop 分布式搭建步骤

  1. 关闭防火墙并设置所有节点名称和相关映射。
  2. 设置免密钥。
  3. 上传 Hadoop 安装包并解压。
  4. 配置环境变量。
  5. 修改配置文件。
  6. 同步文件。
  7. 格式化并启动(仅第一次需要格式化)。

HDFS(Hadoop Distributed File System)

架构与原理

  • 主从结构:HDFS 具有主从架构,主节点(NameNode)负责管理文件系统的元数据,从节点(DataNode)负责存储实际数据。
  • 块(Block):数据以块的形式存储,每个块大小默认 128MB(Hadoop 2.0 以后),块的大小可以通过 hdfs-site.xml 配置。
  • 副本(Replication):为了提高数据的可靠性,HDFS 会将数据块备份到多个 DataNode 上。

元数据管理

  • fsimage:元数据镜像文件,存储某一时段 NameNode 内存元数据信息。
  • edits:操作日志文件,记录新增元信息日志。
  • fstime:保存最近一次 checkpoint 的时间。

SecondaryNameNode 的作用

  • 帮助 NameNode 完成元数据信息的合并。
  • 工作流程:
    1. SecondaryNameNode 向 NameNode 发起 Checkpoint 请求。
    2. 从 NameNode 获取 fsimage 和 edits。
    3. 合并 edits。
    4. 将新的 fsimage 发回给 NameNode。
    5. NameNode 用新的 fsimage 替换旧的 fsimage。

HDFS 读写流程

  • 写流程:客户端将数据写入 HDFS,数据被分成多个块,存储到多个 DataNode 上。
  • 读流程:客户端通过 NameNode 获取块的位置,从对应的 DataNode 读取数据。

YARN(Yet Another Resource Negotiator)

架构

  • 主节点:ResourceManager,负责资源分配和调度。
  • 从节点:NodeManager,负责单节点资源的管理(CPU 和内存)。

Container

  • 定义:Container 是 YARN 中资源的抽象,封装了某个节点上一定量的资源(CPU 和内存)。
  • 作用:Container 由 ApplicationMaster 向 ResourceManager 申请,并在 NodeManager 上运行。

MapReduce

架构

  • 主节点:MRAppMaster,负责接收和调度任务。
  • 从节点:任务执行节点(具体的 Task)。

提交任务步骤

  1. 编写 MapReduce 程序,定义 Mapper 和 Reducer 类。
  2. 编译程序生成 .jar 文件。
  3. 上传数据到 HDFS。
  4. 提交任务:
    hadoop jar your-program.jar YourMainClass -D mapreduce.job.reduces=2 -input /hdfs/input/path -output /hdfs/output/path
    
  5. 查看任务状态:
    yarn application -status <applicationId>
    

Hadoop 命令

集群管理

  • 启动所有进程:
    start-all.sh
    
  • 停止所有进程:
    stop-all.sh
    
  • 启动 HDFS 和 YARN 相关进程:
    start-dfs.sh
    start-yarn.sh
    
  • 停止 HDFS 和 YARN 相关进程:
    stop-dfs.sh
    stop-yarn.sh
    

文件操作

  • 上传文件:
    hdfs dfs -put 本地路径 HDFS路径
    hdfs dfs -copyFromLocal 本地路径 HDFS路径
    
  • 下载文件:
    hdfs dfs -get HDFS路径 本地路径
    hdfs dfs -copyToLocal HDFS路径 本地路径
    
  • 创建目录:
    hdfs dfs -mkdir HDFS路径
    
  • 查看文件内容:
    hdfs dfs -cat HDFS路径
    hdfs dfs -tail HDFS路径
    hdfs dfs -text HDFS路径
    

文件管理

  • 追加内容:
    hdfs dfs -appendToFile 本地路径 HDFS路径
    
  • 删除文件:
    hdfs dfs -rm -r -f HDFS路径
    
  • 复制文件:
    hdfs dfs -cp 源路径 目标路径
    
  • 重命名文件:
    hdfs dfs -mv 源路径 目标路径
    
  • 修改文件权限:
    hdfs dfs -chmod 735 目标路径
    hdfs dfs -chmod -R 735 目标路径
    
  • 查看存储空间:
    hdfs dfs -df
    hdfs dfs -du -h /
    

RPC 协议

  • RPC(Remote Procedure Call)是远程过程调用协议,用于通过网络从远程计算机程序上请求服务,而无需了解底层网络技术。RPC 采用客户端/服务器模式,客户端发送请求,服务器处理请求并返回结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/794216.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鼠标悬停显示的轮播图

今日整理,发现这种轮播图是最难实现的一种, 1.再循环中难以控制单一品类商品显示 解决办法: 在外面的主类里面添加&:hover触发标签属性的更改,这样可以单一作用 2.在循环中触发事件,所有的同一事件都会触发 解决办法:先建立模版控制排版,再从单一内容开始微调 <script s…

如何把网页的公式优雅地拷贝到word中:数学公式识别神器—Mathpix Snip

这个编辑器其实在把chatgpt的公式粘贴到word中时就已经使用了,用的是网页版。 现在下载了软件(但是好像一个月试用期过后得收费?但是就目前来说,体验感真的超级好) 把公式复制粘贴转成mathtype公式 可以截取电脑屏幕上的图像,如果图像上面有公式的话,就会识别,之后可以…

Redis 入门 - 图形化管理工具如何选择,最全分类

Redis图形化管理工具可分为四类:命令行工具、桌面客户端工具、网页工具、插件工具。看看哪一款适合你呢?工欲善其事必先利其器,上一章Redis服务环境已经搭建完成,现在就需要一个趁手的工具,有个好工具可以做到事半功倍。 Redis图形化管理工具五花八门,可供选择的很多,大…

Javaweb-事务

注意在当前窗口是修改了的:而在其他窗口是不修改的:select @@autocommit;修改为手动提交:

格路计数

前言 完全借鉴于 洛谷日报 前提条件 在一个网格图上, 每一次可以从 \((x,y)\) 走到 \((x+1,y-1)\) 或者 \((x+1,y-1)\) 限制是一条直线 \(y=k\) 题外话 我们其实可以发现这和每一次可以从 \((x,y)\) 走到 \((x+1,y)\) 或者 \((x, y+1)\) 限制是一条 \(45\)的斜线 \(y=x+k\) 是等…

9.2-9.8 总结

zhicheng123456做题 因为联考众多,所以说只有不多的做题。主要得知了两个结论:找树剖到根的轻链(动态)的方法和把线段(均匀随机分界点)分为 \(n\) 段的 \(k\) 短值的计算。 联考:https://www.cnblogs.com/british-union/p/liankao.html 还是时常在简单的东西上失败,但是…

第一章预习作业

第一周预习报告 学习内容《WindowsC/C++加密解密实战》第1,2章 第一章概念复习 第二章主要在Linux(Ubuntu,openEuler)上把软件更新到最新版(3.0版本以上),如果默认不是,参考下面脚本。 AI对学习内容的总结 要求 让AI(kimi,元宝等)阅读学习内容并进行总结,教材内容可使…

9月第一周漏洞学习

蜂信物联(FastBee)物联网平台download存在任意文件下载漏洞 漏洞描述 FastBee是一款开源物联网平台,致力于为全球开发者提供稳定、搞笑的物联网解决方案。FastBee在download接口中存在任意文件下载漏洞,可能导致敏感信息泄露、数据盗窃及其他安全风险,从而对系统和用户造成…

AtCoder Beginner Contest 252 A~G 题解

前言这是我第一次写7题(A~G)的ABC题解,若有写得不好或者不到位的地方请多多指教,我将万分感激,感谢大家的支持!A - ASCII code 题目大意 给定正整数\(N\),输出ASCII码是\(N\)的字母。 \(97\le N\le 122\) 输入格式 \(N\) 输出格式 输出ASCII码是\(N\)的字母。 分析 注意…

苯乙烯

周线 日线: 60分钟: 短线看能否走出下跌五浪吧:观望

AtCoder Beginner Contest 205 A~E 题解

A - kcal 题目大意 我们有一种每\(100\)毫升含有\(A\)千卡热量的饮料。\(B\)毫升的这种饮料含有多少千卡热量? \(0\le A, B\le 1000\) 输入格式 \(A~B\) 输出格式 输出\(B\)毫升这种饮料包含的的千卡数。最大允许浮点数精度误差\(10^{-6}\)。 样例\(A\) \(B\) 输出\(45\) \(20…

AtCoder Beginner Contest 196 A~E 题解

A - Difference Max 题目大意 给定四个整数\(a,b,c\)和\(d\)。 我们要选择两个整数\(x\)和\(y\)(\(a\le x\le b\);\(c\le y\le d\))。输出最大的\(x-y\)。 \(-100\le a\le b\le 100\) \(-100\le c\le d\le 100\) 输入格式 \(a~~b\) \(c~~d\) 输出格式 输出最大的\(x-y\)。 样…