首页 > 其他分享 >hadoop学习记录

hadoop学习记录

时间:2023-04-07 12:11:54浏览次数:26  
标签:HDFS fs 记录 hadoop Hadoop 学习 集群 文件

Hadoop简介安装

狭义上Hadoop指的是Apache软件基金会的一款开源软件用java语言实现,开源允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理

Hadoop核心组件

  • Hadoop HDFS(分布式文件存储系统):解决海量数据存储
  • Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度****
  • Hadoop MapReduce(分布式计算框架):解决海量数据计算

Hadoop之父:Doug Cutting
遇到瓶颈:如何解决数十亿网页的存储和索引问题
源自Google三篇论文

Hadoop集群包括两个集群:

两个集群逻辑上分离、通常物理上在一起
两个集群都是标准的主从架构集群

  • HDFS集群
  • YARN集群

首次启动HDFS时,必须对其进行格式化操作。
format本质上是初始化工作,进行HDFS清理和准备工作
命令:
hdfs namenode -format
每台机器上每次手动启动关闭一个角色进程,可以精准控制每个进程启停,避免群起群停。

  • HDFS集群

hadoop3.x版本命令
hdfs --daemon start|stop namenode|datanode|secondarynamenode

  • YARN集群

hadoop3.x版本命令
yarn --daemon start|stop resourcemanager|nodemanager

shell脚本一键启停

在node1上,使用软件自带的shell脚本一键启动。前提:配置好机器之间的SSH免密登录和
workers文件。

  1. HDFS集群
start-dfs.sh 
stop-dfs.sh
  1. YARN集群
start-yarn.sh
stop-yarn.sh
  1. Hadoop集群
start-all.sh
stop-all.sh

启动完毕之后可以使用jps命令查看进程是否启动成功
web界面:

  • HDFS集群:http://namenode_host:9870
  • YARN集群:http://resourcemanager_host:8088

HDFS shell命令:

HDFS Shell CLI支持操作多种文件系统,包括本地文件系统(file:///)、分布式文件系统(hdfs://nn:8020)等
具体操作的是什么文件系统取决于命令中文件路径URL中的前缀协议。
如果没有指定前缀,则将会读取环境变量中的fs.defaultFS属性,以该属性值作为默认文件系统。

hadoop fs -ls file:/// #操作本地文件系统
hadoop fs -ls hdfs://node1:8020/ #操作HDFS分布式文件系统
hadoop fs -ls / #直接根目录,没有指定协议 将加载读取fs.defaultFS值
hadoop fs -mkdir [-p] <path> ... 
path 为待创建的目录
-p选项的行为与Unix mkdir -p非常相似,它会沿着路径创建父目录。
hadoop fs -ls [-h] [-R] [<path> ...]
path 指定目录路径
-h 人性化显示文件size
-R 递归查看指定目录及其子目录
hadoop fs -put [-f] [-p] <localsrc> ... <dst>
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限。
localsrc 本地文件系统(客户端所在机器)
dst 目标文件系统(HDFS)
hadoop fs -cat <src> ... 
hadoop fs -get [-f] [-p] <src> ... <localdst>
下载文件到本地文件系统指定目录,localdst必须是目录
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限
hadoop fs -cp [-f] <src> ... <dst>
-f 覆盖目标文件(已存在下)
hadoop fs -appendToFile <localsrc> ... <dst>
将所有给定本地文件的内容追加到给定dst文件。
dst如果文件不存在,将创建该文件。
如果<localSrc>为-,则输入为从标准输入中读取。
hadoop fs -mv <src> ... <dst>
移动文件到指定文件夹下
可以使用该命令移动数据,重命名文件的名称

HDFS

文件系统与分布式文件系统,HDFS简介,HDFS重要特性等

HDFS简介
HDFS主要是解决大数据如何存储问题的。分布式意味着是HDFS是横跨在多台计算机上的存储系统。
HDFS是一种能够在普通硬件上运行的分布式文件系统,它是高度容错的,适应于具有大数据集的应用程序,它非
常适于存储大型数据 (比如 TB 和 PB)。
HDFS使用多台计算机存储文件, 并且提供统一的访问接口, 像是访问一个普通文件系统一样使用分布式文件系统

整体概述

  • 主从架构

HDFS集群是标准的master/slave主从架构集群。
一般一个HDFS集群是有一个Namenode和一定数目的Datanode组成。
Namenode是HDFS主节点,Datanode是HDFS从节点,两种角色各司其职,共同协调完成分布式的文件存储服
务。
官方架构图中是一主五从模式,其中五个从角色位于两个机架(Rack)的不同服务器上。

  • 分块存储

HDFS中的文件在物理上是分块存储(block)的,默认大小是128M(134217728),不足128M则本身就是一块
块的大小可以通过配置参数来规定,参数位于hdfs-default.xml中:dfs.blocksize。

  • 副本机制

文件的所有block都会有副本。副本系数可以在文件创建的时候指定,也可以在之后通过命令改变
副本数由参数dfs.replication控制,默认值是3,也就是会额外再复制2份,连同本身总共3份副本

  • 元数据记录

在HDFS中,Namenode管理的元数据具有两种类型:

  1. 文件自身属性信息
    文件名称、权限,修改时间,文件大小,复制因子,数据块大小。
  2. 文件块位置映射信息
    记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上。
  • 抽象统一的目录树结构(namespace)

HDFS集群角色与职责
namenode职责

  • NameNode仅存储HDFS的元数据:文件系统中所有文件的目录树,并跟踪整个集群中的文件,不存储实际数据。
  • NameNode知道HDFS中任何给定文件的块列表及其位置。使用此信息NameNode知道如何从块中构建文件。
  • NameNode不持久化存储每个文件中各个块所在的datanode的位置信息,这些信息会在系统启动时从DataNode
  • 重建。
  • NameNode是Hadoop集群中的单点故障。
  • NameNode所在机器通常会配置有大量内存(RAM)。

datanode职责

  • DataNode负责最终数据块block的存储。是集群的从角色,也称为Slave。
  • DataNode启动时,会将自己注册到NameNode并汇报自己负责持有的块列表。
  • 当某个DataNode关闭时,不会影响数据的可用性。 NameNode将安排由其他DataNode管理的块进行副本复制
  • DataNode所在机器通常配置有大量的硬盘空间,因为实际数据存储在DataNode中。

写数据完整流程:

  • 通过pipeline管道客户端将数据块写入第一个数据节点,第一个数据节点保存数据之后再将块复制到第二个数据节点,后者保存后将
    其复制到第三个数据节点。使用反方向ack校验,默认3副本策略。

标签:HDFS,fs,记录,hadoop,Hadoop,学习,集群,文件
From: https://www.cnblogs.com/do-ma/p/17295700.html

相关文章

  • 迁移学习《Efficient and Robust Pseudo-Labeling for Unsupervised Domain Adaptatio
    论文信息论文标题:EfficientandRobustPseudo-LabelingforUnsupervisedDomainAdaptation论文作者:HochangRhee、NamIkCho论文来源:2019——ICML论文地址:download 论文代码:download视屏讲解:click1摘要问题:无监督域适应传统方法将超过一定置信度阈值的数据视为目标域......
  • ORM相关学习记录
    1.orm项目1.1安装ormpipinstallmysqlclient如果windows安装报错后,使用whl安装下载地址:https://pypi.org/project/mysqlclient/#files找到对应python版本的wheel包,然后进行安装,可把包放到scripts目录中执行:pip3.7installmysqlclient-2.1.0-cp37-cp37m-win_amd64.whl1.2......
  • OpenAI Python API 训练营:学习使用 AI、GPT3 等!
    OpenAIPythonAPI训练营:学习使用AI、GPT3等!使用OpenAI强大的API在项目中生成文本和图像,探索人工智能的力量课程英文名:OpenAIPythonAPIBootcampLearntouseAI,GPT3,andmore!此视频教程共3.24GB,中英双语字幕,画质清晰无水印,源码附件全课程地址:https://xueshu.f......
  • 今天学习了html
    我是标题<html> <head> <title>我是标题</title> </head> <body> <h1> 我是1号标题 </h1> </body></html>以上就是我今天学习的html代码总结html应该控制下字符集,防止乱码html应该有个标题,titlehtml的标签有一定意义,大家不要创造标签......
  • 【C#学习】--委托
    .1委托.1.1概述委托(代理)关键字delegate,是一种程序特性,它是用来代表方法、表示方法的,用编程里的另一个说法:委托是方法的指针。我们首先看看通常的声明语法:intage=10;//这里整型变量age代表的是10这个整型值CoursemyCourse=newCourse();//这里将Course类实例化......
  • 《3D编程模式》写书-第2次记录
    大家好,目前我已经完成了“拼接模式”、“撤销重做模式”、“ECS模式”的初稿下面会给出它们的使用场景,如果您正好能用到,请联系我提前阅读模式的初稿,欢迎大家给出反馈建议,您的大名有机会出现在《3D编程模式》的书中,感谢!我的QQ号:395976266我的微信号:chaogex这里是所有的的写书......
  • 自建基于Hadoop+Hive+Spark的离线数仓总结
    整体架构图 服务台账 hadoop1hadoop2hadoop3 172.23.112.160172.23.112.161172.23.112.162HDFSNameNodeDataNodeHDFSNameNodeHTTPUI:9870HDFSDataNodeHTTPUI:9864DataNodeSecondaryNameNodeDataNode http://hadoop1:9870/dfshealth.html#tab-o......
  • 大神之路-起始篇 | 第4章.计算机科学导论之【数据运算】学习笔记
    [点击......
  • 记录一次免费云主机的白嫖经历
    地点:https://www.sanfengyun.com步骤:1.进入网站2.登录3.完成实名制4.首页找到免费云服务器 5.找到免费开通(按照流程走) 6.申请成功后安装好自己需要的系统   7.安装成功后,使用公网ip,系统账号密码就能远程ssh连接使用感受:整体来说就是免费云服务器,性能和花......
  • Algorithm参数记录
    一、vector<Point2f>vector是一个存储二维点坐标的容器,其中每个元素都是一个Point2f类型的对象。在OpenCV中,Point2f表示一个由两个单精度浮点数构成的二维点坐标。你可以使用vector来存储一些二维坐标信息,比如图像中的关键点或轮廓点等。具体用法可以参考下面的示例:#include<o......