自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 Flink分流,合流,状态,checkpoint和精准一次笔记

两条流的格式可以不一样, map操作使用CoMapFunction,process 传入:CoProcessFunction。keyBy 进行了按键分区,那么要传入的就是 KeyedBroadcastProcessFunction;2.1 union :使用 ProcessFunction 处理合流后的数据。如果没有按键分区,就传入 BroadcastProcessFunction。(2)两阶段提交(two-phase-commit,2PC)第十章:检查点(Checkpoint)

2023-08-18 16:33:50 810

原创 hadoop2的集群数据将副本存储在hadoop3

因此,如果您的 HDFS 所在路径是在 Hadoop2 集群中,您可以在 Hadoop3 集群上添加新的节点,并向 Hadoop3 集群中添加这些新节点上的数据副本。然后,需要更新在 Hadoop2 中的 HDFS 配置文件,以将 Hadoop3 中新节点的 IP 或主机名添加到配置文件中的 datanode 节点清单中。使用上述方法,您可以将 Hadoop2 中的文件副本复制到 Hadoop3 集群上,同时也可以向新的 Hadoop3 集群中添加更多的节点以实现更好的性能和可靠性。

2023-08-18 08:38:44 894

原创 数据治理内容

业务发展中,存在大量无用待下线的数据表,及生命周期设定过长的数据表,未做整治,梳理出长期未被使用/引用模型,及生命周期不符合当前标准模型,未分区,空表,文件数,文件格式等(通过数据血缘模型或平台捞出)由于早期业务快速扩张,对元数据把控不到位,导致成熟期出现大量不合规模型。定期扫描:不规范的模型分层引用、模型跨ods层依赖,空表、未更新表等。烟囱模型及时下线:烟囱表及时切换/下线,提升核心数据模型复用率。建设管控:大的需求进行模型评审。解决:数据标准:元数据补充。

2023-08-10 15:32:34 224

原创 hbase优化:客户端、服务端、hdfs

在Num(Region of Table) < Num(RegionServer)的场景下切分部分请求负载高的Region并迁移到其他RegionServer。是否使用布隆过滤器:任何业务都应该设置Bloomfilter,通常设置为row就可以,除非确认业务随机查询类型为row+cf,可以设置为rowcol。在业务可以接受的情况下开启异步批量提交,使用方式:setAutoFlush(false)检查RowKey设计以及预分区策略,保证写入请求均衡。WAL是否需要同步写入。3.列簇:是否过多、

2023-08-01 10:41:55 1347

原创 ClickHouse笔记

background_distributed_schedule_pool_size:分布式发送执行后台任务的线程数,默认 16,建议改成 cpu个数的 2 倍(线程数)类 LSM Tree的结构,定期在后台 Compaction,顺序 append 写,50MB-200MB/s 的写入吞吐能力,按照每行。max_table_size_to_drop:建议修改为 0,这样不管多大的分区表都可以删除。1.TinyLog:列文件的形式保存在磁盘上,不支持索引,没有并发控制,是和少量数据,一般可用于平时测试。

2023-07-26 10:37:46 723

原创 spark3使用zstd压缩

spark想不进行文件切分,文件是多大就起几个task,参数设置。写出的文件使用zstd压缩,spark3才开始支持。

2023-07-12 17:37:07 436

原创 Spark读取parquet文件的切分逻辑

1.实际使用结果记录,申请资源 --num-executors 200 --executor-memory 8G --executor-cores 2。1.实际使用结果记录,申请资源 --num-executors 100 --executor-memory 8G --executor-cores 1。//读取文件时打包成最大的partition大小 256M,对应一个block大。//通过 fs 获取文件的大小bytes,// 总共读取的大小。// 文件打开开销,每次打开文件最少需要读取的字节 4M。

2023-07-11 09:02:36 468

原创 hive中map和reduce个数的是如何计算的

参数mapred.min.split.size(默认值1B)和mapred.max.split.size(默认值64MB)分别用来指定split的最小和最大大小。参数hive.exec.reducers.bytes.per.reducer用来设定每个reducer能够处理的最大数据量,默认值1G(1.2版本之前)或256M(1.2版本之后)。参数hive.exec.reducers.max用来设定每个job的最大reducer数量,默认值999(1.2版本之前)或1009(1.2版本之后)。

2023-07-07 14:29:15 1220

原创 flink任务jar包冲突解决方案 maven项目protobuf-java的jar包和集群上的jar包冲突解决方案

pom中解决冲突后,上传至集群,偶尔成功,偶尔jar包冲突,原因:集群是jvm的类加载器是随机加载的,所以将pom中打包的时候对相关jar包进行重命名,问题解决。

2023-06-30 08:57:54 311

原创 hive创建外部表语句,hdfs的文件类型为parquet

创建成功后,需要手动更新分区信息 alter table add partition(day=‘2023-01-01’)string comment ‘日期’LOCATION ‘hdfs路径’

2023-06-05 08:48:23 318

原创 spark读取hive表,获取分区字段

spark.table(hiveTable).sparkSession.catalog.listColumns(hiveTable).filter(x => x.isPartition).map(_.name)

2023-05-30 08:43:18 515

原创 spark的内存管理

val memoryManager: MemoryManager = UnifiedMemoryManager(conf, numUsableCores) --统一内存管理,(动态内存管理)val usableMemory = systemMemory - reservedMemory --可用内存。val maxMemory = getMaxMemory(conf){–能够使用的最大内存。spark中shuffle的写入磁盘的数量。shuffle中落盘的数量 M。M为maptask的数量。

2023-05-23 19:47:14 414

原创 spark应用程序的执行

sparkconf --配置对象,基础配置sparkEnv --环境对象,通讯环境SchedulerBackend --通讯后台 住哟啊用于和Executor之间进行通讯TaskScheduler – 任务调度器 任务调度DAGScheduler – 阶段调度器 阶段划分1.rdd依赖。

2023-05-22 19:18:43 517

原创 spark源码 spark on yarn环境的创建

ApplicationMaster.sparkContextInitialized(sc) --当前的初始化环境已经完成了,让ApplicationMaster 中的val sc = ThreadUtils.awaitResult 继续往下执行。driver线程执行的过程中,注册应用程序是阻塞的,当反射执行main方法的时候,去创建SparkContext并完成初始化之后,通知注册应用程序继续执行,当executor反向注册之后,然后通知action算子继续执行。

2023-05-16 19:45:07 562

原创 spark 报错

spark 将数据写入hdfs 报 Container killed by YARN for exceeding memory limits. 8.5 GB of 8 GB physical memory used. Consider boosting spark.yarn.executor.memoryO。

2023-05-08 15:52:48 204

原创 sparksql 将array[int]转为array[long]

sparksql 集合类型转换

2023-05-05 14:27:22 234 1

原创 flink笔记:028 任务(task)和任务槽(task slots)

这样一来,我们在 slot 上执行一个子任务时,相当于划定了一块内存“专款专用”,就不需要跟来自其他作业的任务去竞争内存资源了。假如一个 TaskManager 有三个 slot,那么它会将管理的内存平均分成三份,每个 slot 独自。每个任务槽(task slot)其实表示了 TaskManager 拥有计算资源的一个固定大小的子集。的任务节点的子任务可以共享 slot。一个 slot 中,可以将程序处理的所有任务都放在这里执行,每个任务节点的并行子任务一字排开,占据不同的 slot;

2023-04-02 17:49:03 540

原创 flink笔记:027 作业图(JobGraph)与执行图(ExecutionGraph)

由 Flink 程序直接映射成的数据流图(dataflow graph),也被称为逻辑流图(logical StreamGraph),因为它们表示的是计算逻辑的高级视图。四层:逻辑流图(StreamGraph)→ 作业图(JobGraph)→ 执行图(ExecutionGraph)→ 物理图(Physical Graph)。在这个转换过程中,有几个不同的阶段,会生成不同层级的图,其中最重要的就是作业图(JobGraph)和执行图(ExecutionGraph)。

2023-04-02 17:23:01 486

原创 flink笔记:022-26系统架构

其实客户端并不是处理系统的一部分,它只负责作业的提交。具体来说,就是调用程序的 main 方法,将代码转换成“数据流图”(Dataflow Graph),并最终生成作业图(JobGraph),一并发送给 JobManager。提交之后,任务的执行其实就跟客户端没有关系了。

2023-04-02 17:03:23 336

原创 sparksql执行报错grows beyond 64 KB

报错内容Code of method “apply_2(Lorg/apache/spark/sql/catalyst/expressions/GeneratedClass(Lorg/apache/spark/sql/catalyst/expressions/GeneratedClass(Lorg/apache/spark/sql/catalyst/expressions/GeneratedClassSpecificUnsafeProjection;Lorg/apache/spark/sql/catalyst

2023-03-29 10:49:59 409

原创 flink笔记:009-013 wordcount

【代码】flink笔记:009-011 wordcount。

2023-03-15 19:43:19 55

原创 hadoop查看小文件的方式

1.使用hdfs命令获取Fslmage数据文件 – hdfs dfsadmin -fetchimage /tmp meta。2.使用hdfs oiv命令解析Fsimage文件 – hdfs oiv-i./tmp meta/4.使用Sqoop脚本将Hive元数据中关于Hive库和表的信息抽取的Hive中。6.执行analyse_sq/all_hdfs.sql语句通过各个维度查找小文件。3.将解析的csv文件加载到Hive的HDFS META TEMP表中。

2023-03-14 20:42:28 595

原创 yarn的工作流程

5.Container会先进行一个初始化的工作,初始化完成AM会通知对应的NM开启 container。7.container在运行期间会向AM汇报自己的进度,状态等信息,并与AM保持心跳。4.AM向RM申请响应数量的Container用来运行task任务。2.RM会去NM中开启一个container容器用来运行AM。8.等待应用执行完毕,AM向RM注销自己,并允许RM收回资源。6.NM开启container。1.客户端向RM提交作业。3.AM会向RM注册自己。

2023-03-14 20:37:33 54

原创 MR的shuffle过程

5.reduceTask发起拉取线程,去map端拉取数据,拉过来的数据会先存储到内存中,内存放不下了就放到磁盘中,等到数据拉取完毕之后会再进行一个归井排序然后再对数据进行分组,以组为单位将数据发送到reduce()方法中。1.mapper()方法做业务逻辑处理,然后将数据传到分区方法中,给数据标记好分区,将数据发送到环形缓冲区环形缓冲区默认100M,达到80%的调值进行溢写操作。2.溢写之前会进行排序,排序的规则是字典序排序,排序的手段呢是快排。

2023-03-14 20:37:09 124

原创 hadoopHA的架构原理

6.standbv中的监控器一旦检测到zk中的节点消失 则立即注册并通知standbv状态的 NameNode开始工作standbv会先去远程执行kill-9 activeNameNode节点的端口杀死他后,开始切换到active状态开始工作。4.两个NameNode谁先在zk中注册成功则谁就是active状态,剩下的那个则是standby。5.如果active节点挂掉了,监控器则将zk中注册的节点注销掉。3.监控器会监控NameNode的状态,并在zk中注册节点。

2023-03-14 20:33:34 45

原创 MR详细工作流程

4.maptask会调用InPutFormat()方法去HDFS上面读取文件,InPutFormat()方法会再去调用 RecordRead()方法将数据以行首字母的偏移量为kev,一行数据为value传给mapper()方法。12.归并后的文件会再次进行一次分组的操作,然后将数据以组为单位发送到reduce方法13.reduce方法做一些逻辑判断后,最终调用OutputFormat()方法,Outputformat()会再去调用。1.在客户端执行submit()方法之前,会先去获取一下待读取文件的信息。

2023-03-14 20:27:09 339

原创 flink笔记:002-008

基本介绍

2023-03-08 21:09:48 49

原创 使用excle 求z值、p值、置信度

正分分布

2023-03-08 20:28:18 2618

原创 spark-submit 配置和实际申请到的yarn的资源是如何计算

spark-submit 申请yarn资源计算规则

2023-02-24 11:10:05 418 1

原创 spark处理struct格式的数据

val spark = SparkSession.builder().master("local[*]").appName(this.getClass.getSimpleName).getOrCreate() val sc = spark.sparkContext val fs = FileSystem.get(sc.hadoopConfiguration) sc.setLogLevel("error") import spark.implicits._ v..

2021-07-27 11:07:50 1733

原创 使用scala将map转为case class 的类

case class Testtt(name:String,age:String)object TestDay { def main(args: Array[String]): Unit = { val map = new mutable.HashMap[String, String]() map.put("name","小明") map.put("age","20") println(createCaseClass[Testtt](map)) } .

2020-11-17 18:13:03 1098

原创 sparkstreaming 读取kafka数据,写入hdfs,使用saveAsHadoopFile

package com.vivo.ai.streamingimport java.time.format.DateTimeFormatterimport java.time.{Instant, LocalDateTime, ZoneId}import com.vivo.ai.streaming.AppstoreVideoInfo.coverTimeStampToStringimport org.apache.hadoop.mapred.lib.MultipleTextOutputFormati

2020-07-10 18:08:21 1743 4

原创 spark 写出的文件中出现{ “empty“:false, “traversableAgain“:true }

问题:scala语言spark将数据转成一个json写出去的时候,写出的文件中出现{ “empty”:false, “traversableAgain”:true }原因:JSON.toJSONString(map)转为string时出现问题,转为java的集合类就可以了JSON.toJSONString(map.asJava)//导包import collection.JavaConverters._...

2020-07-10 16:15:16 2774

原创 使用scala使用fastjson将map转json报错

报错内容Error:(87, 13) ambiguous reference to overloaded definition,both method toJSONString in object JSON of type (x$1: Any, x$2: com.alibaba.fastjson.serializer.SerializerFeature*)Stringand method toJSONString in object JSON of type (x$1: Any)Stringmat

2020-07-08 19:31:56 1416

原创 hbase报错,not deployed on any region server.

hbase 报错ERROR: Region { meta => realinfo,21d17e54-cd72-4cea-8add-94f15a77149d_156785905,1573523226841.e3bd1d385e36a284c9f33a08243229ce., hdfs => hdfs://nameservice1/hbase/data/default/realinfo/...

2020-03-19 14:31:38 2461

原创 查询hbase数据报错 found in META, but not in HDFS

解决方法:1.hbase hbck 表名,是否有error错误2.sudo -u hbase hbase -fixMeta 表名3.再次执行第一步,错误消失

2020-01-14 13:52:46 937

原创 spark报错illegal cyclic reference involving object InterfaceAudience

代码中使用了两次1.第一次使用val fs = FileSystem.get(sparkSession.sparkContext.hadoopConfiguration)第二次使用2.sparkSession.sparkContext.parallelize(list)改为下述一次生成,多次调用:va sc=sparkSession.sparkContextval fs = File...

2019-10-29 13:47:38 2642

原创 scala 使用java8的LocalDateTime实现字符串和时间戳的互换

将字符串转换为时间戳 def coverStringTimeToLong(time:String): Long ={ val format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") val parse = LocalDateTime.parse(time, format) //getEpochSecond...

2019-10-16 15:06:54 532

原创 mysql 给用户添加某个数据库的权限

第一步:使用root用户进入mysql第二步:添加用户权限,其中 esmc2(数据库的名字),evsmc(用户名),ev@z9w5(密码)grant all privileges on evsmc2.* to ‘evsmc’@’%’ identified by ‘ev@z9w5’ with grant option;第二步 刷新权限flush privileges;...

2019-09-05 17:16:17 8752

原创 使用python3,批量杀死同一个进程的PID

import signalimport osimport subprocessname=subprocess.Popen(['pgrep', '-f', "tail -F /opt/web_app/forward-service/logs/service.log"], stdout=subprocess.PIPE, shell=False,universal_newlines=True)...

2019-08-15 19:33:30 433

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除