HDFS入门--学习笔记

news2024/11/15 15:43:36

1,大数据介绍

定义

数据指的是:一种可以被鉴别的、对客观事件进行记录的符号,除了可以是最简单的
数字外,也可以是各类符号、文字、图像、声音等。
通俗地说,数据就是对人类的行为及发生事件的一种记录。

存在的价值

数据的背后都会隐藏着巨大的商业价值,而有了丰富的数据支撑,也可以让我们更好
的了解:事物在现实世界的运行规律。
当下时代已经是数据的时代,数据非常重要并且蕴含巨大的价值。
大数据技术栈是对超大规模的海量数据,进行处理并挖掘出数据背后价值的技术体系。

什么是大数据

①大数据的出现,本质上是为了解决海量数据的处
理难题。 即:使用分布式技术完成海量数据的处理,得到数据背后蕴含的价值。 狭义的(技术思维的)
②(1)海量的数据
数字时代人人联网,日常活动产生的数据记录是海量的,背后蕴含的价值也是巨大
的。
(2)基础设施
大数据在技术上,是数字化时代的基础设施。数字化时代的发展离不开大数据技术的
支撑。
(3)生活
警务、政务、工业、电商、金融、能源、物流、通讯、科研、教育等等,大数据甚至已经渗入了生活的方方面面。
狭义上:大数据是一类技术栈,是一种用来处理海量数据的软件技术体系。
广义上:大数据是数字化时代、信息化时代的基础(技术)支撑,以数据为基础,为生活赋能
③大数据的特点及应用
Volume:数据体量大;采集数据量大、存储数据量大、计算数据量大、TB/PB级别起步;
Variety:种类、来源多样化;结构化、半结构化、非结构化、来源:日志文本、图片、音频、视频;
Value:低价值密度;信息海量但是价值密度低、深度复杂挖掘分析需要机器学习参与;
Velocity:速度快;数据增长速度快、获取数据速度快、数据处理速度快;
Veracity:数据的质量;数据的准确性、数据的可信赖度。

大数据的应用场景

(1)电商方面
精准广告位,通过对用户的浏览行为、点击行为等进行大数据采集,分析,挖掘用户的二层三层喜欢,扩大产出。
(2)传媒方面
猜你喜欢,通过对受众人群进行大数据分析,结合对应算法,对受众喜欢度进行交互推荐。
(3)金融方面
在投资理财中,通过对个人的信用评估、风险承担能力评估,集合众多理财产品、推荐相应的投资理财产品。
(4)交通方面
目前,交通的大数据应用主要在两个方面:预测车流量,并进行路线规划;利用大数据来实现即时信号灯调度,提高已有线路通行能力。
(5)电信方面
在智慧营业厅里,通过对用户当前的行为习惯、偏好,节假日的相应数据变化,调整自身业务结构,做到按需分配。
(6)安防方面
通过人脸识别,匹配,存储用户数据,结合人工智能,分析及甄别用户行为,预防犯罪行为的发生。

2,分布式

定义:分布式是指将多台服务器集中在一起,每台服务器都实现总体中的不同业务,做不同的事情
理解:单机模式:一台计算机完成所有事。可理解为:一个餐厅的厨房只有一个人,这个人既要买菜、又要切菜、还要炒菜,效率很低!
分布式模式:多台电脑完成不同事。可理解为:一个餐厅的厨房有三个人,一个人买菜、一个人切菜、一个人炒菜,效率提高了!

1,分布式存储

大型网站常常需要处理海量数据,单台计算机往往无法提供足够的内存空间。此时,可以对这些数据进行分布式存储,比如Apache Hadoop HDFS。

2,分布式计算

(b)分布式计算
随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。
分布式计算将该应用分解成各个小部分,并分配给多台计算机进行处理。
这样可以节约整体计算时间,大大提高计算效率,比如 Apache Hadoop MapReduce。

3,集群

定义:集群指的是多台不同的服务器中部署有相同应用或服务模块。当在多台不同的服务器中,部署有相同应用或服务模块时,就构成了一个集群。集群往往需要通过负载均衡,来对外提供服务。
【负载均衡就是一种计算机网络技术,用来在计算机集群、网络连接、CPU、磁盘或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间,同时避免过载的目的。】
1,思考:比如,要让众多的服务器一起工作,该如何保证高效且不出问题呢?
答:在大数据体系中,分布式的调度主要有两类架构模式:去中心化模式、中心化模式。
(1)去中心化模式:没有明确的中心服务器,而它们之间基于特定规则进行同步协
调。
(2)中心化模式:以某个服务器为中心,协调调度其他服务器一起工作。
我们学习的Hadoop框架,就是一个典型的主从模式(中心化模式)架构的大数据技
术框架。

2,分布式和集群的区别
分布式:多台服务器做着不同的任务合力完成一件事情;
集群:多台服务器做着相同的任务完成一件事。

3,Hadoop框架概论

存在的意义:大数据的核心工作,其实就是:从海量的高增长、多类别、低信息密度的数据中,挖
掘出高质量的结果。
工作分类
(1)数据存储:可以妥善存储海量的待处理数据;
(2)数据计算:可以从海量数据中,计算出背后的价值;
(3)数据传输:协助在各个环节中,完成海量数据的传输。

1,数据存储

[A] Apache Hadoop - HDFS
Apache Hadoop框架内的组件HDFS是大数据体系中使用最为广泛的分布式存储技
术。

[B]Apache Hbase
Apache HBase是大数据体系内使用非常广泛的NoSQL KV型数据库技术,而HBase
是基于HDFS基础上构建的。
[C] Apache Kudu
Apache Kudu同样为大数据体系中使用较多的分布式存储引擎。
[D] 云平台存储组件
除此以外,各大云平台厂商也有相应的大数据存储组件,比如阿里云的OSS、
UCloud的US3、AWS的S3、金山云的KS3等等。

2,数据计算

[A] Apache Hadoop - MapReduce
Apache Hadoop的MapReduce组件是最早一代的大数据分布式计算引擎,对大数据的发展做出了卓越的贡献。
[B] Apache Hive
Apache Hive是一款以SQL为主要开发语言的分布式计算框架。其底层使用了Hadoop的MapReduce技术。Apache Hive至今仍活跃在大数据一线,被许多公司使用。
[C] Apache Spark
Apache Spark是目前全球范围内最火热的分布式内存计算引擎,目前,Spark也是大数据体系中的明星计算产品。
[D] Apache Flink
Apache Flink同样也是一款明星级的大数据分布式内存计算引擎,侧重于流批一体化处理。特别是在实时计算(流计算)领域占据了大多数的国内市场。

3,数据传输

[A] Apache Sqoop
Apache Sqoop是一款ETL工具,可以协助大数据体系和关系型数据库之间进行数据传输
[B] Apache Flume
Apache Flume是一款流式数据采集工具,可以从非常多的数据源中,完成数据采集传输的任务。
[C] Apache Kafka
Apache Kafka是一款分布式的消息系统,可以完成海量规模的数据传输工作。目前,Kafka在大数据领域也是明星产品。
[D] Apache Pulsar
Apache Pulsar同样是一款分布式的消息系统。在大数据领域同样有非常多的使用者。

3.1Hadoop 介绍

背景:Hadoop是一个用Java语言实现存储、计算大规模数据的开源软件框架,目前,属于
Apache旗下。Hadoop是Apache Lucene创始人Doug Cutting(道·卡廷)创建的,最早起源一个
Nutch项目。
1,Hadoop解释
Hadoop也分狭义与广义解释。
(1)狭义解释,Hadoop指Apache这款开源框架,它的核心组件有:
a)HDFS(分布式文件系统):解决海量数据存储;
b)MAPREDUCE(分布式运算编程框架):解决海量数据计算;
c)YARN(作业调度和集群资源管理的框架):解决资源任务调度。
Hadoop是一个集合了:存储、计算、资源调度为一体的大数据分布式框架。
(2)广义解释
广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈,也就是说Hadoop是一个大数据生态圈整体。

使用Hadoop框架做大数据开发,优势

(1)扩容能力:Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可用方便的扩展到数以千计的节点中;
(2)成本低:Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低;
(3)高效率:通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快;
(4)可靠性:能自动维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。所以Hadoop的按位存储和处理数据的能力值得人们信赖。

3.2Hadoop架构

(1)HDFS:分布式文件系统
(2)MapReduce:分布式计算
(3)Yarn:资源调度

(1)HDFS:分布式文件系统

HDFS全称是:Hadoop Distributed File System,是一个分布式文件系统。
HDFS有三个服务:
a) NameNode(NN):处理客户端读写请求,存储文件的元数据,以及每个文件
的块列表、数据块DataNode等;
b)DataNode(DN):存储实际的数据块,并执行数据块的读写操作;
c)Secondary NameNode(2NN):每隔一段时间后,会对NameNode做元数据
备份
NameNode:集群的主节点,主要用于管理集群中的各种数据;
SecondaryNameNode:主要能用于Hadoop元数据信息的辅助管理;
DataNode:集群的从节点,主要用于存储集群当中的各种数据。

(2)MapReduce:分布式计算

MapReduce将计算过程分为两个阶段,分别是Map和Reduce:
a)Map阶段并行处理输入的数据;
b)Reduce阶段对Map结果进行汇总处理。

(3)Yarn:资源调度

YARN的全称是Yet Another Resource Negotiator,另一种资源协调者,是Hadoop的资源管理器。 由四个服务组成,分别是:
a)ResourceManager(RM,资源管理器):集群资源(cpu,内存等)管理者;
b)NodeManager(DM,节点管理器):单个节点资源的管理者;
c)ApplicationMaster(AM,任务管理器):单个任务运行的管理者;
d)Client Application:客户端提交的应用程序。
存在意义:用于接收用户的计算请求任务,并负责集群的资源分配;

4,Hadoop入门使用

集群负责海量数据的存储,集群中的角色主要有:
a)NameNode:主节点
b)DataNode:从节点
c)SecondaryNameNode:辅助节点
YARN集群负责海量数据运算的资源调度,集群中的角色主要有:
a)ResourceManager:接收请求任务,负责资源调度
b)NodeManager:负责处理主节点分配的任务
1,当要搭建集群时的常见方式
(1)单机模式
在单机模式下,一个机器上同时运行着HDFS集群、YARN集群,通常仅用于学习和调试使用。
(2)集群模式
在集群模式下,主要用于生产环境部署,需要在N台主机上搭建及组成一个Hadoop集群。
集群模式中的主节点和从节点会分开部署在不同的机器上。

启动集群

a)启动HDFS和yarn命令: start-all.sh
b)停止HDFS和yarn命令: stop-all.sh
c)需要单独启动node1下的mr历史任务服务器: mapred --daemon start historyserver
D)查看进程信息 jps
(a)查看HDFS页面
启动了NameNode后,端口号是9870,连接URL:http://node1:9870/
(b)查看YARN页面
启动了ResourceManager后,端口号是8088,连接URL:http://node1:8088/
(c)查看已经Finished的MapReduce运行日志页面
启动了historyserver后,端口号是19888,连接URL:http://node1:19888

评估圆周率π案例

在Hadoop框架的安装包中,官方提供了MapReduce程序的examples示例,以便开发者快速体验分布式计算,比如计算圆周率、统计词频结果等。
操作步骤:
1,先通过cd命令切换当前目录到指定文件夹
命令cd /export/server/Hadoop-3.3.0/share/Hadoop/mapreduce
2,直接运行命令Hadoop jar Hadoop-mapreduce-examples-3.3.0.jar pi x y
参数解释:#第1个参数pi:表示MapReduce程序执行圆周率计算
第2个参数x:用于指定map阶段运行的任务次数,即并发度,比如x=10
第3个参数y:用于指定每个map任务取样的个数,比如y=50

单词词频统计案例

在词频统计文本数据过程中,统计相同单词出现的总次数。
步骤1,一样先通过cd命令切换当前目录到指定文件夹
命令cd /export/server/Hadoop-3.3.0/share/Hadoop/mapreduce
2,运行命令前准备 ,在HDFS界面新建一个input文件夹,并上传一个txt文件到文件夹下(用于被统计词频)
并且要保证output文件夹下没有文件,不然会报错
3,运行命令:hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /input /output

HDFS文件系统

HDFS(Hadoop Distribute File System)指的是:Hadoop分布式文件系统,是Hadoop核心组件之一,用于提供分布式存储服务。
HDFS解决的问题是:大数据存储,它们是横跨在多台计算机上的存储系统,为存储和处理超大规模数据提供扩展能力。
使用场景:非常适于存储大型数据(比如TB 和 PB),HDFS可以使用多台计算机存储文件,并提供统一的访问接口,像是访问一个普通文件系统来使用。
1,HDFS通常也具有如下特性:
(1)HDFS文件系统可存储超大文件,时效性稍差;
(2)HDFS具有硬件故障检测和自动快速恢复功能;
(3)HDFS为数据存储提供很强的扩展能力;
(4)HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改;
(5)HDFS可在普通廉价的机器上运行。

HDFS架构

1,HDFS特性有:
(1)HDFS是一个文件系统,用于存储文件,可以通过统一的目录来定位文件;
(2)HDFS是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的
角色;
(3)HDFS内部采用了Master/Slave架构[即主从架构]。
2,HDFS有四个基本组件
(1)HDFS Client
(2)NameNode
(3)DataNode
(4)Secondary NameNode

1,HDFS Client:客户端

客户端主要负责文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的
block,然后进行存储。
a)与NameNode交互,获取文件的位置信息;
b)与DataNode交互,读取或者写入数据;
c)Client 提供一些命令来管理和访问HDFS,比如启动或者关闭HDFS。

2,NameNode:主节点Master,管理者

NameNode用于管理HDFS元数据(文件路径,文件的大小,文件的名字,文件权限,文
件的block切片信息….)。
a)配置副本策略;
b)处理客户端读写请求。

3,DataNode:从节点Slave

当NameNode下达命令后,DataNode来执行实际的操作。
a)存储实际的数据块;
b)执行数据块的读/写操作;
c)定时向NameNode汇报block信息。

4,Secondary NameNode:辅助节点

Secondary NameNode用于辅助NameNode,并分担其工作量。在紧急情况下,可辅
助恢复NameNode。
注意:Secondary NameNode并非NameNode的备份。当NameNode挂掉的时候,它也
并不能马上替换NameNode并提供服务。
请添加图片描述

HDFS的Shell命令入门

1,两种方式
hadoop fs # 既可以操作HDFS,也可以操作本地系统
hdfs dfs # 只能操作HDFS系统, 推荐使用
2,应用示例
应用例子:
hdfs dfs -ls / # 显示文件列表
hdfs dfs –ls -R / # 递归显示文件列表
hdfs dfs -mkdir /dir1 # 创建目录
hdfs dfs -mkdir -p /aaa/bbb/ccc # 递归创建目录
hdfs dfs -touch /hadoop/1.txt # 在/hadoop下创建1.txt
hdfs dfs -help 指令 # 比如ls 查看帮助信息
3,常用命令
(1)-put 上传文件
hdfs dfs -put /本地文件路径 /hdfs文件路径
hdfs dfs -put /root/python.txt /itcast
(2)-get 下载文件
hdfs dfs -get /hdfs文件路径 /本地文件路径
hdfs dfs -get /itcast/aa.txt /root/
(3)-mv 移动文件或目录(移动到空文件或文件夹下等于重命名)
hdfs dfs -mv /路径 /移动到的路径
hdfs dfs -mv /Hadoop /itcast/
(4)-rm 删除目录
hdfs dfs -rm [-r] /目录/文件名 # 注意: 当删除目录时, 要加上-r
hdfs dfs -rm /hadoop/1.txt
(5)-cp 复制文件
hdfs dfs -cp /要复制的文件或路径 /复制到的路径
hdfs dfs -cp /itcast/aa.txt /itcast/Hadoop
(6)-cat 查看文件内容
hdfs dfs -cat /文件
hdfs dfs -cat /itcast/Hadoop/aa.txt

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【验证码逆向专栏】百某网数字九宫格验证码逆向分析

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未…

Debezium-Embedded 实时监控MySQL数据变更

1.Debezium-Embedded 简介 Debezium连接器的操作通常是将它们部署到Kafka Connect服务,并配置一个或多个连接器来监控上游数据库,并为它们在上游数据库中看到的所有更改生成数据更改事件。这些数据更改事件被写入Kafka,在那里它们可以被许多不…

Wireshark抓包工具配置以及MQTT抓包分析

1、Wireshark抓包工具使用 打开Wireshark选择,需要抓取的物理网卡,添加过滤设置。 单击“捕获”,选择选项,输入需要捕获的IP地址和端口号。 如: ip host 10.60.4.45 and tcp port 1883 ip host 10.60.4.45 and http p…

JVM虚拟机:垃圾回收之三色标记

本文重点 在前面的课程中我们已经学习了垃圾回收器CMS和G1,其中CMS和G1中的mixedGC都存在四个过程,这四个过程中有一个过程叫做并发标记,也就是说程序一边运行,一边标记垃圾。这个过程最困难的是:如果在标记垃圾的时候,如果对象的引用关系发生了改变,此时应该如何处理?…

吴恩达《机器学习》8-5->8-6:特征与直观理解I、样本与值观理解II

8.5、特征与直观理解I 一、神经网络的学习特性 神经网络通过学习可以得出自身的一系列特征。相对于普通的逻辑回归,在使用原始特征 x1​,x2​,...,xn​ 时受到一定的限制。虽然可以使用一些二项式项来组合这些特征,但仍然受到原始特征的限制。在神经网…

mysql之搭建MHA架构实现高可用

1、定义 全称是masterhigh avaliabulity。基于主库的高可用环境下可以实现主从复制及故障切换(基于主从复制才能故障切换) MHA最少要求一主两从,半同步复制模式 2、作用 解决mysql的单点故障问题。一旦主库崩溃,MHA可以在0-30…

Postman工具简介

介绍 Postman是一个商业的接口测试工具。免费的版本也可以使用不少功能。 官网:https://www.postman.com/ 下载、安装、应用界面 下载 安装、安装成功以后的应用界面 双击下载下来的可执行文件进行安装,出现如下界面: 可以注册一个账…

黑马程序员微服务第四天课程 分布式搜索引擎1

分布式搜索引擎01 – elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: …

新一轮SocialFi浪潮来袭,Atem Network 再次打响注意力争夺战

火爆如潮的 Atem Network 再次从 CyberConnect 以及 Friend.tech 手中接过 SocialFi 赛道的热度大棒,同时这也表明,协议层仍将是 Web3 社交领域的主要叙事。 前不久,Web3社交协议Atem Network 在白皮书中披露了ATEM的代币经济模型&#xff0c…

【论文阅读】(VAE)Auto-Encoding Variational Bayes

论文地址:[1312.6114] Auto-Encoding Variational Bayes (arxiv.org) 【前言】:VAE模型是Kingma(也是Adam的作者)大神在2014年发表的文章,是一篇非常非常经典,且实现非常优雅的生成模型,同时它还为bayes概率图模型难以…

WorkPlus AI助理知识问答机器人,助力企业级私有化AI构建

ChatGPT以及其他大语言模型展现了令人惊叹的广博知识、语义理解能力与创造能力。它们能够在会话中承认自身错误并进行改正,还能进行一定程度的逻辑推理,具备多语种翻译与多语言编程等"超能力",可胜任多种自然语言处理任务。 然而&…

JavaEE进阶学习:Spring 的创建和使用

Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能: 将对象存储到容器(Spring)中从容器中将对象取出来 接下来使用 Maven 方式来创建一个 Spring 项目,创建 Spring 项目和 Servlet 类似&a…

RequestContextHolder详解

最近遇到的问题是在service获取request和response,正常来说在service层是没有request的,然而直接从controlller传过来的话解决方法太粗暴,后来发现了SpringMVC提供的RequestContextHolder遂去分析一番,并借此对SpringMVC的结构深入了解一下,后面会再发文章详细分析源码 1.Reque…

vite环境变量相关

环境变量:根据环境的不同,灵活的自动读取相应的变量。避免了手动修改。 import path from path import postCssPxToRem from postcss-pxtorem import { defineConfig, loadEnv } from vite import createVitePlugins from ./vite/plugins import copy f…

初识VBA代码及应用VBA代码第四节:如何录制宏

《VBA之Excel应用》(10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非…

早安心语早读:熬出来的人生,有你预见不了的美好

1、熬出来的岁月,有你想象不到的精彩;熬出来的人生,有你预见不了的美好!来这个世界一次,谁没有办法活第二次,一次的生命,一定要无悔才行!那就让我们,拼一个岁月静好&…

C++ Qt 学习(八):Qt 绘图技术与图形视图

1. 常见 18 种 Qt 绘图技术 1.1 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <memory> #include <QTreeView> #include "CPaintWidget.h"using namespace std;class Widget : public QWidget {Q_OBJECTpublic:Widget…

Oneid方案

一、前文 用户画像的前提是标识出用户&#xff0c;存在以下场景&#xff1a;不同业务系统对同一个人的标识&#xff0c;匿名用户行为的行为归因&#xff1b;本文提供多种解决方案&#xff0c;提供大家思考。 二、方案矩阵 三、其他 相关连接&#xff1a; 如何通过图算法能力获…

【经验记录】Ubuntu系统安装xxxxx.tar.gz报错ImportError: No module named setuptools

最近在Anaconda环境下需要离线状态&#xff08;不能联网的情况&#xff09;下安装一个xxxxx.tar.gz格式的包&#xff0c;将对应格式的包解压后&#xff0c;按照如下命令进行安装 sudo python setup.py build # 编译 sudo python setup.py install # 安装总是报错如下信息&am…

金蝶云星空单据体启用块粘贴

文章目录 金蝶云星空单据体启用块粘贴 金蝶云星空单据体启用块粘贴