神龙龙
码龄6年
关注
提问 私信
  • 博客:18,913
    18,913
    总访问量
  • 35
    原创
  • 849,049
    排名
  • 19
    粉丝
  • 0
    铁粉

个人简介:一只专心学习的龙

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:吉林省
  • 加入CSDN时间: 2018-11-03
博客简介:

qq_43597431的博客

查看详细资料
个人成就
  • 获得34次点赞
  • 内容获得11次评论
  • 获得58次收藏
创作历程
  • 32篇
    2021年
  • 3篇
    2020年
成就勋章
TA的专栏
  • hive
    5篇
  • 大数据
    16篇
  • spark
    4篇
  • hadoop
    7篇
  • 数据库
    6篇
  • sql练习
    1篇
  • linux
    2篇
兴趣领域 设置
  • 大数据
    databasemysqlhbasehadoophiveredisstormsparkflumeflink数据库hdfsmapreduceclouderasqoop大数据etl
  • 前端
    json
  • 云原生
    zookeeper
  • 微软技术
    sql
  • 搜索
    elasticsearch
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Hive的优化

所谓的调优就是在总资源不变的情况下尽可能提高job执行的效率 无外乎cpu的负载优化磁盘网络io一、压缩 1)数据源压缩:我们业务中ods层使用了snappy压缩 虽然不支持切片但是由于我们的hdfs sink控制了滚动大小128M所以用户行为数据不涉及切片问题 数据量还是很小的 2)输入端 mapper端 reducer端都可以采用压缩 map输出端采用压缩可以减少job中map和reducetask之间数据的传输量reduce端输出阶段压缩:当hive将输出写入到表中输出的内...
原创
发布博客 2021.09.09 ·
217 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

解决Hive和Spark数据倾斜

一、Hive数据倾斜一般都发生在Sql中groupby和joinon上1.不同数据类型关联产生数据倾斜例如:两个表进行关联,其中一个字段类型是int一个是String解决:把数字类型转换成字符串类型2.空值分布:经常有大量的空值数据进入到一个reduce中导致数据倾斜解决:自定义分区,将为空的key转变为字符串+随机数,将因为空值造成的数据倾斜数据分不到不同的reducer中(如果一下特殊异常值不需要可以直接where过滤掉)3.groupby代替distinct4....
原创
发布博客 2021.08.29 ·
1215 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

解决Hadoop数据倾斜

一、什么是数据倾斜简而言之就是数据分布不均匀,某一个key非常多会导致那个Reduce主机压力大造成数据倾斜,造成集群的效率低下,一些任务出现卡死在99%的情况下不运行,资源的利用率低下二、解决办法1.提前在map进行combine,减少数据传输的数据量在mapper加上combiner相当于提前进行reduce,就是把mapper中相同的key进行了聚合,减少了shuffle过程中传输的数据量,以及reducer端的计算量2.导致数据倾斜的key大量的分布在不同的mapper
原创
发布博客 2021.08.29 ·
750 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Hive解决小文件

一、小文件的产生源头1.数据源本身就是有很多小文件2.动态分区插入数据产生大量小文件,导致map数据剧增3.reduce个数越多小文件的个数越多4.insert插入数据时也会产生过多小文件:ReduceTask数量*分区数=文件数或MapTask*分区数=文件数二、小文件产生的影响1.对于它的存储底层Hdfs来说,HDFS本身就不适合存储小文件,每一个小文件就是150Byte如果大量的小文件产生会导致NameNode元数据增多,占用大量内存2.对于hive来说,每一个小文.
原创
发布博客 2021.08.29 ·
267 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

HDFS解决小文件

一、har回档(存储方向)每个文件均按块存储,每个块的元数据存储在NameNode的内存中,因此HDFS存储小文件会非常低效。因为大量的小文件会耗尽NameNode中的大部分内存。但注意,存储小文件所需要的磁盘容量和数据块的大小无关。例如,一个1MB的文件设置为128MB的块存储,实际使用的是1MB的磁盘空间,而不是128MB。HDFS存档文件或HAR文件,是一个更高效的文件存档工具,它将文件存入HDFS块,在减少NameNode内存使用的同时,允许对文件进行透明的访问。具体说来,HDFS存.
原创
发布博客 2021.08.28 ·
1513 阅读 ·
3 点赞 ·
1 评论 ·
7 收藏

HDFS生产调优大全

一、HDFS——核心参数1.NameNode内存生产配置1)NameNode内存计算每个文件大概占用150字节,一台服务器128G内存为例,能存储128*1024*1024*1024/150Byte=9.1亿约等于9亿块2)Hadoop2.x配置NameNode内存NameNode内存默认2000M,如果服务器内存4G,NameNode内存可以配置3g,在hadoop-env,.sh文件中配置HADOOP_NAMENODE_OPTS=-Xmx3072m3)hadoop3.x.
原创
发布博客 2021.08.28 ·
315 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

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 ·
239 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Spark Shuffle未优化及优化后 hash shuffle sort shuffle(二)

在该模式下,数据会写入一个数据结构,reduceByKey写入map,一边通过map局部聚合,一边写入内存。达到一定阈值会将内存数据写入磁盘,清空内存结构。在溢写磁盘之前会根据key进行排序,排序后会分批写入磁盘中。一个task会产生多个临时文件,最后再每个task中将所有的临时文件进行合并,也就是一个task的所有数据都在这一个文件中,同时单独写一份索引文件,标识下游各个task的数据在文件中的索引start offset 和end offset触发机制:shuffle reduce...
原创
发布博客 2021.08.28 ·
193 阅读 ·
1 点赞 ·
0 评论 ·
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 ·
146 阅读 ·
1 点赞 ·
0 评论 ·
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 ·
557 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

HBase分区过多的影响

HBase每张表在底层存储上是由至少一个Region组成,Region实际上就是HBase表的分区。HBase新建一张表时默认Region即分区数量为1,一般在生产环境中我们都会手动给Table提前做预分区,使用合适的分区策略创建好一定数量的分区并使分区均匀分布在不同的regionserver上,一个分区在达到一定大小时会自动Split,一分为二。频繁刷写:Region的一个列族对应一个MemStore,假设HBase表都有统一的1个列族配置,则每个Region只包含一个MemStore。通常HBas
原创
发布博客 2021.07.13 ·
601 阅读 ·
4 点赞 ·
0 评论 ·
2 收藏

Hbase架构总结

Hbase定义: HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。 Hbase数据模型: 逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map。 逻辑结构: 物理结构: Hbase基本架构:Region Server...
原创
发布博客 2021.07.11 ·
195 阅读 ·
2 点赞 ·
2 评论 ·
1 收藏

ERROR: KeeperErrorCode = NoNode for /hbase/master

集群正常启动后,hbaseshell中查看表时发现报错了。1.查看日志发现是zookeeper的问题2.出现该问题不是hbase本身的问题,而是zookeeper的影响,因为zookeeper是监控整个HBASE节点状态,控制集群通信的重要工具。3.在zookeeper客户端中 zkCli.sh 删除HBASE的节点数据 deleteall /hbase即可解决删除完不报错...
原创
发布博客 2021.07.11 ·
1579 阅读 ·
2 点赞 ·
1 评论 ·
6 收藏

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 ·
2704 阅读 ·
2 点赞 ·
0 评论 ·
10 收藏

Clickhouse精细入门

ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。Clickhouse特点真正的列式数据库管理系统:对于列的聚合, 数据类型 Clickhouse表引擎 sql操作...
原创
发布博客 2021.07.07 ·
249 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

sql中如何查询第N高数据

案例select IFNULL( (select distinct Salary from Employee order by Salary desc limit 1 offset 1),NULL) as SecondHighestSalary;思路模式:1.ifnull(expression,alt_value):如果第一个参数的表达式expression为null,则返回第二个参数的备用值(此题目返回null)
原创
发布博客 2021.06.15 ·
728 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

HDFS读写流程--精细

一、写数据流程使用客户端Client,向Namenode发起写文件的请求Namenode会检查是否已存在文件,通过检查则先将操作写入EditLog中,并返回输出流对象。(EditLog记录的是最新的hdfs客户端执行所有的写操作,若后续执行失败也不会丢失数据)client客户端按照128M的块进行切分文件。client将Namenode分配的可写的datanode列表和data数据发送给最近的第一个DataNode节点中(如果第一个block块数据读取完成就会关闭指向第一个block块的data
原创
发布博客 2021.06.14 ·
171 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

Shell中提交了一个脚本,但是进程号不知道要怎么杀死进程?

ps -ef | grep XXX | grep -v grep | awk ‘{print $2}’ | xargs kill|:管道符 用来隔开两个命令,管道左边命令的输出作为管道右边命令的输入。“ps -ef ”查看所有进程的命令“grep xxx”:所有包含关键字xxx的进程“grep -v grep”:列出的进程中除去包含grep的关键字进程“awk ‘{print $2}’ ”:打印过滤后的行第二列,第二列正好是进程号pid“xargs kill -9”:xargs命令用来把前面命
原创
发布博客 2021.06.14 ·
295 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

sql中where和on的区别

数据库在通过连接两张或多张表来返回记录时,会生成一张中间的临时表,然后再将这张临时表返回用户,在使用left join时,on和where条件的区别如下:1.on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2.where条件是在临时表生成好后,再对临时表进行过滤的条件,这时已经没有left join的含义了,条件不为真的就全部过滤掉。...
原创
发布博客 2021.06.14 ·
177 阅读 ·
1 点赞 ·
1 评论 ·
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 ·
375 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多