大数据
文章平均质量分 60
神龙龙
一只专心学习的龙
展开
-
Hive的优化
所谓的调优就是在总资源不变的情况下尽可能提高job执行的效率 无外乎cpu的负载优化磁盘网络io一、压缩 1)数据源压缩:我们业务中ods层使用了snappy压缩 虽然不支持切片但是由于我们的hdfs sink控制了滚动大小128M所以用户行为数据不涉及切片问题 数据量还是很小的 2)输入端 mapper端 reducer端都可以采用压缩 map输出端采用压缩可以减少job中map和reducetask之间数据的传输量reduce端输出阶段压缩:当hive将输出写入到表中输出的内...原创 2021-09-09 17:11:24 · 217 阅读 · 0 评论 -
Spark架构流程 以及任务的划分
1)将任务提交给RM,申请ApplicaitonMaster2)RM收到请求后,分配container在合适的NM上,并启动ApplicationMaster,此时App就是Driver3)Driver向RM申请Executor内存,RM收到请求后会分配container在合适的NM上启动Executor进程4)Executor进程启动后会向Driver进行反向注册,Executor全部注册完后5)Driver端运行客户端程序中的main方法6)在main方法中构建了SparkCont...原创 2021-08-28 09:52:50 · 239 阅读 · 0 评论 -
Spark Shuffle未优化及优化后 hash shuffle sort shuffle(二)
在该模式下,数据会写入一个数据结构,reduceByKey写入map,一边通过map局部聚合,一边写入内存。达到一定阈值会将内存数据写入磁盘,清空内存结构。在溢写磁盘之前会根据key进行排序,排序后会分批写入磁盘中。一个task会产生多个临时文件,最后再每个task中将所有的临时文件进行合并,也就是一个task的所有数据都在这一个文件中,同时单独写一份索引文件,标识下游各个task的数据在文件中的索引start offset 和end offset触发机制:shuffle reduce...原创 2021-08-28 09:50:10 · 193 阅读 · 0 评论 -
Spark Shuffle未优化及优化后 hash shuffle sort shuffle(一)
起初spark向hadoop看齐,根据key的hash值往外溢出文件,每个task都分成3种类别的数据,把不同类别的数据汇聚计算最终的结果,reducer会根据分区号找到自己类别的数据汇聚成一个大的集合。缺点:每个map溢出的文件之间不互通,任务有多少个reduce就要开放多少个reduce溢出文件,导致设置分区数越大,消耗的物流空间越大,大量的溢出文件容易造成OOM优化后的shuffle使用合并机制,复用buffer,hash算法会根据key进行分类,同一个进程中把相同的key放在...原创 2021-08-28 09:47:28 · 146 阅读 · 0 评论 -
大白话解释拉链表
1.拉链表的定义:记录每条信息的生命周期,一旦一条记录的生命周期结束,就重新开始一条记录,并把当前日期放入生效开始日期。用户ID 姓名 手机号 开始时间 结束时间 1 李四 185****8454 2020-05-12 200-05-12 1 李四 156****5612 2020-05-13 2020-05-16 1 李四 137****1864 2020-05-17 9999-99-99原创 2021-08-28 09:38:46 · 557 阅读 · 0 评论 -
HBase分区过多的影响
HBase每张表在底层存储上是由至少一个Region组成,Region实际上就是HBase表的分区。HBase新建一张表时默认Region即分区数量为1,一般在生产环境中我们都会手动给Table提前做预分区,使用合适的分区策略创建好一定数量的分区并使分区均匀分布在不同的regionserver上,一个分区在达到一定大小时会自动Split,一分为二。频繁刷写:Region的一个列族对应一个MemStore,假设HBase表都有统一的1个列族配置,则每个Region只包含一个MemStore。通常HBas原创 2021-07-13 11:35:37 · 601 阅读 · 0 评论 -
ERROR: KeeperErrorCode = NoNode for /hbase/master
集群正常启动后,hbaseshell中查看表时发现报错了。1.查看日志发现是zookeeper的问题2.出现该问题不是hbase本身的问题,而是zookeeper的影响,因为zookeeper是监控整个HBASE节点状态,控制集群通信的重要工具。3.在zookeeper客户端中 zkCli.sh 删除HBASE的节点数据 deleteall /hbase即可解决删除完不报错...原创 2021-07-11 10:48:20 · 1579 阅读 · 1 评论 -
Clickhouse中使用Bitmap表
建表create table user_tag_merge ( uid UInt64, gender String, agegroup String, favor String)engine=MergeTree()order by (uid);准备数据insert into user_tag_merge values(1,'M','90后','sm');insert into user_tag_merge values(2,'M','70后','sj');insert i原创 2021-07-08 16:24:27 · 2704 阅读 · 0 评论 -
Clickhouse精细入门
ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。Clickhouse特点真正的列式数据库管理系统:对于列的聚合, 数据类型 Clickhouse表引擎 sql操作...原创 2021-07-07 23:08:46 · 249 阅读 · 0 评论 -
Flume各组件总结
一个Agent主要由三部分组成 Source Channel SinkSource是负责接收数据到Flume Agent的组件。类型如下:avor /thrift /exec /jms /spooling directory /netcat /sequence generator /syslog /http /legacysourceAvro source:监听Avro端口和从外部Avro端接收事件流 当与上一个flume agent搭配内置Avro sink 可以创建分层集合拓扑。原创 2021-06-14 00:35:47 · 375 阅读 · 0 评论 -
Scala函数式编程(二)
函数作为值使用package com.atguigu.chapter04object Scala1 { def main(args: Array[String]): Unit = { //TODO 函数式编程 -函数作为对象使用 //函数是scala语言非常重要的语法结构,万物皆函数 //函数在scala中不仅仅是功能的封装,也可以看做对象来用 //1.将函数作为对象赋值给变量 def fun1(): Unit ={ println("f.原创 2021-03-01 19:23:12 · 367 阅读 · 0 评论 -
Scala函数式编程(一)
基本语法[修饰符] def 函数名 (参数列表) : [:返回值类型] = {函数体}private def test ( s : String ) : Unit = {println (s)}函数与方法的区别scala方法是类的一部分,函数是一个对象,可以赋值给一个变量。即在类中定义商务函数都是方法。scala与java类似,方法是组成类的一部分,scala中的函数则是一个完整的对象。声明在类中的函数称之为方法,所以类中的函数就应该符合方法的约束:重写和重载。函数没有重写和重载的概念原创 2021-02-28 19:43:53 · 203 阅读 · 0 评论 -
Kafka总结
Kafka总结一、kafka概述1.1 kafka定义Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。订阅式模式:一对多的关系,一个生产者,数据存储在消息队列中,多个消费者均可从这个消息对列中获取数据,消费者消费数据之后不会清除消息。1.2 框架说明一般都是从命令行和API两个方面进行讲解。数据处理框架需要从数据的安全性以及效率两个方面深入了解。1.3 Kafka涉及的关键词1. producer: 消息的生产者,即为向kafka broker原创 2021-02-10 16:39:17 · 318 阅读 · 2 评论 -
对Flume的理解
一个channel只能输出一个结果文件。一个flume agent 由 source + channel + sink 构成,类比于mapper + shuffer + reducer。1.source类型source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据常用类型:1) arvo: 用于Flume agent 之间的数据源传递2) netcat: 用于监听端口3)exec: 用于执行linux中的操作指令4) spooldir: 用于监视文件或目录5) t..原创 2021-02-10 16:25:17 · 220 阅读 · 0 评论 -
Zookeeper工作机制
ZK的选举机制的原理过程选举的总原则:当zk集群中任意一台机器得到选票数超过机器总数的一半以上,它就是当前集群的leader。1. 新搭建的集群(没有数据)举例说明:以5台机器为例前提:集群配置没问题!1,2,3,4,5 顺时启动server1 启动此时它会给自己投票,因为当前票数没有过半,它的投票结果出于(LOOKING)server2 启动此时先给自己投一票,然后server2和server1进行通信,相互交换选票,此时发现给自有一票,那么进行myid的比较,2 >原创 2021-02-09 17:59:08 · 341 阅读 · 0 评论 -
关于Maven的介绍和使用
关于Maven的介绍和使用以前的我们每次创建一个新的工程就要将jar包重复复制到lib目录下,造成工作区中存在大量的重复文件。使用Maven后每个jar包只在本地仓库中保存一份,只要维护它的坐标,这样做不但节约空间而且避免了重复文件过多造成的损失和混乱Maven的使用使用Maven可以享受完全统一规范对的jar包管理体系,只需要在项目中以坐标的形式依赖一个包,Maven就会从自动中央进行下载,并且同时下载这个jar包所依赖的其他jar包。1. 目录结构– IDEA中创建Maven工程,以及原创 2020-12-24 12:57:09 · 188 阅读 · 0 评论
分享