
spark
文章平均质量分 64
hzp666
这个作者很懒,什么都没留下…
展开
-
Hudi 0.12.0 搭建——集成 Hive3.1 与 Spark3.2
Hudi 默认依赖的 Hadoop 为 Hadoop2.x,要兼容 Hadoop3.x,则需要修改 Hudi 源码。找到镜像依赖配置,添加新的下载依赖,我这里选用的阿里云依赖,必须放在第一个,否则不会起作用。找到镜像属性配置的那里,添加镜像,我这里选用的阿里云镜像。,而 Hudi 本身用的 jetty 版本是。需要 10 分钟左右,等待依赖下载完成。出现如下界面,表示 Hudi 编译成功。,其携带的 jetty 版本是。,存在依赖冲突,会造成编译错误。文件,修改组件的对应版本号。编译完成后,相关的包都在。转载 2023-04-04 10:40:12 · 2429 阅读 · 0 评论 -
Hudi集成Spark之并发控制-并行写入
针对写入操作(upsert、insert等)利用乐观并发控制来启用多个writer将数据写到同一个表中,Hudi支持文件级的乐观一致性,即对于发生在同一个表中的任何2个提交(写入),如果它们没有写入正在更改的重叠文件,则允许两个写入都成功。基于前面DeltaStreamer的例子,使用Delta Streamer消费kafka的数据写入到hudi中,这次加上并发写的参数。(4)zk下产生了对应的目录,/multiwriter_test下的目录,为代码里指定的lock_key。3)查看zk是否产生新的目录。转载 2023-09-27 09:40:11 · 327 阅读 · 0 评论 -
对spark算子aggregateByKey的理解
aggregateByKey算子其实相当于是针对不同“key”数据做一个map+reduce规约的操作。举一个简单的在生产环境中的一段代码有一些整理好的日志字段,经过处理得到了RDD类型为(String,(String,String))的List格式结果,其中各个String代表的是(用户名,(访问时间,访问页面url))同一个用户可能在不同的时间访问了不同或相同的页面,为了合并同一个用户的访问行为,写了下面这段代码,用到aggregateByKey。...转载 2022-07-27 13:46:04 · 228 阅读 · 0 评论 -
spark学习9.1:sparkStreaming接kafka
1.kafka介绍kafka可以作为传输的中间件。即生产者和消费者中间的代理商。1.1 kafka中broker 介绍即kafka中集群的每个服务器,每个服务器就是一个broker1.2 topic某类数据的主题。比如,订单数据都丢给订单topic,物流数据都丢给物流topic。生产者把数据丢给某个topic,消费者订阅某个topic,拉取数据。每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑原创 2022-05-20 14:03:55 · 267 阅读 · 2 评论 -
Datax抽取数据到hive中decimal类型操作
一、问题背景之前在做Datax数据同步时,发现源端binary、decimal等类型的数据无法写入hive字段。看了一下官网文档,DataX HdfsWriter 插件文档,是1-2年前的,当初看过部分源码其实底层hadoop是支持这些类型写入的,后来随着工作变动也忘了记录下来,借着近期datax群里又有人问起,勾起了回忆,索性改一下源码记录一下。很重要的一点:我们其实要知道,datax只不过是个集成了异构数据源同步的框架,真正的读取和写入都是数据源底层本身支持功能才能用,所以要想知道某个功能支不支持转载 2022-05-18 11:27:29 · 2143 阅读 · 0 评论 -
Spark常用参数解释
Spark的默认配置文件位于堡垒机上的这个位置: $SPARK_CONF_DIR/spark-defaults.conf,用户可以自行查看和理解。需要注意的是,默认值优先级最低,用户如果提交任务时或者代码里明确指定配置,则以用户配置为先。 用户再理解参数含义的基础上,可根据具体任务情况调整参数(修改提交参数--conf值,不是spark-defaults.conf文件)。以下常用参数配置均可以通过 --conf XXX=Y 方式使用,其他参数以及介绍请参考Configuration - Spar..原创 2022-03-01 13:11:12 · 607 阅读 · 0 评论 -
spark中RSS工具简介
一、Spark Shuffle对于 spark shuffle 这一过程,网络上有非常多的文章进行说明,这里简单描述介绍下。Spark 包含三种 shuffle writer,上图展示的是 BypassMergeSortShuffleWriter (有兴趣的用户可以自行阅读社区源码),以此为例简单介绍 spark shuffle。Shuffle Writer 会将每个 shuffle write task 的数据,按照一定的规则进行划分,比如说 hash(具体什么规则是通过 rdd.原创 2022-03-01 13:11:25 · 3388 阅读 · 0 评论 -
spark报错:CREATE TEMPORARY TABLE
异常信息:2022-02-09 03:14:01 INFO Error in query:2022-02-09 03:14:01 INFOCREATE TEMPORARY TABLE is not supported yet. Please use CREATE TEMPORARY VIEW as an alternative.(line 3, pos 4)2022-02-09 03:14:01 INFO2022-02-09 03:14:01 INFO == SQL ==2022-02-09..原创 2022-02-22 09:41:56 · 2226 阅读 · 0 评论 -
spark 或 hive报错:bigger than spark.driver.maxResultSize
异常信息:Job aborted due to stage failure: Total size of serialized results of 17509 tasks (2.0 GiB) is bigger thanspark.driver.maxResultSize (2.0 GiB)解决方案:spark.driver.maxResultSize默认大小为1G,指的是每个Spark action(如collect)所有分区的序列化结果的总大小限制,就是说,executor给driv.原创 2022-02-22 09:40:59 · 2105 阅读 · 0 评论 -
spark报错:The current account does not have the permission of database
异常信息:22/01/18 20:21:34 [main] WARN HiveSessionCatalog: The current account does not have the permission of database [adm], It may be a virtual database.Error in query: Table or view not found: `adm`.`adm_d07_cps_batch_det`; line 1 pos 14;'GlobalLimit原创 2022-02-22 09:39:36 · 886 阅读 · 0 评论 -
dockers报错:Cannot connect to the Docker daemon
异常信息:22/01/1413:58:44[Reporter]INFOYarnAllocator:Completedcontainercontainer_e118_5690061100801_24379300_01_000066onhost:BJLFRZ-Evil-153-70.hadoop.jd.local(state:COMPLETE,exitstatus:7)22/01/1413:58:44[Reporter]WARNYarnAllocator:Cont...原创 2022-02-22 09:38:20 · 1032 阅读 · 0 评论 -
spark报错OutOfMemoryError
异常信息:Job aborted due to stage failure: Task serialization failed:java.lang.OutOfMemoryError: GC overhead limit exceeded解决方案:GC太多导致任务失败,一般情况下是因数据不均导致某些executor压力较大导致。用户排查下数据,并根据数据修复下程序。...原创 2022-02-22 09:35:02 · 1375 阅读 · 0 评论 -
spark报错:ROW FORMAT SERDE is incompatible with format ‘orc‘
错误样例:CREATE TABLE wangriyu_bugtt1(task_no int,exec_ip int)ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'STORED AS ORC报错:Error in query:Operation not allowed: ROW FORMAT SERDE is incompatible with format 'orc', which also specifies原创 2022-02-22 09:30:55 · 799 阅读 · 0 评论 -
spark学习9:sparkStreaming
1.sparkStreaming是什么?sparkStreaming 其实是对RDD进行微批量处理,核心还是对RDD的操作。只不过spark是线程级的应用,实现秒级的运算是可以的。所以sparkStreaming并不是真正意义上的流处理,最多实现秒级响应,无法做到毫秒级。所以sparksSreaming比较适合 实时和批量数据相结合的场景。2.sparkStreaming工作机制跟spark工作机制非常相似,因为本身就是spark对RDD的操作。1.每个workerN..原创 2022-01-11 18:10:23 · 1906 阅读 · 0 评论 -
spark学习8.1:sparkSQL的数据库操作
1.在spark-shell交互环境在启动spark-shell时候,必须指定 jar 和 driver类路径,这两个路径是一致的,都是mysql驱动的路径。2.在idea中2.1.添加mysql驱动然后选择对应的jar包2.2读取数据import org.apache.spark.sql.SparkSessionobject sparkSQLTestJDBC { def main(args: Array[String]...原创 2022-01-05 18:09:39 · 2484 阅读 · 0 评论 -
在idea中pom.xml添加sparkSQL依赖
在idea中 ,如果没有sparkSQL的依赖,需要现在pom.xml 中添加依赖,<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.12</artifactId> <version>3.0.3</version></dependency>如果不确定下载哪个版本,Apach.原创 2021-12-30 10:42:56 · 6367 阅读 · 1 评论 -
Exception in thread “main“ java.lang.NoSuchMethodError: org.apache.spark.ContextCleaner.registerSpar
这种情况一般是 spark组件的版本不一致,我这里就是 spark-core 和sparkSQL 的版本不一致,在pom.xml 中修改一直即可。<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.0.3</version></d.原创 2021-12-30 10:38:07 · 1941 阅读 · 0 评论 -
idea 添加dependency 依赖,报错找不到依赖
报错:Could not transfer artifact XXX from/to central错误的问题这种一般是 pom.xml中 ,没有指定maven 仓库地址,引用阿里库 即可在pom.xml 的二级目录下,(project 目录的下级), 添加下边代码,<!-- /* for aliYun ware house */--> <repositories> <repository> &l.原创 2021-12-29 11:28:51 · 3639 阅读 · 1 评论 -
spark学习8:spark SQL
1.spark SQL是什么?spark SQL类似 hive 的功能。hive 是把SQL转译成 查询hadoop的语法,而spark SQL是把 SQL转译成 查询spark的语法。并且,spark SQL的前身 shark(也叫hive on spark) 就是借鉴的hive的 前几个步骤,即除了最后的转译成 查询spark的代码,之前都借鉴了。2.为什么用spark SQL?2.1关系型数据库在大数据时代的不足根源还是因为关系型...原创 2021-12-27 16:57:45 · 1706 阅读 · 0 评论 -
数据倾斜3
前言相信很多接触MapReduce的朋友对'数据倾斜'这四个字并不陌生,那么究竟什么是数据倾斜?又该怎样解决这种该死的情况呢?何为数据倾斜?在弄清什么是数据倾斜之前,我想让大家看看数据分布的概念:正常的数据分布理论上都是倾斜的,就是我们所说的20-80原理:80%的财富集中在20%的人手中, 80%的用户只使用20%的功能 , 20%的用户贡献了80%的访问量 , 不同的数据字段可能的数据倾斜一般有两种情况: 一种是唯一值非常少,极少数值有非常多的记录值(唯一值少于几千) 一转载 2021-10-26 14:20:09 · 214 阅读 · 0 评论 -
大数据常见端口汇总
目录大数据常见端口汇总一、Hadoop二、Zookeeper三、Hbase四、Hive五、Spark六、Kafka七、Flink八、Flume九、Redis十、CDH十一、HUE大数据常见端口汇总一、Hadoop50070:HDFS WEB UI端口8020 : 高可用的HDFS RPC端口9000 : 非高可用的HDFS RPC端口8088 : Yarn 的WEB UI 接口8485 : JournalNode 的RPC端口转载 2021-07-23 16:35:37 · 998 阅读 · 0 评论 -
spark学习7.1:对RDD进行排序取前几
原始数据:两个文件根据第三列,进行倒叙排序,取最大前5个代码:import org.apache.spark.{SparkConf, SparkContext}object Top { def main(args: Array[String]): Unit = { //creat conf val conf = new SparkConf().setAppName("TopApplicationTest").setMaster("local")...原创 2021-06-25 17:20:17 · 2908 阅读 · 0 评论 -
Spark性能调优之Shuffle调优
Spark性能调优之Shuffle调优 •Spark底层shuffle的传输方式是使用netty传输,netty在进行网络传输的过程会申请堆外内存(netty是零拷贝),所以使用了堆外内存。 •shuffle过程中常出现的问题常见问题一:reduce oom? 问题原因: reduce task 去map端获取数据,reduce一边拉取数据一边聚合,reduce端有一块聚合内存(executor memory * 0.2),也就是这块内存不够 ...转载 2021-06-16 11:44:10 · 596 阅读 · 0 评论 -
spark之shuffle原理及性能优化
ShuffleManager里有四个接口,register,reader,writer和stop。核心接口则是reader和writer,当前版本reader接口只有1个实现,writer接口有3个实现,每种实现分别对应不同的场景。writer 3种:1.BypassMergeSortShuffleWriter ,使用场景shuffle中没有map端的聚合操作 输出的分区数小于spark.shuffle.sort.bypassMergeThreshold,默认是200sh..转载 2021-06-16 11:23:04 · 1793 阅读 · 0 评论 -
spark中哪些算子会导致shuffle
spark中会导致shuffle操作的有以下几种算子、1、repartition类的操作:比如repartition、repartitionAndSortWithinPartitions、coalesce等2、byKey类的操作:比如reduceByKey、groupByKey、sortByKey等3、join类的操作:比如join、cogroup等重分区: 一般会shuffle,因为需要在整个集群中,对之前所有的分区的数据进行随机,均匀的打乱,然后把数据放入下游新的指定数量的分区内byKey类转载 2021-06-15 18:47:11 · 5307 阅读 · 0 评论 -
spark中shuffle运行原理
ShuffleManager里有四个接口,register,reader,writer和stop。核心接口则是reader和writer,当前版本reader接口只有1个实现,writer接口有3个实现,每种实现分别对应不同的场景。writer 3种:1.BypassMergeSortShuffleWriter ,使用场景shuffle中没有map端的聚合操作 输出的分区数小于spark.shuffle.sort.bypassMergeThreshold,默认是200sh..转载 2021-06-15 18:18:50 · 333 阅读 · 0 评论 -
spark中repartition和coalesce的区别
目录:一.区别二.使用三.总结一.区别repartition(numPartitions:Int):RDD[T]coalesce(numPartitions:Int,shuffle:Boolean=false):RDD[T]他们两个都是RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为true的简易实现,(假设RDD有N个分区,需要重新划分成M个分区)二.使用1)N < M。一般情况下N个分区有数据分布不均匀的状况,利用HashPa转载 2021-06-15 14:59:02 · 655 阅读 · 0 评论 -
大数据面试题
大数据面试题https://www.yuque.com/zhongguohaopangzi/igi4hb/kws4zv京东1、列举几种数据倾斜的情况,并解释为什么会倾斜,以及如何解决?Join的时候发生数据倾斜: join的键对应的记录条数超过这个值则会进行分拆,值根据具体数据量设置set hive.skewjoin.key=100000; set hive.optimize.skewjoin=false广而告之1、近期做得什么项目,你负责什么模块,什...转载 2021-06-10 16:45:45 · 1947 阅读 · 0 评论 -
idea打包spark程序上传集群运行
IDEA编写scala代码并打包上传集群运行我们在IDEA上的maven项目已经搭建完成了,现在可以写一个简单的spark代码并且打成jar包上传至集群,来检验一下我们的spark搭建后是否真正可以使用了1.简单编写个spark程序import org.apache.spark.{SparkConf, SparkContext}import com.alibaba.fastjson.JSONobject JsonTest { def main(args: Array[String原创 2021-06-10 13:22:09 · 1731 阅读 · 0 评论 -
idea中编写spark程序并打包到集群执行
本篇主要介绍了如何使用IDEA在本地打包Spark应用程序(以K-Means为例),并提交到集群执行。1、 安装JDK与Scala SDKJDK和Scala SDK的安装在这里不再赘述,需要注意的是:要设置好环境变量,这样新建项目时就能自动检测到对应的版本,同时版本最好不要太高,以避免版本不兼容的问题,本篇采用的是JDK 8.0与Scala 2.10.6。JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/Scala下载转载 2021-06-10 10:20:38 · 3106 阅读 · 0 评论 -
spark程序Scala脚本使用fastJson解析JSON格式数据
源数据样式{"name":"Michael","sex":1}{"name":"Andy", "age":30,"sex":2}{"name":"Justin", "age":19}解析后为map键值对代码如下:1. pom.xml 引入依赖:/*for json*/<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson&...原创 2021-06-09 19:18:42 · 947 阅读 · 0 评论 -
spark保存计算结果
4.数据读取与保存 Spark 的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:Text 文件、Json 文件、Csv 文件、Sequence 文件以及 Object 文件;文件系统分为:本地文件系统、HDFS、HBASE以及数据库。1)数据读取:textFile(String)scala> val hdfsFile = sc.textFile("hdfs://hadoop102:9000/fruit.txt")hdf...转载 2021-05-21 15:09:29 · 1379 阅读 · 0 评论 -
大数据集群可视化管理界面
hadoop:hadoop:http://master:50070/dfshealth.html#tab-overviewhdfs;http://master:50070/explorer.html#/yarn:http://master:8088/clusterspark集群:http://master:8080/原创 2021-05-21 13:36:25 · 579 阅读 · 0 评论 -
spark-shell 加载本地文件报错 java.io.FileNotFoundException
学习spark-shell 时候发现一个问题,从本地文件加载数据生成RDD 报错,文件找不到原因:spark-shell 如果启动了集群模式, 真正负责计算的executor会在,该executor所在的 worker节点上读取文件,并不是在master节点上读取。解决方案: 把数据文件传给各个worker节点for i in {1..2}; do scp -r /root/spark slave$i:/root/; done详细情况:首先 进入spark-shell...原创 2021-05-21 11:32:27 · 1364 阅读 · 0 评论 -
spark学习7:RDD编程
1.目录2.创建RDD两种方式2.1从文件系统加载sc.textFile() 方法来加载文件数据,并将文件数据转换为RDD2.1.1 从本地文件加载数据2.1.2加载hdfs文件原创 2021-05-20 15:31:02 · 1020 阅读 · 0 评论 -
spark学习6:应用程序的打包部署
standlone 集群模式下 ,提交应用后,可以在浏览器中输入 spark://master:8080查看执行情况yarn集群模式下,提交应用程序ps:在 spark-shell中 系统默认会生成一个 sparkContext,也就是sc 可以直接拿来用。不必像在编写应用程序时,自己代码去生成。ps:grep 管道函数,过滤只展示跟“Pi is roughly”相关的信息...原创 2021-05-20 13:18:53 · 242 阅读 · 0 评论 -
spark学习5:spark-shell
1.spark提供了交互式接口 spark-shellspark-shell 实现了用户可以逐行输入代码,进行操作的功能。 即可以不像Java一样,编写完所有代码,然后编译才能运行spark-shell 支持 Scala交互环境 和 python交互环境在学习测试中可以使用spark-shell 进行API学习2.进入Scala交互环境在spark安装目录的根目录下,有个bin目录中有个 spark_shell2.1 在本机生成spark指挥所,创建sparkCo...原创 2021-05-19 13:08:46 · 7751 阅读 · 0 评论 -
spark学习4:spark安装
spark和hadoop的 搭载配置spark的env 环境1. cd spark-3.0.1/conf 找到spark-env.sh 文件2.在配置文件中 添加export HADOOP_CONF_DIR=/home/hzp/software/hadoop/hadoop-3.2.1/etc/hadoop/ 彩色这部分 是变化的,填写hadoop 的根目录2....原创 2021-05-17 14:03:53 · 149 阅读 · 0 评论 -
spark学习3:RDD运行原理
1.RDD设计背景为了解决 MapReduce的 频繁磁盘IO开销,序列化和反序列化的开销,因为从磁盘读取数据转换为对象 需要反序列化, 在对象落磁盘时候 需要序列化原创 2021-05-11 10:31:48 · 1132 阅读 · 0 评论 -
spark学习2:spark运行基本架构
各个名词介绍:1.RDD -弹性分布式数据集2.DAG -有向无环图反应各RDD之间关系3.executorexecutor是 驻守在各个工作节点中的一个进程,负责生成线程 来执行分配给该工作节点的任务4.application程序员编写的一整个代码文件,比如一个 wordcount 代码文件5.任务executor派生出的一个个 线程,每一个线程处理一个任务6.作业一个application 会被且分为多个 作业,每个...原创 2021-05-10 16:23:21 · 640 阅读 · 4 评论