
实训
文章平均质量分 89
cai-4
温柔是黑暗世界里永恒的光。
展开
-
Spark Streaming
为了保证数据的安全性,防止了Receiver接受的数据丢失,可以开启Spark Streaming的预写日志WAL,WAL可以实现将Receiver每一批次的数据缓存到Spark的检查点目录。Spark Streaming运行的时候需要一个Receiver接收器接受数据,接受的数据设置缓存的地方,Receiver接受的数据一旦丢失,就算Spark有容错机制,无法计算了,因为没有数据源的数据了。实时计算的,一般使用在实时性要求比较高的场合。算子只对当前批次的数据有效,前一个批次的计算结果不清楚。原创 2023-10-11 00:08:38 · 587 阅读 · 0 评论 -
Kafka消息队列
【earliest、latest区别】: earliest当消费者所属的消费者组没有任何的消费记录,从头开始消费 latest当消费者所属的消费者组没有任何的消费记录,从最新的位置开始消费 如果他们所属的消费者组有消费记录,那么他们两者都是从消费记录的位置继续开始消费。分区,每一个Topic主题都可以指定存储的分区数,一般情况下,一个Broker会存储一个主题的一个分区数据,而且每一个分区还可以设置副本数保证存储数据的安全性,分区和分区副本之间有一个主从架构关系。原创 2023-10-11 00:07:50 · 553 阅读 · 0 评论 -
实训笔记——Spark SQL编程
ss.udf.register(name,函数)原创 2023-09-27 13:00:51 · 974 阅读 · 0 评论 -
实训笔记——Spark计算框架
Spark是一个分布式的计算框架,是Hadoop的MapReduce的优化解决方案。Hadoop的MR存在两大核心问题:1、无法进行迭代式计算 2、MR程序是基于磁盘运算,运算效率不高Spark主要解决了Hadoop的MR存在的问题,Spark是基于内存运算的一种迭代式计算框架。原创 2023-09-18 23:12:51 · 691 阅读 · 0 评论 -
Spark的基础
【注意】Spark的安装部署,Spark本身就是一个分布式计算框架,如果使用Spark,我们需要使用对应的编程语言编写Spark代码,编写Spark程序不需要部署Spark程序,因此Spark的安装部署主要指的是编写好的Spark程序在什么环境下运行(编写好的Spark程序使用哪种资源调度器进行资源的申请和调度)。Spark一个技术栈可以解决大数据中遇到的大部分计算场景问题,而且Spark各个子组件都是基于Spark Core的,因此Spark的各个子组件可以无缝的衔接转换。等等地方直接读取数据处理。原创 2023-09-18 13:01:48 · 328 阅读 · 0 评论 -
Scala学习笔记
lambda表达式: 就等用于scala中匿名函数,使用函数式接口时,我们对函数式接口的简化操作,使用函数式接口大部分场景下都是使用匿名内部类的形式实现的,匿名内部类最核心的就是重写函数式接口的唯一的抽象方法把lambda就是简化匿名内部类的操作的。,Scala函数当中,形参是可以赋予默认值的,一旦形参赋予默认值,那么调用参数的时候,带有默认值的形参就可以不用传递参数了,带有默认值的形参一般要求放到形参列表的最后,如果没有放到最后,那么调用的时候,给其他形参传递参数,需要带有参数名传递。原创 2023-09-13 21:45:25 · 521 阅读 · 0 评论 -
实训笔记9.12
访问控制修饰符 class 类名(主构造器){ 类体 }原创 2023-09-12 23:26:03 · 530 阅读 · 0 评论 -
实训笔记9.4
【代码】实训笔记9.4。原创 2023-09-04 21:17:49 · 771 阅读 · 0 评论 -
实训笔记9.1
ODS层指的是我们把清洗预处理完成的数据不加以任何的处理,直接原模原样的在Hive中构建与之对应的表格,并且把数据装载到表格当中清洗预处理完成的数据格式以\001特殊字符分割的,这样的话可以避免分隔符和字段的中一些符号冲突,导致装载数据到Hive出现串行的问题。Hive中数据表有很多分类的:内部表、外部表、分区表、分桶表考虑:数据统计分析一天执行一次,也就意味着我们每天处理完成的数据都需要往Hive的ODS层的数据表导入一份,如何区分ODS层导入的数据是哪一天?需要构建一个分区表(基于时间的)。原创 2023-09-01 18:58:09 · 523 阅读 · 0 评论 -
实训笔记8.31
ODS层指的是我们把清洗预处理完成的数据不加以任何的处理,直接原模原样的在Hive中构建与之对应的表格,并且把数据装载到表格当中清洗预处理完成的数据格式以\001特殊字符分割的,这样的话可以避免分隔符和字段的中一些符号冲突,导致装载数据到Hive出现串行的问题。Hive中数据表有很多分类的:内部表、外部表、分区表、分桶表考虑:数据统计分析一天执行一次,也就意味着我们每天处理完成的数据都需要往Hive的ODS层的数据表导入一份,如何区分ODS层导入的数据是哪一天?需要构建一个分区表(基于时间的)。原创 2023-08-31 18:49:44 · 518 阅读 · 0 评论 -
实训笔记8.30
ODS层指的是我们把清洗预处理完成的数据不加以任何的处理,直接原模原样的在Hive中构建与之对应的表格,并且把数据装载到表格当中清洗预处理完成的数据格式以\001特殊字符分割的,这样的话可以避免分隔符和字段的中一些符号冲突,导致装载数据到Hive出现串行的问题。Hive中数据表有很多分类的:内部表、外部表、分区表、分桶表考虑:数据统计分析一天执行一次,也就意味着我们每天处理完成的数据都需要往Hive的ODS层的数据表导入一份,如何区分ODS层导入的数据是哪一天?需要构建一个分区表(基于时间的)。原创 2023-08-30 19:37:55 · 545 阅读 · 0 评论 -
实训笔记8.29
访客的用户信息访客的终端信息请求网址信息请求来源信息请求的产品信息。原创 2023-08-29 18:58:30 · 918 阅读 · 0 评论 -
实训笔记8.28
用户行为数据不管什么网站都会有用户的行为数据记录,行为数据指的是用户在网站当中进行的一系列动作,背后都会触发一些程序记录用户的行为数据。用户行为数据我们会通过程序一般都记录到日志文件当中用户行为数据基本都是源源不断的产生的(7*24小时不停止的产生)网站的用户行为数据记录不是大数据开发工程师的事,而是软件开发人员的工作(前端、后端工作人员) 无非就是产生数据的时候需要和大数据开发人员沟通记录用户的哪些数据而已。原创 2023-08-28 18:28:31 · 509 阅读 · 0 评论 -
实训笔记8.25
三个Flume进程,其中第一个Flume采集端口的数据,第二个Flume采集文件的数据,要求第一个Flume进程和第二个Flume进程将采集到的数据发送给第三个Flume进程,第三个Flume进程将接受到的数据采集到控制台上。有一个文件夹,文件夹下记录着网站产生的很多日志数据,而且日志文件不止一个,就像把文件夹下所有的文件数据采集到控制台,同时如果这个文件夹下有新的数据文件产生,也会把新文件的数据全部采集到控制台上。我们还需要多Agent进程中的source、channel、sink起别名的。原创 2023-08-25 18:02:02 · 477 阅读 · 0 评论 -
实训笔记8.24
Flume也是Apache开源的顶尖项目,专门用来采集海量的日志数据到指定的目的地。Flume采集数据采用一种流式架构思想,只要数据源有数据,就可以源源不断的采集数据源的数据到目的地。原创 2023-08-24 18:50:38 · 700 阅读 · 0 评论 -
实训笔记8.23
Hive底层会转换成为MapReduce运行,MapReduce阶段中间都是可以进行压缩的。因此Hive也支持设置压缩机制(也是设置转换的MR程序底层是Map阶段压缩 还是reduce阶段压缩)Hive底层也可以转换成为Spark或者TEZ程序运行,Spark和TEZ的压缩和Mapreduce的压缩是不一样的。原创 2023-08-23 18:20:46 · 767 阅读 · 0 评论 -
实训笔记8.22
用户自定义函数就是我们觉得hive内置函数不满足我们的需求,我们可以自定义函数实现我们想要的功能(Hive底层也都是Java,自定义函数也是编写Java代码的)创建一个Java项目引入编程依赖创建lib目录,自己找jar包放到lib目录下,然后lib目录add as library hive的安装目录的lib目录下使用maven然后根据gav坐标引入依赖编写对应的函数类:UDF、UDTF、UDAF大部分自定义都是UDF和UDTF函数将编写好的Java代码打成jar包。原创 2023-08-23 11:49:16 · 611 阅读 · 0 评论 -
实训笔记8.21
Hive的HQL的复杂查询语句底层会转换成为MR程序进行运行,查询的过程中如果我们需要对查询的结果进行排序,那么我们可以使用order by进行排序,order by是全局排序,一旦使用order by 那么HQL语句转换的MR程序底层的reduce任务只有一个,这样的话会把所有的map任务的数据拉取过来,输出一个结果文件,结果文件全局有序。根据一个文件,将一个文件的数据直接装载到Hive的数据表当中,要求文件的分隔符必须和创建表的时候指定的分隔符一致。原创 2023-08-21 18:35:03 · 410 阅读 · 0 评论 -
实训笔记7.28
也是将文件装载到数据表当中(底层表现就是会把文件移动到数据表所在的目录下),load装载命令相比于手动上传文件而言,load不会出现数据上传无法识别的情况,因此load装载数据会走hive的元数据。Hive中存储的数据是以数据库和数据表的形式进行存储的,因此我们就可以使用DML操作对表数据进行相关的增加、删除、修改等操作。但是因为hive的特殊性,Hive对数据的修改和删除不是特别的支持。分区表指定分区字段,分区字段不能是表字段,表字段是要在文件中存储的,分区字段是以目录的形式表示的。原创 2023-07-28 18:23:28 · 926 阅读 · 0 评论 -
实训笔记7.27
分区表可以是管理表也可以是外部表,分区表和普通数据表不一样的地方在于,在HDFS存储数据的时候,非分区表是将数据以文件的形式直接存储到数据表所在目录下,而分区表会先在数据表所在目录下创建一个一个文件夹,然后再在文件夹里面放对应分区的数据,文件夹都是按照指定的数值进行操作的。在有些情况下,我们使用的数据不只只有hive在使用,spark flink可能都在使用这个数据,因此hive如果不使用这个数据了,把表删除了,但是数据是不能删除的,此时这样的表设置成为外部表。原创 2023-07-27 18:40:26 · 919 阅读 · 0 评论 -
实训笔记7.26
Hive的元数据metaStore,Hive不负责存储任何的数据,包括hive创建的数据库、数据表、表结构等等内存,都不是在hive中的存放的,还有表数据(HDFS上),这些信息我们都是在Hive的元数据中进行存放,元数据存放到一个关系型数据库中(比如MySQL、oracle、SQL Server 、Derby数据库)Hive连接MySQL的时候还有一个问题,MySQL连接需要用户名和密码,但是hive默认情况下不知道,需要修改hive的一个配置文件,指定连接的MySQL的用户名和密码、驱动程序等等。原创 2023-07-26 18:29:33 · 1089 阅读 · 0 评论 -
实训笔记7.25
YARN是一个分布式资源调度系统,专门用来给分布式计算程序提供计算资源的,而且YARN只负责进行资源的提供,不管计算程序的逻辑,因此YARN这个软件非常的成功,因为YARN不关注程序计算逻辑,因此只要是分布式计算程序,只要满足YARN的运行要求,那么就可以在YARN上进行运行,由YARN进行资源调度。在MR中使用压缩机制,不需要我们去进行手动的压缩和解压缩,只需要在MR的合适的位置指定我们使用的是何种压缩机制,MR程序会自动的调用设置的压缩和解压缩算法进行自动化操作。在同一个时刻,可以下发多个任务。原创 2023-07-25 18:24:33 · 837 阅读 · 0 评论 -
实训笔记7.24
实训笔记7.247.24笔记一、Hadoop中MapReduce框架的使用原理和流程1.1 涉及到一些框架核心组件1.1.1 InputFotmat1.1.2 MapTask1.1. 3Partitioner1.1.4 WritableComparable1.1.5 Combiner(可选)1.1.6 WritableComparator(GroupingComparator)1.1.7 ReduceTask1.1.8 OutputFormat二、Hadoop中对于SequenceFile文件的支持和处理2原创 2023-07-24 18:26:40 · 978 阅读 · 0 评论 -
实训笔记7.21
reduceTask的数量大于分区数,那么会产生多个结果文件,只不过有些结果文件就是一个空白文件,多余的reduceTask没有分区数据处理才会产生空白文件reduceTask的数量小于分区数,而且大于1的,报错reduceTask的数量小于分区数,但是等于1 正常执行,只不过分区不执行了整体Shuffle阶段,一共对数据进行三次排序,而且最终输出结果文件里面的数据其实是有顺序的。原创 2023-07-21 18:36:30 · 1015 阅读 · 0 评论 -
实训笔记7.20
自定义一个类继承InputFormat重写getSplits方法重写createRecordReader方法。原创 2023-07-20 18:21:59 · 727 阅读 · 0 评论 -
实训笔记7.19
MR程序运行需要在控制台输出日志,MR程序控制台输出的日志能清洗看到MR程序切片数量以及MapTask的数量和ReduceTask的数量 但是默认情况下控制台是无法输出日志的,如果要输出日志信息,我们需要对代码进行修改需要在项目的resources目录引入log4j.properties文件 日志信息输出文件,文件当中定义了我们如何输出日志信息引入一个日志框架的依赖,如果没有这个依赖,那么日志文件不会生效输出 pom.xml</</</</原创 2023-07-19 18:29:54 · 1976 阅读 · 0 评论 -
实训笔记7.18
Hadoop解决了大数据面临的两个核心问题:海量数据的存储问题、海量数据的计算问题其中MapReduce就是专门设计用来解决海量数据计算问题的,同时MapReduce和HDFS不一样的地方在于,虽然两者均为分布式组件,但是HDFS是一个完善的软件,我们只需要使用即可,不需要去进行任何的逻辑的编辑。原创 2023-07-18 18:36:02 · 1902 阅读 · 0 评论 -
实训笔记7.13
我的故事你说,我的文字我落,我值几两你定,我去何方我挑。FileSystem类。原创 2023-07-13 22:55:43 · 828 阅读 · 0 评论 -
实训笔记7.12
HDFS是一个分布式文件存储系统,可以存储数据(文件数据),HDFS既然是一个文件系统,那么就可以进行文件的上传、下载、删除、创建文件夹等等。伪分布式安装—将分布式软件的所有组件安装到同一个节点 如果是伪分布式安装,从节点只有一个即可。完全分布式安装–将分布式软件的组件安装到不同的节点上 从节点可以有多个。HDFS不适用于大量小文件的常量、HDFS不能对存储的文件进行修改操作。我的故事你说,我的文字我落,我值几两你定,我去何方我挑。配置HDFS和YARN的从节点在哪些节点上安装的。主从架构的分布式软件。原创 2023-07-12 18:19:25 · 767 阅读 · 0 评论 -
实训笔记7.11
解决集群中多台节点的IP地址不容易记忆的问题,在安装操作系统的时候,我们就已经有意的给每一台节点起了一个独一无二的主机名,如果进行登录的时候,能根据主机名去自动识别IP地址。第四种:HA高可用安装模式:hdfs和yarn的主从架构组件安装到不同节点上,同时还需要把他们的主节点多安装两三个,但是在同一时刻只能有一个主节点对外提供服务。NAT模式的网络使用的网段和局域网的网段不是同一个网段,网段就是vmnet8网卡提供的。本地安装的操作系统只能被我们的主机访问到,同一个局域网下的其他主机无法访问的。原创 2023-07-11 23:44:09 · 959 阅读 · 0 评论 -
实训笔记7.10
去网上下载国内的yum数据源,下载到/etc/yum.repos.d目录下,并且需要把yum数据源命令为CentOS-Base.repo。如果我们要编写shell代码,首先我们需要创建一个文件,文件的后缀名必须.sh,.sh文件有两种执行方式。yum自带了一个yum源(yum的原始的软件商店),只不过yum源是国外的 yum repolist。权限代表的是非文件拥有者、非当前文件所属组用户以外的其他用户的权限。清理以前的yum缓存,然后基于新的软件商店建立新的yum缓存。原创 2023-07-10 18:27:50 · 899 阅读 · 0 评论 -
实训笔记7.7
默认情况下yum的软件商店是国外的网站,所以yum默认情况下下载软件速度非常的慢 yum也可以把仓库换成国内的仓库网站。随意编写文件 编辑模式只能从指令模式进入:a A i I o O。默认进入的是指令模式:不能随意编写文件,只能使用一些快捷键编写文件。我的故事你说,我的文字我落,我值几两你定,我去何方我挑。命令行模式只能从指令模式进入:/?命令行模式:搜索文件以及退出或者保存文件的。移动的文件路径 移动到的文件路径。编辑模式退到指令模式:esc。:代表的是保存和退出文件的。原创 2023-07-07 22:18:26 · 369 阅读 · 0 评论 -
实训笔记7.6
堆内存启动的默认值一般是物理内存的1/64,可以扩容的最大值是物理内存的1/4 -Xms 堆内存启动的时候内存量 -Xmx 堆内存最大允许的内存量。GAVS坐标 Scope: compile test provided。我的故事你说,我的文字我落,我值几两你定,我去何方我挑。QQ邮箱发送消息——javax.mail。腾讯云的短信API发送短信。阿里云的短信API发送短信。原创 2023-07-06 20:34:17 · 519 阅读 · 0 评论 -
实训笔记7.5
maven我们在项目中引入一个外部的GAV坐标之后,先去配置的本地仓库根据坐标去看以下本地有没有这个jar包,如果有的话,直接把jar包引入到项目当中来,如果本地仓库没有这个jar包,那么根据坐标去我们配置的远程仓库找到jar包,把这个jar包和这个jar包依赖的其他jar包全部下载到本地仓库中,然后引入到项目里面。远程仓库当中要求,任何一个jar包在放到仓库时,必须给jar包提供一个.pom文件,文件中需要指定jar包依赖的其他jar包。产出:需求分析文档、UML用例图。顶尖容器、容器、组件。原创 2023-07-05 19:33:07 · 256 阅读 · 0 评论 -
实训笔记7.4
在程序的指定位置打上一个断点,然后debug运行程序,程序会执行断点位置停止,然后就可以借助debug提供的几个按钮去按照我们的想法执行代码。step into:执行当前行的代码,如果当前行代码有方法调用,会进入方法的内部。3、idea的基本配置—主题、快捷键、默认启动首页、字体大小的更改。在ER图基础之上详细的说明ER图中每一个实体中的属性、类型、约束。我的故事你说,我的文字我落,我值几两你定,我去何方我挑。小人、椭圆、矩形框、线段(包含、扩展、泛化)每一个功能的开发流程:功能的输入、输出、流程。原创 2023-07-04 20:00:52 · 544 阅读 · 0 评论 -
实训笔记7.3
IDEA默认step into不会进入JDK源码,设置以下:file–settings—>build—>debugger—>stepping–>java.*取消勾选。step over:执行当前代码,如果当前行有方法,不会进入方法内部,而是直接把方法执行完成,然后直接进入下一行。ServerSocket:服务端 绑定端口号,然后再当前主机上开启一个应用程序。step into:执行当前行代码,如果当前行有方法,那么会进入方法内部。我的故事你说,我的文字我落,我值几两你定,我去何方我挑。原创 2023-07-03 19:40:20 · 548 阅读 · 0 评论 -
实训笔记6.29
数据库连接池是由JDBC提供的一种思想,在JDBC操作数据库的时候,和数据库建立的连接是非常宝贵的资源,而且每一次连接的建立都得需要耗费差不多0.05~1s左右的时间。有一种特殊的JavaBean叫做实体类,实体类是专门和数据库的某张数据表对应的Java对象,用于封装数据表中对应的数据。我们能不能把连接缓存起来,不用的时候放到一个地方,用的时候从那个地方获取回来一个连接使用。我的故事你说,我的文字我落,我值几两你定,我去何方我挑。实体类的一个对象===数据表中一行数据。实体类的类名===数据库的表名。原创 2023-06-29 21:01:35 · 438 阅读 · 0 评论 -
实训笔记6.27
from table_name 从指定的数据表中查询数据,from子语句一旦出现,select子语句中就可以有表字段 如果要查询表中的所有字段 可以在select 后加上一个*号,*号慎用。DML主要负责表数据的增加、删除和修改,DML语言执行完成会给我返回一个整数类型的结果,这个结果代表的是数据表受影响的行数。1、select查询语句查询回来的是一个虚拟二维表格,二维表格也是有表头的,表头我们是可以起别名的。2、联合查询最后得到的结果集的表头是第一个查询语句的表头。原创 2023-06-27 20:59:03 · 209 阅读 · 0 评论 -
实训笔记6.26
SQL语言全称是Structured query language,结构化查询语言,是RDBMS提供的用来管理数据库、数据表、表数据的一个工具。使用到一款工具–数据库可视化工具,给数据库提供了一个可视化操作的界面(navicat、sqlyog、dbeaver…外键约束、唯一约束、非空约束、默认约束、检查约束:列级约束来添加。多线程操作共享数据的时候,因为抢占时间片机制,导致数据出现问题。我的故事你说,我的文字我落,我值几两你定,我去何方我挑。DML语言:数据操纵语言–表数据的增加、删除、修改操作。原创 2023-06-26 19:28:39 · 283 阅读 · 0 评论 -
实训笔记6.25
JVM内存分为五部分,Java当中每启动一个线程,会给这个线程启动一个独立的虚拟机栈区和程序计数器,而堆区和元数据区对于多个线程是共享的。线程通信在同步代码和同步方法中,先使用notify/notifyall唤醒wait的线程,然后在代码块的最后再wait让当前线程进入阻塞状态。线程通信的方法只能使用在同步代码块或者同步方法中,而且线程通信的三个方法调用者是同步监视器。CPU内核是用来运行线程的最小单位,CPU的一个内核在某一时刻只能运行一个线程。我的故事你说,我的文字我落,我值几两你定,我去何方我挑。原创 2023-06-25 20:58:44 · 475 阅读 · 0 评论