hadoop学习笔记

hadoop概述

     Apache Hadoop 为可靠的,可扩展的分布式计算开发开源软件。作为一个数据框架允许使用简单的编程模型跨计算机群集分布式处理大型数据集(海量的数据)。分别由一下三个模块组成:

1、Hadoop分布式文件系统(HDFS):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。

2、Hadoop YARN作业调度和集群资源管理的框架

3、Hadoop MapReduce:一种用于并行处理大型数据集的基于YARN的框架。      

上述每个模块有自己独立的功能,而模块之间又有相互的关联。HADOOP通常是指一个更广泛的概念——HADOOP生态圈。

Hadoop起源

为了解决海量数据的可扩展性问题——“如何解决十亿网页的存储和索引问题”。

2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。

2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为HDFS。

2004年Google又发表了一篇技术学术论文MapReduce。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。

2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。


Hadoop生态圈及各个组件简介 

  1. HDFS:分布式文件系统

  2. MAPREDUCE:分布式运算程序开发框架

  3. HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具

  4. HBASE:基于HADOOP的分布式海量数据库(列式存储)

  5. ZOOKEEPER:分布式协调服务基础组件

  6. Oozie:工作流调度框架

  7. Sqoop:数据导入导出工具

  8. Flume:日志数据采集框架


数据处理流程

采集数据->数据预处理->导入HIVE仓库—>ETL->报表统计——>结果导出导MYSQL->数据可视化

HDFS 简介


特点

1.高可靠性:HADOOP的HA,会有两个namenode,避免了单点故障

2.高效性

3.容错性:hadoop 存储数据是有冗余机制(备份),replication

4.高扩展性:可以添加节点,一种是静态模式,一种是动态模式添加(一边提供服务,一边添加节点数量)

  1. HDFS 的文件在物理上四分块存储的,块的大小可以配置dfs.blocksize

  2. 会给客户端提供一个统一的抽象目标树,

  3. namenode

  4. 文件的各个block的存储管理由DataNode节点承担

  1. hdfs集群的三大角色:namenode(老板) 、secondarynamenode(秘书),datanode(员工)

  2. namenode负责管理整个文件系统的元数据

  3. DataNode负责管理用户的文件数据块

  4. secondarynamenode职责是合并namenode的edit logs 到fsimage文件

  5. 文件会按固定blocksize切成若干份后分布式存储在若干台DataNode上

  6. datanode会定期向namenode汇报自身所保存的block信息(心跳机制),namenode会负责保存文件的副本数量

  7. HDFS的内部工作机制会客户机保持透明,客户端请求访问HDFS都是通过namenode申请来进行的

HDFS的shell


 hadoop fs -ls / #查看目录存储文件
 bin/hdfs dfs -ls /
 ​
 bin/hdfs dfs -cat /wc/input/2.txt #查看文件内容
 hadoop fs -charp -R root /wc #改变文件组属性
 Hadoop fs -chmod 777 文件名
 hadoop fs -chown 改变文件的所有者
 hsdoop fs -put (-copyFromLocal,-moveFromLocal)(可以实现剪切的效果):本地文件上传到HDFS
 hadoop fs -get (-copyTolocal):复制文件到本地路径
 hadoop fs -cp 复制文件
 hadoop fs -du 展示文件大小
 hadoop fs -dus 显示文件大小
 -ls/-lsr 返回文件或目录列表
 -mkdir 创建目录 -p 创建递归目录
 -mv 移动文件或者改名
 -rm(-rmr) 删除文件和递归删除
 -setrep 改变文件的副本数量
 -tail 把文件尾部内容1k字节输出
 -touchz 创建空文件
 -getmerge 将多个文件合并到一个文件

hdfs 的读写机制

HDFS 数据存放策略就是采用同节点与同机架并行的存储方式。在运行客户端的当前节点上存放第一个副本,第二个副本存放在于第一个副本不同的机架上的节点,第三个副本放置的位置与第二个副本在同一个机架上而非同一个节点


HDFS各节点详解

namenode在内存和磁盘中(fsimage和editslog)上分别存在一份元数据镜像文件,内存中元数据镜像保证了HDFS文件系统文件访问效率,磁盘上的元数据文件保证HDFS文件系统的安全。

fsimage:保存文件系统至上次checkpoint为止目录和文件元数据

edits:保存文件系统从上次checkpoint起对HDFS的所有操作记录日志信息

  1. 文件启动

  1. 启动namenode

  2. 读取fsimage元数据镜像文件,加载到内存中

  3. 读取edits日志文件,加载到内存中,使当前内存元数据信息与上次关闭系统时一致,然后 在磁盘上生成一份内存中元数据镜像相同的fsimage文件,同时生成一个新的空的edits文件用于记录以后的HDFS文件系统的更改

  4. 启动datanode

  5. namenode接收datanode发送注册请求

  6. 接收DataNode发送的blockreport

2.namenode 元数据管理

   

         1. 内存镜像=fsimage+edits

         2. edits文件过大将会导致namenode重启速度慢

         3. secondary namenode 负责定期合并他们

3.secondaryNamenode 工作流程

  1. secondary通知Namenode切换Edits文件

  2. secondary通过HTTP请求从namenode获得fsimage和edits文件

  3. secondary将fsimage载入内存,然后合并edits

  4. secondary将新的fsimage发回给Namenode,用新的fsimage替换旧的

datanode进程死亡或者网络故障造成datanode无法与namenode通信,namenode不会立即把该节点判定为死亡,要经过一段时间,这段时间暂称作超时时长

HDFS默认的超时时长为10分钟+30秒。如果定义超时时间为timeout,则超时时长的计算公式为: timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval 而默认的heartbeat.recheck.interval 大小为5分钟,dfs.heartbeat.interval默认为3秒。

需要注意的是hdfs-site.xml 配置文件中的heartbeat.recheck.interval的单位为毫秒,dfs.heartbeat.interval的单位为秒。所以,举个例子,如果heartbeat.recheck.interval设置为5000(毫秒),dfs.heartbeat.interval设置为3(秒,默认),则总的超时时间为40秒。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flink join的分类

带窗口的join 下图是固定窗口,同样的还有滑动窗口和会话窗口join DataStream<Integer> orangeStream = ...; DataStream<Integer> greenStream = .

报表生成器FastReport .Net用户指南:关于脚本(下)

FastReport的报表生成器&#xff08;无论VCL平台还是.NET平台&#xff09;&#xff0c;跨平台的多语言脚本引擎FastScript&#xff0c;桌面OLAP FastCube&#xff0c;如今都被世界各地的开发者所认可&#xff0c;这些名字被等价于“速度”、“可靠”和“品质”,在美国&#xff…

走进redisson

这里作者将大家走进redisson&#xff0c;读完这篇相信加深你对redisson的获取锁&#xff0c;重入&#xff0c;超时&#xff0c;看门狗&#xff0c;发布订阅等原理和功能的理解。 本文将深入原理代码&#xff0c;给出每行代码的意义以及最后的效果&#xff0c;过程有些枯燥&…

GitHub Copilot怎么取消付费?

0. 前言 GitHub Copilot非常好用&#xff0c;还没有使用过的同学可以参考教程白嫖一个月&#xff1a;【保姆级】VsCode 安装GitHub Copilot实操教程 GitHub Copilot每月10美元的费用对于一些用户来说可能是一笔不小的开销。如果你已经完成了GitHub Copilot的免费试用&#xf…

在conda下的sklearn库安装

比较坑的是它这个库在conda下不叫这个名字&#xff0c;所以直接conda install sklearn是不行的&#xff0c;输入下面的指令就能直接安装啦。 conda install scikit-learn

【数据结构】猛猛干7道链表OJ

前言知识点 链表的调试技巧 int main() {struct ListNode* n1(struct ListNode*)malloc(sizeof(struct ListNode));assert(n1);struct ListNode* n2(struct ListNode*)malloc(sizeof(struct ListNode));assert(n2);struct ListNode* n3(struct ListNode*)malloc(sizeof(struc…

docker方式进行pytorch多机多卡分布式训练

docker ip共享与gpu指定 1)ip共享 docker网络有多种,这里选择host直接用宿主机的ip 2)指定gpu docker方式进行pytorch多机多卡分布式训练 nvidia docker 容器介绍链接:https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/ docker用的nvidia官方镜像…

练习11 Web [极客大挑战 2019]Http

页面没有上传文件的地方&#xff0c;尝试查看前端源码中有没有任何内容&#xff0c;以及Fuzz手段查找php文件进行重放改包 本题要点&#xff1a; 伪造请求域名&#xff08;Referer&#xff09;&#xff0c;伪造浏览器标识&#xff08;User-Agent&#xff09;&#xff0c;伪造IP…

QT(6.5) cmake构建C++编程,调用python

一、注意事项 explicit c中&#xff0c;一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数)&#xff0c;承担了两个角色&#xff0c;构造器、类型转换操作符&#xff0c; c提供关键字explicit&#xff0c;阻止转换构造函数进行的隐式转换的发生&#…

vue3 + ts +element-plus + vue-router + scss + axios搭建项目

本地环境&#xff1a; node版本&#xff1a;20.10.0 目录 一、搭建环境 二、创建项目 三、修改页面 四、封装路由vue-router 五、element-plus 六、安装scss 七、封装axios 一、搭建环境 1、安装vue脚手架 npm i -g vue/cli 2、查看脚手架版本 vue -V3、切换路径到需…

DC-1靶场

一.环境搭建 下载地址 http://www.five86.com/downloads/DC-1.zip 把桥接设置为nat模式&#xff0c;打开靶机的时候会提示几个错误&#xff0c;点击重试即可 启动靶机&#xff0c;如下图所示即可 二.开始打靶 1.信息收集 arp-scan -l 扫描跟kali&#xff08;攻击机&…

李宏毅深度强化学习导论——基本概念

引言 这是李宏毅老师深度强化学习视频的学习笔记&#xff0c;主要介绍强化学习的基本概念&#xff0c;从直观的角度去教大家如何理解强化学习的知识而不是理论的角度&#xff0c;所以包含的数学公式不多。 什么是强化学习 我们知道监督学习需要人类给机器一个标签&#xff0c…

Docker专题-04 Nginx部署

Docker专题-04 Nginx部署 注&#xff1a; 本教程由羞涩梦整理同步发布&#xff0c;本人技术分享站点&#xff1a;blog.hukanfa.com 转发本文请备注原文链接&#xff0c;本文内容整理日期&#xff1a;2024-03-21 csdn 博客名称&#xff1a;五维空间-影子&#xff0c;欢迎关注…

3.windows下Ubuntu,sratoolkit软件,从ncbi的sra数据库下载数据。

NCBI的SRA&#xff08;Sequence Read Archive&#xff09;数据库是一个公共数据库&#xff0c;用于存储高通量测序数据&#xff0c;包括基因组、转录组和表观基因组等数据。研究人员可以在SRA数据库中找到各种生物样本的测序数据&#xff0c;并进行检索、下载和分析。 在NCBI的…

启扬RK3568核心板,助力外科手术机器人迈向智能诊疗之路

外科手术机器人是将机器人技术与外科手术相结合的高端医疗装备&#xff0c;可以帮助医生制定手术计划&#xff0c;提高手术过程中的准确度&#xff0c;并将传统技术转化为数字程序。通过利用机械控制、视觉成像、光电技术、人工智能等技术&#xff0c;外科手术机器人在医疗领域…

全国产飞腾+FPGA架构,支持B码+12网口+多串电力通讯管理机解决方案

行业痛点: 中国的电力网络已经成为当今世界覆盖范围最广、结构最为复杂的人造科技系统。随着国家和各部委颁布了一系列法律法规&#xff0c;如国家颁布的《中华人民共和国网络安全法》、工信部颁布的《工业控制系统信息安全防护指南》、发改委颁布的14号令《电力监控系统安全防…

动态规划课堂7-----两个数组的dp问题(等价代换)

目录 引言&#xff1a; 例题1&#xff1a;最长公共子序列 例题2&#xff1a;不同的子序列 例题3&#xff1a;通配符匹配 例题4&#xff1a;正则表达式 结语&#xff1a; 引言&#xff1a; 本节我们就要进入两个数组的dp问题的学习&#xff0c;通过前面几个章节的学习&…

深入剖析JavaScript引擎的工作原理

文章目录 导文什么是JavaScript引擎的工作原理&#xff1f;1. 解析阶段解析器&#xff08;Parser&#xff09; 2. 编译阶段3. 执行阶段解释器&#xff08;Interpreter&#xff09;优化器&#xff08;Optimizer&#xff09; 4. 垃圾回收阶段垃圾回收器 其他 导文 JavaScript引擎…

如何用SCSS制作小铃铛振动/震动/摇晃/晃动的特效/效果?

放大了看效果 ​​​​​​​​​​​​​​ // 摇晃小铃铛振动/震动/摇晃/晃动的特效/效果---------------------------------------- [sg-shaking] {display: inline-block;transform-origin: center top;animation: sg-shaking 1s alternate forwards; }keyframes sg-shaki…

【Apache ShenYu源码】如何实现负载均衡模块设计

ShenYu是一个异步的&#xff0c;高性能的&#xff0c;跨语言的&#xff0c;响应式的 API 网关。有关ShenYu的介绍可以戳这。 一、前瞻 今天我们尝试不同的代码阅读方式&#xff0c;按模块来去阅读源码&#xff0c;看看效果如何。 本次阅读锁定在shenyu-loadbalancer&#xf…