- 博客(131)
- 资源 (3)
- 收藏
- 关注
原创 前端学习----webpack入门学习
上面的问题,修改了index.js文件之后,还要重新运行脚本,很麻烦。这个插件就会解决这个问题。每当修改了源代码,webpack就会自动进行项目的打包和构建。安装插件配置插件2、再次运行npm run dev 命令3、在浏览器中访问 http://localhost:8080地址,查看自动打包效果注意:webpack-dev-server 会启动一个实时打包的http服务器终端不会退出,一直监听代码变换。
2023-05-07 17:23:45 1068 1
原创 Spark SQL快速入门
SparkSQL 是Spark的一个模块,用于处理海量结构化数据限定:结构化数据Pandas -> DataFrame -> 二维表数据结构,单机(本地)集合SparkCore -> RDD -> 无标准数据结构,存储什么数据均可SparkSQL -> DataFrame -> 二维表数据结构,分布式集合(分区)两者都是,有分区的,分布式的,弹性的不同在于,RDD可以存储任何类型数据。DataFrame存储的数据结构限定为:二维表结构化数据。
2023-03-07 10:57:58 908
原创 Spark 内核调度
Spark层级关系梳理:1、一个Spark环境可以运行多个Application2、一个代码运行起来,会成为一个Application3、Application内部可以有多个job4、每个Job由一个Action产生,并且每个Job都有自己的DAG图5、一个Job的DAG图 会基于宽窄依赖划分为不同的阶段6、不同阶段内 基于分区数量,形成多个并行的内存迭代管道。
2023-03-05 22:37:07 361
原创 Spark 广播变量&累加器
1、广播变量解决了什么问题分布式集合RDD和本地集合进行关联使用的时候,降低内存占用以及减少网络IO传输,提高性能2、累加器解决了什么问题分布式代码执行中,进行全局累加。
2023-02-20 23:07:56 383
原创 Spark 学习案例
数据来源:使用搜狗实验室提供的【用户查询日志】数据。使用Saprk框架,将数据封装到RDD中进行数据处理分析。因为前面我们都是使用 Anaconda环境,所以在进入Anaconda安装jieba。因为我使用的远程解释器环境,需要点击以下远程解释器,更新解释器环境内置的库。3、因为代码中使用jieba库,所以所有的机器都应该安装jieba库。因为Executor运行在其他机器上时,没有jieba库会运行报错。这个地址可能过期了,需要的伙伴可以私聊博主。2、将两个文件上传到Linux中。
2023-01-30 23:27:13 447
原创 Spark Core ---- RDD持久化
1、Cache和CheckPoint区别Cache是轻量化保存RDD数据,可存储在内存和硬盘,是分散存储,设计上数据是不安全的(保留RDD血缘关系)CheckPoint是重量级保存RDD数据,是集中存储,只能存储在HDFS上,设计上是安全的(不保留血缘关系)2、Cache和CheckPoint的性能对比Cache性能更好,因为是分散存储,多个Executor并行执行,效率高,但是风险大。可以保存到内存中(比较占内存),更快。
2023-01-26 16:19:13 240
原创 Spark 常用算子02
这个算子,是将RDD各个分区数据都拉取到Driver中,注意的是:RDD是分布式对象,其数据量会很大,所以使用这个算子之前,必须知道,结果数据集不会太大。分区1的数据会整体进行处理,将1和2乘以10,放入新的分区中,只会有一次IO的处理。大小的比较依据的是对象的compare方法进行比较,如果没有重写compare方法,对于数字来说,按照大小降序,对于字符串来说,按照ASCII码进行比较。对这个rdd数据执行乘以10的操作,那么分区1的1,2分别乘以10,放入一个新的分区,会执行两次操作。
2023-01-24 19:23:21 1610
原创 Spark Core 编程入门,常用算子01
如果没有action,Transformation算子之间的迭代关系,就是一个没有通电的流水线,只有action到来,这个数据处理的流水线才开始工作。因为,这个API表名了自己是小文件读取专用,那么文件的数据很小,分区很多,导致shuffle的几率更高,所以尽量少分区读取数据。没有action算子,上面的转换算子是不生效的。功能:map算子,是将RDD的数据一条条处理(处理的逻辑 基于算子中接收的处理函数),返回新的RDD。功能:将rdd的数据进行分组,分组效果和sql的分组是一致的,就是hash分组。
2023-01-20 17:34:30 624
原创 Spark Core----RDD详解
RDD概念的诞生来自于一片国外论文Matei等人提出了RDD这种数据结构标题翻译过来,弹性分布式数据集:一个在内存集群计算中可以实现高度容错的计算对象。RDD定义RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合。Dataset:一个数据集合,用于存放数据的。Distributed:RDD中的数据是分布式存储的,可用于分布式计算。
2023-01-10 23:16:22 748
原创 Spark类库----PySpark(本地开发环境配置&&远程SSH解释器配置)
Python语言开发Spark程序步骤?主要是获取SparkContext对象,基于SparkContext对象作为执行环境入口如何提交Spark应用?将程序代码上传到服务器上, 通过spark-submit客户端工具进行提交。
2023-01-04 23:56:09 2173
原创 Spark环境搭建(Hadoop YARN模式)
按照前面环境部署中所学习的,如果我们想要一个稳定的生产Spark环境,那么最优的选择就是构建:HA StandAlone集群。不过在企业中, 服务器的资源总是紧张的,许多企业不管做什么业务,都基本上会有Hadoop集群。也就是会有YARN集群。对于企业来说,在已有YARN集群的前提下在单独准备Spark StandAlone集群,对资源的利用就不高。所以, 在企业中,多数场景下,会将Spark运行到YARN集群中。
2022-12-30 21:41:59 3245
原创 Spark环境搭建(Stand alone模式 && Stand alone HA模式)
Standalone模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群的环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。开启两个任务,就会在master进程中开启两个对应的 Driver,对应的Executor各自汇报给对应的Driver,Executor数量根据你任务情况而定。在 standalone 模式下, master进程和 worker进程是固定的。
2022-12-28 22:34:40 1655 1
原创 Spark环境搭建(本地模式)
前置环节介绍:node1:hadoop NN DN RM NM ,hivenode2:hadoop SNN DN NMnode3:hadoop DN NMlocal模式基本原理本质:启动一个JVM Process进程(一个进程里面有多个线程),执行任务Task、Local模式可以限制模拟Spark集群环境的线程数量,即local[a]或local[*]其中N代表可以使用N个线程,每个线程拥有一个cpu core。如果不指定N。则默认一个线程(该线程有一个core),通常CPU有几个core,就指
2022-12-27 22:58:12 1674
原创 Spark基础入门----框架概述
Apache Spark是用于大规模数据处理的统一分析引擎Spark 最早源于一片论文,该论文是由加州大学柏克莱分校的Matei Zaharia等人发表。论文中提出了一种弹性分布式数据集(RDD)的概念。总的说,Spark借鉴了Map Reduce思想发展而来,保留了其分布式并行计算的优点并改进了明显的缺陷,让中间数据存储在内存中提高了运行速度,并提供了丰富的操作数据的API提高了开发速度。Spark是一款分布式内存计算的统一分析引擎。其特点就是对任意类型的数据进行自定义计算。
2022-12-26 20:28:28 687
原创 Apache Hive DML语句与函数使用
使用insert插入数据,底层会走MR程序,找yarn申请资源,走map阶段,reduce阶段,中间还有繁琐的shuffle,最后输出结果。之前我们加载数据是,创建一张表,将结构化文件放到hadoop对应表路径下。也可以使用insert语法把数据插入到指定的表中,最常用的配合是把查询返回的结果插入到另一张表中。写了local就是指本地文件系统,不管你客户端在哪里,指的是hive服务所在的本地文件系统。这个也是会执行一个MR程序。内置函数可分为:数值型函数,日期类型函数,字符串类型函数,集合函数,条件函数。
2022-12-24 17:40:57 498
原创 数据仓库基础与Apache Hive入门
基于Hive设计使用特点, HQL中的create语法是重点,建表是否合适直接影响数据文件是否映射成功,进而影响后续是否可以基于SQL分析数据,直白一点,没有表,表没有数据,Hive分析根本不起作用。通常是存储在关系数据库中,如mysql / derby(内置数据库)等,Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性是(是否为外部表等),表的数据所在目录等。就是因为存放元数据的表,是其他编码,对中文支持不友好,你修改之后呢,之前创建的表,还是会乱码,只有删除重建才会生效。
2022-12-23 20:02:08 918
原创 Hadoop学习----MapReduce&&YARN
是一个分布式计算框架,用于轻松编写分布式应用程序,这些应用程序以可靠,容错的方式并行处理大型硬件集群上的大量数据MapReduce 是一种面向海量数据处理的一种指导思想,也是用于对大规模数据进行分布式计算的编程模型。
2022-12-22 15:57:45 985
原创 Hadoop学习----HDFS
传统文件系统无法支撑高效率的计算分析,传统存储方式意味着数据,存储是存储,计算是计算,当需要处理数据时,把数据移动过来(移动到内存,内存能容下多大数据),数据和程序属于不用的技术厂商实现,无法有机统一整合在一起。传统常见的文件系统,更多的指的是单机文件系统,也就是底层不会横跨多台机器实现,比如windows操作系统的文件系统,Linux系统的文件系统等。是Apache Hadoop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在,也可以说大数据首先要解决的问题就是海量数据的存储问题。
2022-12-21 16:59:34 725
原创 Hadoop学习----源码编译,集群搭建
第一,里面有一些写的不好,我可以修改源码,这个略过。第二,软件运行需要操作系统支持,操作系统之间存在差异。Linux有很多发行版,那么之间本地库环境存在差异。Hadoop某些操作需要本地库支持,例如数据压缩,读写IO流操作。所以为了让hadoop更加稳定适应你的平台最好的是下载源码重新编译。正常情况下,非生产环境直接使用官方编译安装包即可,但是官方提供的安装包不支持本地库。再源码包根目录下,有BUILDING.txt文件,描述了你需要做哪些动作。根据以上步骤,我是安装成功了的。1、安装编译相关的依赖。
2022-12-17 21:46:24 729
原创 Hadoop学习----Hadoop介绍
Hadoop是Apache软件基金会的一款开源软件。底层是由java语言实现。功能:允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理。Hadoop核心组件:Hadoop HDFS(分布式文件存储系统):解决海量数据存储Haqdoop YARN(集群资源管理和任务调度框架):解决资源任务调用Hadoop MapReduce(分布式计算框架):解决海量数据计算官网:http://hadoop.apache.org/Hadoop集群包括两个集群:HDFS集群,YARN集群。
2022-12-16 15:43:40 396
原创 Python学习----property属性&&上下文管理器&&生成器&&深拷贝浅拷贝&&正则表达式&&logging日志
比如 p = Person() ,这个 p 对象,p存放的是指向这个对象的内存地址值,你浅拷贝就是把地址值拷贝了过来,两个变量指向的是同一个对象。生成器推导式,也是为了生成数据,但是和列表推导式语法不一样的就是把 中括号换成小括号,然后,数据生成方面,列表推导式是一次把所有数据生成出来,生成器推导式是你取一个才生成一个。生成器作用:根据程序设计者指定的规则循环生成数据,当条件不成立时则生成数据结束,数据不是一次性全部生成出来的,而是使用一个,再生成一个,可以节约大量的内存。也就是说, f = open(…
2022-12-11 23:12:10 289
原创 Python学习----闭包和装饰器
在函数嵌套调用的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数的内部函数称为闭包。闭包构成条件:1、在函数嵌套的前提下2、内部函数使用了外部函数的变量(还包括外部函数的参数)3、外部函数返回了内部函数结论:闭包可以对外部函数的变量进行保存。
2022-12-10 19:05:57 774
原创 GitLab搭建
参数说明:–detach : 后台守护方式运行,可以简写为 -d–hostname :指定服务的域名,当启动之后可以通过这个域名直接访问,就不通过ip端口方式访问,你还需要配置域名解析,比较麻烦。–publish 443:443 :绑定容器和宿主机的映射将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口将容器内22端口映射至宿主机8022端口,这是访问ssh的端口–restart always :重启方式,当服务宕机或者停电容器会自动重启–name gitlab
2022-12-06 21:55:38 1533
原创 Python学习----静态web服务器
开发步骤:1、编写一个TCP服务端程序2、获取浏览器发送的HTTP请求报文数据3、读取固定页面数据,把页面数据组装HTTP响应报文数据发送给浏览器4、HTTP响应报文数据发送完成之后,关闭服务于客户端的套接字和之前服务端编写差不多,差别在于,首先客户端不需要我们编写了,是通过浏览器发送请求。然后,因为浏览器遵循的是http请求,所以我们在用socket进行返回时,需要遵循http响应的格式,将数据进行返回。目前为止,还没有学习框架,不能像java的spring那样。目前端口是写死在程序中,如果
2022-12-05 16:24:33 988
原创 Python学习----网络编程
网络:网络就是实现资源共享和信息传递的虚拟平台,我们可以编写基于网络通信的程序。比如socket编程,web开发Socket是程序之间通信的一个工具,好比显示生活中的电话,你知道了对方的电话号码之后,需要使用电话进行通讯。同理你知道了对方的ip 地址和端口号之后,你需要使用socket进行通信。在通信之前,我们需要选择网络通讯协议(网络传输方式)。保证程序之间按照指定的规则进行数据通信。TCP 简称 传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议。1、面向连接:通信双方必须先建立好连
2022-12-04 15:07:36 571 1
原创 Python学习----进程和线程
并发:在一段时间内,交替执行多个任务例如:对于单核CPU处理多任务,操作系统轮流让各个任务交替执行,假如:软件1执行0.01s,切换到软件2,软件2执行0.01s,再切换到软件3,执行0.01s,这样反复执行下去。并行:在一段时间内,真正的同时一起执行多个任务例如:对于多核CPU,操作系统会给CPU的每个内核安排一个执行任务(任务数小于或等于CPU核心数)进程介绍:在Python中,想要实现多任务可以使用进程来完成。
2022-11-30 23:09:57 712 1
原创 Linux常用命令
管道,相当于一个临时容器,例如,tree 命令查看树型结构,将结果全部显示在终端窗口,现在使用管道命令,将输出保存在管道中,然后再将内容输出到more命令中,使用more命令打开一个专门查看大型文件的窗口,将管道中的内容取出进行显示。当文件内容过多时,可以使用 more 文件名 ,将文件内容新开一个窗口进行显示,这样就不会将所有内容全部输出到终端显示上。这儿可以和重定向命令结合。如果没有c 文件,就会进行提示。作用:ls 将结果输出到终端显示上,这重定向命令,就代表将 ls的结果输出到a.txt文件中。
2022-11-28 23:03:18 1936
原创 Python学习----操作数据库
事务提交设置,教程只讲了,python如何连接执行sql,事务处理没有讲。pymysql:使用第三方库来完成对 MySQL数据库进行操作。返回结果是一个大元组,里面嵌套了很多小元组,一条数据一个小元组。1、安装pymysql。
2022-11-22 14:28:49 339
原创 Python学习----面向对象
成员变量和成员方法,含义和java一样。成员变量的申明没啥好记得需要关注得是成员方法,在定义成员方法得时候,需要传入self关键字,这个就相当于java得this关键字。但是python需要在定义得时候手动传入,根据前面教程分析,要是你在成员方法内部直接使用name变量,python一定会认为你在成员方法内重新定义了一个name变量,所以使用self关键字来进行区分。没办法,这是python语法得特点。
2022-11-20 16:31:15 734
原创 Python学习----Demo(pyecharts)
每个图表都有一些功能的东西,例如 : 标题、工具箱、图例等,所有图表都需要这些,那么这些东西就通过全局配置项进行设置。就是百度的Echarts,针对Python有一款专门的,所以就叫PyEcharts。关于全局配置项的设置,需要导入options模块。就是添加许多柱状图,然后给你自动切换。其他的配置项可以通过官方文档进行查阅。或者通过PyCharm安装都行。运行之后会生成一个html文件。针对每种图形的特征进行配置。
2022-11-17 15:07:00 547
原创 Python学习----异常、模块、安装第三方包
每个Python文件都可以作为一个模块注意:导入不同模块,但是有相同的方法名,后导入模块中的方法会将先导入模块中的方法覆盖。测试模块 __name__变量在模块中,直接调用测试代码,那么在导入的时候也会被调用。但是又要保存测试记录。那么就使用上面的方法在 自己python文件中运行, __name__ = ‘__main__’但是在其他python文件中,这个文件的 __name__ 就不生效了,只在当前文件生效,但是其他文件还是等于 这个值。__all__ 变量。
2022-11-16 13:57:15 433
原创 Python学习----文件操作
写入 (w,如果文件存在则打开文件并从头开始编辑,原有的内容会被删除,如果文件不存在,则创建一个新文件)写入 (w,如果文件存在则打开文件并从头开始编辑,原有的内容会被删除,如果文件不存在,则创建一个新文件)写入(w,如果文件存在则打开文件并从头开始编辑,原有的内容会被删除,如果文件不存在,则创建一个新文件)追加(a,如果文件存在新的内容会被写入到末尾,如果文件不存在,则创建一个新文件进行写入)追加(a,如果文件存在新的内容会被写入到末尾,如果文件不存在,则创建一个新文件进行写入)
2022-11-14 21:34:17 472
原创 Python学习----数据容器
列表存在上限, 2^63 -1同一个列表可以容纳不同类型的元素列表内的数据时有序存储的允许重复元素可以修改元素数据容器有:list 列表 : 这个就和java数组类似,但是呢,类型不严格truple 元组:这个就是不能只读的java数组,还是类型不严格字符串:感觉这个没啥好说的集合:对应java中的set集合,不能重复字典:这个就是对应java的map集合len(容器) :统计容器元素的个数max(容器) : 找出容器中的最大值。
2022-11-13 19:30:14 999
原创 Python学习----函数
在test_2函数中 的num 相当于又定义了一个 局部变量,在 24行代码执行时,它会优先使用局部变量,当局部变量不存在时,再去寻找全局变量,所以在test_2函数中修改全局变量不成功。局部变量:定义在函数体内部的变量,只在函数体内部生效。在外面无法进行调用(注意:需要和for循环进行区别,在for循环外部可以读取for循环内部的变量,这儿是说的函数体内部)作用:就是解释说明函数的含义,辅助理解函数的作用。全局变量: 定义在函数体外面,可以在函数体内部使用,这个变量的作用域在定义之后的代码中都可以使用。
2022-11-09 23:39:32 692
原创 Python学习----基础语法2
语法还是比较简单的 , 需要注意的是 , Python是通过空格缩进来判断代码块归属的 ( 不像java这么通过 花括号进行区分 ) , 默认是四个空格 , 你也可以使用两个或者三个等 , 只要全部统一即可 , 但是编辑器会有提示 , 规范是四个空格.在for循环外部访问内部的临时变量,规范上是不允许的,但是实际上是可以的。例如:range(5,10) [5,6,7,8,9]例如: range(5,10,2) [5,7,9]例如: range(5) [0,1,2,3,4]
2022-11-09 16:27:51 2185
原创 Python 学习----基础语法1
示例: %5d 标识将整数的宽度控制在5位 , 如数字11 , 就会输出为 [空格][空格][空格]11 , 使用三个空格进行补位。数字 (Number) : 整数(int) 浮点数(float) 复数(complex)(4+3j) 布尔(bool)print(“test1 : %s” % (name,age)) # 按照顺序占位。内容限定: 英文, 中文, 数字 , 下划线 (不可以数字开头)print(f"字符串类型{type(‘字符串’)}”)
2022-11-04 16:20:49 1009
原创 Mybatis-Plus批量插入
sqlServer 在批量插入的时候 最多只能支持2100个字符。比如 insert into 表名 (字段1,字段2) values (值1,值2) 如果对应的表主键id为自增哈,那么这算两个字符,自增的id不算。为什么MyBatis Plus 不提供批量插入方法,需要自己去复写。因为不同的数据库批量插入语法不同。Mybatis Plus 的saveBatch 方法底层使用的循环单条插入,效率很低。3、在业务层中注入这个Mapper,传入list集合就行了。1、写一个类,注入spring容器中。...
2022-09-01 16:08:53 9118
starter-canal-0.0.1-SNAPSHOT.jar
2020-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人