大数据
文章平均质量分 83
个人学习笔记
吗喽也是命
所有文章均为个人学习笔记
展开
-
Spark新特性与核心概念
1.AQE的开启通过: spark.sql.adaptive.enabled设置为true开启。2.AQE是自动化优化机制,无需我们设置复杂的参数调整,开启AQE符合条件即可自动化应用AQE优化。3.AQE带来了极大的SparkSQL性能提升。原创 2023-10-28 21:39:24 · 1013 阅读 · 0 评论 -
SparkSQL执行流程与Catalyst优化器
catalyst的各种优化细节非常多,大方面的优化点有2个:将逻辑判断提前到前面,以减少shuffle阶段的数据量。简述,行过滤,提前执行where。将加载的列进行裁剪,尽量减少被处理数据的宽度。简述,列过滤,提前规划select的字段数量。(5)Spark SQL执行流程1.提交SparkSQL代码2.catalyst优化a.生成原始AST语法数b.标记AST元数据c.进行断言下推和列值裁剪以及其它方面的优化作用在AST上d.将最终AST得到,生成执行计划e.将执行计划翻译为RDD代码。原创 2023-10-25 21:29:09 · 341 阅读 · 0 评论 -
Spark_SQL函数定义(定义UDF函数、使用窗口函数)
无论Hive还是SparkSQL分析处理数据时,往往需要使用函数,SparkSQL模块本身自带很多实现公共功能的函数,在pyspark.sql.functions中。SparkSQL与Hive一样支持定义函数:UDF和UDAF,尤其是UDF函数在实际项目中使用最为广泛。Hive中自定义函数有三种类型:第一种:UDF(User-Defined_-function)函数一对一的关系,输入一个值经过函数以后输出一个值;原创 2023-10-25 19:18:07 · 1740 阅读 · 3 评论 -
SparkSQL的Shuffle分区设定及异常数据处理API(去重、缺失值处理)
在Spark SQL中,当Job中产生Shuffle时,默认的分区数(spark.sql.shuffle.partions)为200,在实际项目中要合理的设置。在允许spark程序时,查看WEB UI监控页面发现,某个Stage中有200个Task任务,也就是说RDD有200分区Partion。功能:如果数据中包含null通过dropna来进行判断,符合条件就删除这一行数据。功能:对DF的数据进行去重,如果重复数据有多条,取第一条。功能:根据参数的规则,来进行null的替换。原创 2023-10-23 21:36:24 · 481 阅读 · 0 评论 -
SparkSQL综合案例-省份维度的销售情况统计分析
报错:java.sql.BatchUpdateException: Incorrect string value: '\xE6\xB1\x9F\xE8\xA5\xBF...' for column 'storeProvince' atrow1。原因:MySQL的UTF-8只支持3个字节的unicode字符,无法支持四个字节的Unicode字符。②TOP3销售省份中,有多少家店铺日均销售额1000+④TOP3省份中,各个省份的支付类型比例。③TOP3省份中,各个省份的平均单价。①将需求结果写出到mysql。原创 2023-10-28 18:10:25 · 462 阅读 · 0 评论 -
电影评分数据分析案例-Spark SQL
【代码】电影评分数据分析案例-Spark SQL。原创 2023-10-23 20:38:32 · 1719 阅读 · 0 评论 -
Spark SQL概述与基本操作
Spark SQL是Apache Spark的一个模块,它用于处理结构化和半结构化的数据。Spark SQL允许用户使用SQL查询和操作数据,这种操作可以直接在Spark的DataFrame/Dataset API中进行。此外,Spark SQL还支持多种语言,包括Scala、Java、Python和R。原创 2023-10-23 17:46:01 · 790 阅读 · 0 评论 -
Spark_SQL-DataFrame数据写出以及读写数据库(以MySQl为例)
①jdbc连接字符串中,建议使用useSSL=false 确保连接可以正常连接( 不使用SSL安全协议进行连接)②jdbc连接字符串中,建议使用useUnicode=true 来确保传输中不出现乱码。③save()不要填参数,没有路径,是写出数据库。④dbtable属性:指定写出的表名。原创 2023-10-24 17:20:00 · 1018 阅读 · 0 评论 -
spark案例分析-搜索引擎日志分析案例
【代码】spark案例分析-搜索引擎日志分析案例。原创 2023-10-21 15:04:29 · 691 阅读 · 0 评论 -
Spark内核调度
编程模型上Spark占优(算子够多)。算子交互上,和计算上可以尽量多的内存计算而非磁盘迭代。原创 2023-10-22 16:56:45 · 777 阅读 · 1 评论 -
Spark On Hive原理和配置
包含Hive、MySQL等安装配置原创 2023-10-26 23:49:15 · 1662 阅读 · 0 评论 -
共享变量(广播变量、累加器)
在Spark中,每次任务执行时,都需要将变量从驱动程序发送到每个执行器。如果变量很大,这将导致网络传输和内存开销的增加,从而影响任务的性能。广播变量可以将变量仅发送一次,然后在每个执行器上缓存,以便多个任务可以共享同一个变量,从而减少了网络传输和内存开销,提高了任务的性能。想要对map算子计算中的数据,进行计数累加,得到全部数据计算完后的累加结果。原创 2023-10-21 18:03:00 · 134 阅读 · 0 评论 -
pySpark概述及环境搭建(local模式,Stand alone模式(非HA))
Apache Spark 是用于大规模数据(large-Scala data)处理的统一(unified)分析引擎。其特点是对任意类型的数据进行自定义计算结构化、半结构化、非结构化等各种类型的数据结构,同时也支持使用python、Java、Scala、R以及SQL语言取开发程序计算数据。原创 2023-09-12 10:58:05 · 1048 阅读 · 0 评论 -
RDD算子操作(基本算子和常见算子)
flatMap(f:T=>Seq[U]): RDD[T]=>RDD[U]),表示将RDD经由某一函数f后,转变为一个新的 RDD,但是与map 不同,RDD中的每一个元素会被映射成新的0到多个元素(f 函数返回的是一个序列Seq)。功能:将RDD的数据,加上嵌套,这个嵌套按照分区来进行,比如RDD数据[1,2,3,4,5]有两个分区,那么glom后,数据变成:[[1,2,3],[4,5]]。功能:map算子,是将RDD的数据一条条处理(处理的逻辑 基于map算子中接受的处理函数),返回新的RDD。原创 2023-10-19 17:12:42 · 783 阅读 · 0 评论 -
spark集群搭建(Stand alone(非HA)、Stand alone(HA))
由于集群的信息,包括worker、driver和application的信息都已经持久化到文件系统,因此在切换的过程中只会影响job的提交,对应正在进行的job没有任何影响。Spark Stand alone集群式Master-Slaves架构的集群模式i,和大多数的Master-Slaves结构集群一样,存在着Master单点故障(SPOF)的问题。启动history(在spark的sbin目录下运行start-history-server.sh)配置spark-env.sh文件。原创 2023-09-16 20:46:02 · 98 阅读 · 0 评论 -
apache-zookeeper安装部署(详细过程以及启停脚本)
Zookeeper集群搭建指的是zookeeper分布式模式安装。通常由2n+1台servers组成。这是因为为了保证Leader选举(基于Paxos算法的实现)能够得到多数的支持,所有zookeeper集群的数量一般为奇数。zookeeper运行需要Java环境,所有需要提前安装jdk。对于安装leader+follower模式集群,大致过程如下:①配置主机名称到ip地址映射配置(参考Hadoop集群配置)②修改Zookeeper配置文件③远程复制分发安装文件④设置myid。原创 2023-09-16 16:31:00 · 202 阅读 · 0 评论 -
spark IDEA应用开发(maven工程及模块)
进入maven/conf修改settings.xml(我使用的pycharm),将原有下载源注释,添加阿里云下载源。下载Hadoop的core-site.xml,hdfs-site.xml和spark的log4j文件。在src目录新建test目录,在创建java,resources和scala目录。打开设置,若maven为修改后地址则表示修改成功。填写模块名,选择maven模块版本,点击创建。编写单词统计代码并运行,出现统计结果表示成功。解压压缩包,新建文件夹repository。原创 2023-09-17 20:07:53 · 88 阅读 · 0 评论 -
spark简述
(4)Executor:是一个JVM Process 进程,一个Worker(NodeManager)上可以运行多Executor,Executor通过启动多个线程(task)来执行对RDD的partition进行并行计算,也就是执行我们对RDD定义的例如map、flatMap、reduce等算子操作。(2)在JOb中从读取数据封装为RDD和一切RDD调用方法都是在Executor中执行,其他代码都是在Driver Program中执行。RDD调用函数都是在Executors中执行。进行集群的监控等职责;原创 2023-10-11 20:46:26 · 42 阅读 · 0 评论 -
Hive的函数操作(数值函数、集合函数、类型转换函数、日期函数、条件函数、字符串函数、数据脱敏函数,其他函数等)
Hive的函数分为两大类:内置函数(Built_in Functions)用户自定义函数UDF(User_Defined),Hive函数总计有100多种,详细内容可前往 官方文档查看。取随机数函数:select rand() 返回一个0-1范围的随机数。指定精度取整:select round(double a,int b)日期相减 : date_sub('2008-12-31', 1) = '2008-12-日期相加 : date_add('2008-12-31', 1) = '2009-01-原创 2023-09-08 15:32:06 · 723 阅读 · 0 评论 -
scala安装配置
解压:tar -zvxf scala-2.12.15.tgz -C /export/servers。构建软连接: ln -s scala-2.12.15/ scala。生效环境变量:source /etc/profile。命令:sudo vim /etc/profile。命令:scala -version。1、上传压缩包并解压。#Scala环境变量。原创 2023-09-20 17:13:00 · 61 阅读 · 0 评论 -
Spark数据结构:RDD
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面元素可并行计算的集合。可以认为RDD是分布式的列表List或数组Array,抽象的数据结构,RDD是一个抽象类Abstract Class和泛型Generic Type。原创 2023-10-14 16:35:42 · 105 阅读 · 0 评论 -
基于Hive进行聊天数据分析案例实践
聊天平台每天都会有大量的用户在线,会出现大量的聊天数据,通过对聊天数据的统计分析,可以更好的对用户构建精准的用户画像,为用户提供更好的服务以及实现高 ROI 的平台运营推广,给公司的发展决策提供精确的数据支撑。项目将基于一个社交平台 App 的用户数据,完成相关指标的统计分析并结合 BI 工具对指标进行可视化展现。从 A 抽取数据 (E) ,进行数据转换过滤 (T) ,将结果加载到 B(L) ,就是 ETL。(4)选择新建的分析主题,找到上传的数据文件夹,选择数据。 统计今日发送消息和接收消息的用户数。原创 2023-09-09 17:24:17 · 713 阅读 · 0 评论 -
Hive数据查询(基本查询、RLIKE正则匹配、union联合、Sampling采样、Virtual Columns 虚拟列)
使用这种语法抽样,条件不变的话,每一次抽样的结果都一致,无法做到随机,只是按照数据顺序从前向后取。row_ _offset_ _inside_ _block,显示数据所在的HDFS块的偏移量看,需要运行语句。num(K|M|G)表示抽取num大小的数据,单位可以是K、M、G表示KB、MB、GB。block_ _offset_ _inside_ _file,显示数据行所在文件的偏移量。input_ _file_ _name,显示数据行所在的具体文件。rand()表示随机的依据基于整行(普通表使用)原创 2023-09-07 15:55:21 · 675 阅读 · 0 评论 -
Pyspark库以及环境配置
一、pyspark类库类库:一堆别人写好的代码,可以直接导入使用,例如Pandas就是Python的类库。框架:可以独立运行,并提供编程结构的一种软件产品,例如Spark就是一个独立的框架。PySpark是Spark官方提供的一个Python类库,内置了完全的Spark API,可以通过PySpark类库来编写Spark应用程序,并将其提交到Spark集群中运行。(1)下载PySpark库。原创 2023-10-17 14:15:43 · 1152 阅读 · 0 评论 -
BI软件概述以及FineBI安装并连接Hive(包含安装包和插件)
简单来说,就是借助BI工具,可以完成复杂的数据分析、数据统计等需求,为公司决策带来巨大的价值。1.在FineBI安装目录进入FineBI6.0\webapps\webroot\WEB-INF\lib此文件夹。6.运行程序,输入在官网注册账号获取的激活码,也可以点击获取激活码。2.粘贴jar包,jar在前面的百度网盘中的Hive连接驱动里。8.选择Fine BI元数据存储数据库,个人选择内置即可。⑤填写信息,密码不用填然后点击测试连接。②在数据连接里点击数据连接管理。2.点击下一步,选择我接受协议。原创 2023-09-08 20:31:01 · 2490 阅读 · 7 评论 -
spark on yarn 配置、部署模式DeployMode
(2)随后Resource Manager分配Container,在合适的Node Manager上启动Application Master,此时的Application Master相当于一个Executor Laucher,只负责向Resource Manager申请Executor内存;(2)随后Resource Manager分配Container,在合适的Node Manager上启动Application Master,此时的Application Master就是Driver;原创 2023-09-27 15:01:11 · 283 阅读 · 0 评论 -
Kaka安装配置
构建软连接:ln -s kafka_2.13-2.8.0/ kafka。在export文件夹新建onekey文件夹,新建文件slave。tar -zvxf Kafka压缩包 -C 目标文件夹。生效环境变量:source /etc/profile。#指定Kafka数据的位置(根据自己需要选择位置)验证kafka,使用命令查看卡夫卡主题列表。新建start-kafka.sh文件。新建stop-kafka.sh。#指定broker的id。将两个文件改为可执行文件。1.Kafka启停脚本。#kafka环境变量。原创 2023-09-18 19:45:04 · 67 阅读 · 0 评论 -
RDD的持久化
RDD的缓存技术: Spark提供了缓存APl,可以让我们通过调用API,将指定的RDD数据保留在内存或者硬盘上缓存的API。②CheckPoint支持写入HDFS,缓存不行, HDFS是高可靠存储, CheckPoint被认为是安全的。④CheckPoint因为设计认为是安全的,所以不保留血缘关系,而缓存因为设计上认为不安全,所以保留。1.在内存中的缓存是不安全的,比如断电\计算任务内存不足,把缓存清理给计算让路。RDD的数据是过程数据,只在处理的过程中存在,一旦处理完成,就不见了。原创 2023-10-19 19:21:33 · 132 阅读 · 0 评论 -
Spark-shell运行测试
调度每个job执行,在启动Spark-shell时,自动创建Spark context对象,变量名称为:sc,提供给用户读取数据。在spark-shell界面加载数据:val wordRDD = sc.textFile("/datas/wordscount.txt");分割数据: val wordsRDD=wordRDD.flatMap(line => line.split("\\s+"))在启动spark-shell时,自动创建SparkSession对象,变量名称为:spark,以供用户使用读取数据。原创 2023-09-14 20:50:58 · 203 阅读 · 0 评论 -
Hive复杂数据类型(array类型、map类型、struct类型)
一、array类型建表语句:create table 表名(要素1 类型,要素2 类型,要素3 array) row format delimited fileds terminated by '\t' collection items terminated by ',';原创 2023-09-06 17:01:51 · 2989 阅读 · 1 评论 -
Hive的外部表、内部表、分区表、分桶表
由于load data不会触发mapreduce,也就没有计算过程1(无法执行hash算法,只是简单的移动数据,所以无法用于分桶表数据插入)将大的文件分成一个个小的文件,操作的时候直接操作小文件,hive支持多个字段进行分区,多分区带有层级关系,例如公司的季度表,可以按照年分区,然后年里面再使用月分区,月里面再使用日分区。分桶和分区一样,也是一种通过改变表的存储模式,从而完成对表优化的一种调优方式,但和分区不同,分区是将表拆分到不同的子文件夹中进行存储,而分桶是将表拆分到固定数量发不同文件中进行存储。原创 2023-08-24 20:08:04 · 496 阅读 · 1 评论 -
Hive基础操作语法(数据库操作、数据表操作、数据加载和导出)
语法:insert overwrite [ local ] directory ' path ' row format delimited fields terminated by " \t" select_statement1 from_statement;create table 表名(要素1 数据类型,要素2 数据类型,····,要素N 数据类型)insert into 表名 values(要素1 ,要素2,······要素N )注意:-e后将接sql语句,-f后接sql脚本。原创 2023-08-24 18:15:19 · 197 阅读 · 1 评论 -
Apache Hive概述以及在linux安装hive
将SQL语句翻译成MapReduce程序运行。基于Hive为用户提供了分布式SQL计算能力,写的是SQL,运行的是MapReduce。Hive的优点:①操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。②底层执行MapReduce,可以完成分布式海量数据的SQl处理。原创 2023-07-26 19:28:37 · 813 阅读 · 2 评论 -
分布式计算概述(MapReduce && Yarn理论及部署)
分布式计算,即以分布式的形式完成数据的统计,得到想要的结果。MapReduce提供了2个编程接口:·Map:提供了”分散“的功能,由服务器分布式对数据进行处理。·Reduce:提供了”汇合(聚合)“的功能,将分布式的处理结果汇总统计。用户如需使用MapReduce框架完成自定义需求的程序开发,只需使用Java、Python等编程语言,实现MapReduce功能接口即可。(1)资源调度资源:服务器硬件资源,如:CPU、内存、硬盘、网络等资源调度:管控服务器硬件资源,提供更好的利用率。原创 2023-07-25 15:59:58 · 554 阅读 · 0 评论 -
HDFS客户端(Jetbrians 产品插件)
(3)在URL输入namenode的ip加:8020(注意冒号使英文冒号),在Hadoop user name一路上输入hadoop用户名,最后点击test connection连接。(1)将下载的hadoop.dll和winutils.exe复制到hadoop的bin目录里。链接:https://pan.baidu.com/s/1ZLYpfA9MXJZFGYQ3PGqvTQ。链接:https://pan.baidu.com/s/1kTC3p5VwDAWKxziM4YBUjg。原创 2023-07-22 11:03:57 · 300 阅读 · 1 评论 -
HDFS存储原理(存储原理、fsck命令、namenode元数据、读写流程)
edits文件,是一个流水账文件,记录hdfs中的每一次操作,以及本次操作影响的文件及其对应的block。但是edits文件检索有一个问题:当用户想要查看某文件内容,如/tmp/data/test.txt,就需要在全部的edits中搜索(还需要按顺序从头到尾,避免后期改名或者删除效率非常低)。这个属性默认是3,一般情况下,无需主动配置(除非需要设置非3的数值),如果需要自定义,需要将三台机器文件配置文件都修改。在遇到多个大小不等的文件需要存储时,由于文件大小不同,所分出的部分的大小也不相同。原创 2023-07-24 16:52:16 · 1209 阅读 · 0 评论 -
Hadoop HDFS分布式文件系统(介绍以及基础操作命令)
HDFS是Hadoop三大组件(HDFS、MApReduce、YARN)之一。全称是Hadoop Distributed File System(Hadoop分布式文件系统)。是Hadoop技术栈内提供的分布式数据存储解决方案,可以在多台服务器上构建集群,存储海量的数据。2.HDFS基础架构HDFS是一个典型的主从模式的架构HDFS集群分为三个角色:主节点(NameNode):HDFS系统的主角色,是一个独立的进程,负责管理HDFS整个文件系统,负责管理DataNode。原创 2023-07-20 17:06:40 · 2272 阅读 · 0 评论 -
Hadoop集群安装常见问题以及解决方法
1.切换到root用户(su - root),进入根目录下的etc文件夹(cd //etc),找到sudoers文件,首先对文件权限进行修改(sudo chmod 751 sudoers),修改完成为下图所示。2.打开属性,首先查看hosts文件是不是只读文件,如果是只读文件,将其修改为可修改文件(取消勾选只读),然后对文件进行修改。(2)点击users,在允许一列勾选修改,然后点击确定,重新修改hosts文件并保存。3.如果修改文件后无法保存,显示没有权限,则对hosts文件的权限进行修改。原创 2023-07-20 09:31:30 · 1524 阅读 · 2 评论 -
Hadoop集群环境配置及安装配置(详细过程包含安装包)
进入到网络配置文件中。快照,是对虚拟机的当前状态进行保存,在虚拟机出现问题无法解决,可以通过返回快照,使虚拟机返回到快照拍摄状态。4.配置jdk软连接 命令:ln -s /export/servers/jdk1.8.0_361 /export/servers/jdk。3.选择克隆对象,一共有两种方式,第一种是直接克隆虚拟机的当前状态,第二种是选取虚拟机的快照,克隆指定快照的虚拟机状态。构建软连接: ln -s /export/servers/jdk/bin/java /usr/bin/java。原创 2023-07-07 21:54:57 · 32734 阅读 · 48 评论 -
Linux基础命令
>:表示追加输出将命令的输出追加到一个文件中,如果文件不存在则创建文件,如果文件已存在则在文件末尾追加内容。>:表示覆盖输出,将命令的输出重定向到一个文件中,如果文件不存在则创建文件,如果文件已存在则覆盖文件内容。... :表示上级目录,比如 .../ 表示上级目录,... / ... /表示上级目录的上级目录。语法:chown [ -R ] [ 用户 ] [ : ] [ 用户组 ] 文件或文件夹。-d:指定用户的HOME路径,不指定默认在:/home/用户名。原创 2023-07-26 10:06:12 · 233 阅读 · 1 评论