HDFS入门--学习笔记

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.mzph.cn/news/151866.shtml

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

相关文章

2023超详细的软件测试八股文(入门篇)

今天给大家分享软件测试面试题入门篇,看看大家能答对几题 一、请你说一说测试用例的边界 参考回答: 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下&#xff0…

本地私域线上线下 线上和线下的小程序

私域商城是一种新型的零售模式,它将传统的线下实体店与线上渠道相结合,通过会员、营销、效率等方式,为消费者提供更加便利和高效的购物体验。私域商城的发展趋势表明,它将成为未来零售业的重要模式,引领零售业的创新和…

【开源】基于Vue.js的音乐偏好度推荐系统的设计和实现

项目编号: S 012 ,文末获取源码。 \color{red}{项目编号:S012,文末获取源码。} 项目编号:S012,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 音乐档案模块2.1…

【数据库】你听说过矢量数据库吗?

个人主页:【😊个人主页】 系列专栏:【❤️其他领域】 文章目录 前言什么是向量/矢量数据库嵌入模型使用向量数据库的优势与传统数据库的对比其他方面 AWS 如何支持您的矢量数据库需求?Amazon OpenSearch ServiceAmazon Aurora Pos…

Python loglog()函数

常用坐标下的图像显示 import matplotlib.pyplot as plt import numpy as np import mathplt.figure() x_input np.linspace(1, 10, 50) y_input x_input**2plt.plot(x_input, y_input,r-,linewidth2) plt.show()在loglog函数尺度下的曲线 plt.loglog(x_input, y_input,r-,…

机器人走迷宫问题

题目 1.房间有XY的方格组成,例如下图为64的大小。每一个方格以坐标(x,y) 描述。 2.机器人固定从方格(0, 0)出发,只能向东或者向北前进,出口固定为房间的最东北角,如下图的 方格(5,3)。用例保证机器人可以从入口走到出口。 3.房间…

[JDK工具-2] javap 类文件解析工具-帮助理解class文件,了解Java编译器机制

文章目录 1. javap -version 版本信息2. javap -verbose 输出附加信息3. javap -l 显示行号和局部变量列表4. javap -c 对代码进行反汇编(或叫反编译生成汇编代码,一般说反编译是生成java代码),分解方法代码,也就是显示…

想要成为CSS大师?这些技巧是你必须知道的!

前言 CSS 是网页设计中不可或缺的一部分,掌握一些实用的 CSS 技巧,可以让你在设计中展现出更多的创意和个性。本文将介绍一些 CSS 技巧,帮助你提升自己的技能,成为一个真正的 CSS 大师。 1. 改变 input 自动填充的背景颜色 这段 …

高精度算法【Java】(待更新中~)

高进度加法 在Java中可以使用BigInteger进行高精度计算,除此也可以仿照竖式相加的计算原理进行计算。 BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算&#xff1…

网上被吹爆的Spring Event事件订阅有缺陷,不要用

Spring Event事件订阅框架,被网上一些人快吹上天了,然而我们在新项目中引入后发现,这个框架缺陷很多,玩玩可以,千万不要再公司项目中使用。还不如自己手写一个监听者设计模式,那样更稳定、可靠。 之前我已…

ARM CoreLink CCN 互连总线介绍

NIC NOC CCI CMN CNN NI cmn-700 nic-700 ni-700 MLGB这都是啥玩意? 后期博文或视频将会更新这一系列。今天先温习一下CNN的概念,这是来自2014年的文章,然后稍微整理总结一番。 以下是正文… 现代主流和优质 ARM 片上系统 (SoC) 产品使用 CoreLink 缓存一致性网络 (CCN) 504…

SpringBoot-过滤器Filter+JWT令牌实现登录验证

登录校验-Filter 分析 过滤器Filter的快速入门以及使用细节我们已经介绍完了,接下来最后一步,我们需要使用过滤器Filter来完成案例当中的登录校验功能。 我们先来回顾下前面分析过的登录校验的基本流程: 要进入到后台管理系统,我…

IDEA运行thymeleaf的html文件打开端口为63342且连不上数据库

这边贴apple.html代码 <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>User List</title> </head> <body> <h1>User List</h1> <table&…

elementui表格自定义指令控制显示哪些列可以拖动

Vue.directive(tableBorder, function (el, {value}) {// value允许传字符串数字和数组el.classList.add(z_table_hasBorder)let hasStyle el.querySelector(style)if(hasStyle){hasStyle.remove()}let style document.createElement(style)let str .z_table_hasBorder .el…

【数据结构与算法】Kadane‘s算法(动态规划、最大子数组和)

文章目录 一、算法原理二、例题2.1 最大子数组和2.2 环形子数组的最大和 一、算法原理 Kadanes算法是一种用于解决最大子数组和问题的动态规划算法。这类问题的目标是在给定整数数组中找到一个连续的子数组&#xff0c;使其元素之和最大&#xff08;数组含有负数&#xff09;。…

IObit Unlocker丨解除占用程序软件

更多内容请收藏&#xff1a;https://rwx.tza-3.xyz 官网&#xff1a;IObit Unlocker “永远不用担心电脑上无法删除的文件。” 界面简单&#xff0c;支持简体中文&#xff0c;一看就会&#xff0c;只需要把无法删除/移动的文件或整个U盘拖到框里就行。 解锁率很高&#xff0c;…

elasticsearch 概述

初识elasticsearch 了解ES elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在GitHub搜索代码 在电商网站搜索商品 ELK技术栈 elasticsearc…

我叫:插入排序【JAVA】

1.自我介绍 插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置&#xff0c;以达到排序的目的。 2.继承我的思想 插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包…

设计模式—结构型模式之外观模式(门面模式)

设计模式—结构型模式之外观模式&#xff08;门面模式&#xff09; 外观&#xff08;Facade&#xff09;模式又叫作门面模式&#xff0c;是一种通过为多个复杂的子系统提供一个一致的接口&#xff0c;而使这些子系统更加容易被访问的模式。 例子 我们的电脑会有很多 组件&am…

动态页面调研及设计方案

文章目录 vue2 动态表单、动态页面调研一、form-generator二、ng-form-element三、Variant Form四、form-create vue2 动态表单、动态页面调研 一、form-generator 预览&#xff1a;https://mrhj.gitee.io/form-generator/#/ Vue2 Element UI支持拖拽生成表单不支持其他组件…