自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

idream

bigdata

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 代码调优 —— 时间复杂度

逻辑成本今天在调优小伙伴代码的时候偶然发现一个方法,逻辑上差不多是这样:public static long demo (int i){ if ( i <= 1) { return 1; }else{ return i * demo( i - 1); }}其实正常来看没什么问题,编译执行都没问题,而且用了递归算法,基准情况值为1,但其实这个递归用的并不好,实际上就是一个被包装的for循环,时间为O(N)可修改成:/**

2021-05-12 16:53:27 306

原创 flink —— checkpoint机制

引言checkpoint刚接触这个机制的是在spark框架中,spark中Lineage(血统)是spark能快速恢复容错的基本,有cache和persist(都是RDD内存缓存),区别只是在于一个包装,cache只有一个默认的缓存级别MEMORY_ONLY ,而persist可以根据情况设置其它的缓存级别。而存在内存中,保证局部rdd恢复,但如果整个job挂了,内存中的缓存也就不见了,所以出现了checkpoint机制。checkpoint与cache和persist方案一样,都是将RDD

2021-05-06 16:20:54 3358 1

原创 flume —— NullPointerException: Expected timestamp in the Flume event headers, but it was null

如题错误:可能大多人送所这个问题都会告诉你:修改hdfs-sink:a1.sinks.k1.hdfs.useLocalTimeStamp = true的确,这么做的确也可以解决上述问题,但你确定这是你想要的结果么?解释:首先看错,很明显,event的header中获取timestamp属性为空,就是你sink的时候需要使用timestamp的属性。一般使用这个属性的场景应该都是a1.sinks.k1.hdfs.path = hdfs://nameservice/*/

2021-03-25 17:17:13 962

原创 flume —— java.lang.AbstractMethodError: org.apache.avro.specific.SpecificFixed.getSchema/或者其他init问题

昨天使用flume的avrosource的时候遇到这个问题,也从网上查了一下,基本上都在强调avro包版本问题。的确有这个可能,但可能性很小,除非你flume下载后你直接覆盖了lib里原生依赖。然后我去框架下lib看了一下arvo版本1.7.4(flume版本是1.9.0),然后去官网看了一下原生包也是1.7.4.所以我就pass掉了这个解释。然后仔细看一下报错问题,error类型的确一样,去github上追了一下源码,初始化调用方法getSchema和一些其他初始化配置,所以可以确定在

2021-03-23 11:08:20 326 3

原创 shell —— bash + expect 服务器间一键登录(针对需要服务器无法直连,开发者也懒得输入密码的)

情景:机器A —(动态密码)> 机器B —(密钥+密码)> 机器C—(密钥+密码)> 机器D使用技术:expect(可百度安装 yum install 就行)其中命令有很多,简单说一下,spawn 交互程序开始后面跟命令或者指定程序expect 获取匹配信息匹配成功则执行expect后面的程序动作send exp_send 用于发送指定的字符串信息exp_continue 在expe...

2021-03-18 11:17:30 636

原创 kafka —— 消费者组与重平衡机制

概念kafka由Producer(生产者)、Topic(主题)、Consumer(消费者)三部分组成。消费组id(group id)相同的消费者,组成一个消费者组。kafka的设计理念就是在消息队列的基础上优化产生的,首先了解一下什么是消息队列。消息队列刚接触消息队列的时候,是在后端中的activeMQ消息中间件,后来了解到消息队列分点对点和发布订阅俩种:1、点对点:如图,Producer 1(生产者)发送一条消息到queue,只有一个Consumer 1(消费者)能收到。消费者接收消息,.

2021-03-10 20:41:22 1332 2

原创 kafka —— 阻塞监控系统 ,拿来就能用的那种

#!/bin/bashcd /home/kafka/kafka_2.11-1.1.0 (此处是先进入kafka文件夹内部 好启动lag值脚本)send_mail(){ echo "$i队列LAG值为$lag" |mail -s "$i队列未消费offset超出$lag个" -c 这里填上自己的邮箱(但是需要提前安装mailsend插件)}当然上面是如果超过阈值就给哪些责任人发送...

2019-07-30 16:19:07 310

原创 移动硬盘、存储卡等移动存储 无法存容量之内的文件问题解决

啊啊啊有人会碰到这个问题移动硬盘存储容量:可用:100G 已用:400G有一个文件 50G将其移动到硬盘中存储会报:文件过大,无法存储!有时会考虑是不是有木马之类的了。。。。直接说解决方案:右键点击移动硬盘,弹出框中有 格式化,点击然后将分配单元大小修改大一些,例如我修改成4G刚才无法存储的文件就可以存储了。造成文件大小 < 硬盘容量 却无法存储的问题的原因:文件中单文件大小超过硬盘准许大小,所以调高就好了。但不是调越高.

2021-07-01 11:33:30 1612

原创 hive —— 迁移数据后,hive查表无数据,修复元数据

对于我来说,应对CDH 或者 hadoop 集群迁移;迁移肯定分几大步:1、新集群搭建2、数据迁移3、新旧集群衔接,下线旧集群当做第二步的时候,我使用的dictcpsethive.msck.path.validation=ignore

2021-05-20 16:09:40 1047

原创 hive —— 3.xx版本hive on tez,ACID,需要注意的地方,很多坑,一定要注意!我用的是3.1.0

hive3.1.0 创建内部表,默认ACID特性,会导致spark-shell无法查询表

2021-05-10 11:40:46 863

原创 hdfs —— 为什么hadoop1块大小要设置成64M,hadoop2设置成128M

总结128M相对hadoop2开源时的数据传输网络io和磁盘io更匹配如果公司集群带宽和磁盘io速度更加优秀,完全可以根据实际进行调优,256M、512M等.这个是一个在大数据集群中一个比较好的调优方向猜测:hadoop1当时可能处于硬件较落后的时代,64M为当时最优数据传输量级,也有可能当时开源人员未曾考虑这一层。而hadoop2之后考虑这层之后或者应对当时硬件效率更改为128M论据1、现在大部分集群节点之间使用千兆网卡,实际数据传输速度大约在100M/s2、当时磁盘写入也大多

2021-04-15 10:48:57 989

原创 hive —— map join和common join(reduce join)

Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join)。简单介绍一下两种join的原理和机制。Common JoinMap阶段读取源表的数据,Map输出时候以Join on条件中的列为key,如果Join有多个关联键,则以这些关联键的组合作为key;Map输出的value为join之后所关心的(select或者where中需要用到的)列;同时在value中还会包含表的Tag信息,用于标明此value对应哪个表;按照key进

2021-03-12 19:14:02 454

原创 flume —— 事务

事务:从开始到结束为原子性,开始到结束整条链路成功才提交flume使用两个独立的事务分别负责从soucrce到channel,以及从channel到sink的事件传递。1、soucrce到channeldoPut: 把批数据写入到临时缓冲区putListdoCommit: 检查Channel容量是否足够,如果容量足够则把putList里的数据发送到Channel,然后清空putList中的数据。doRollBack:如果Channel容量不够,则把数据回滚到putList注:Flume

2021-03-12 15:15:05 239

原创 spark —— 消费kafka数据怎么做到线程并发对应分区

这个问题有好多人都写了解释(但我看基本都是一个人写的样子。。。后面会加一些不同的解释)对于基本的结论我也搬一下:https://m.sohu.com/a/252918555_315839/简单说就是根据官方文档的direct样例启动kafkadatastream,直接就是一一对应的。而其他方式就可能不是了,所以说说其他不是要怎么做到一一对应(毕竟这样才是最高效率的消费方式)——1)修改kafkaRDD类的getPartition方法:就是通过设置 topic.partition.su

2021-03-12 11:34:00 924

原创 flume —— capacity、transactionCapacity、flumeBatchSize、BatchSize解释与优化

flume 调优配置参数解释channeltype 必填:memorycapacity 默认值:100 解释:通道中存储的最大事件数transactionCapacity 默认值:100 解释:每次channel从source获取事件或推送给sink的最大事件数keep-alive 默认值:3s 解释:添加或删除事件的超时时间(以秒为单位)byteCapacityBufferPercentage 默认值:20 解释:定义byteCapacity和通道中所有事件的估计总大小之间

2021-03-11 18:03:20 1893

原创 kafka —— offset篇

KAFKAoffset提交方式三种1、自动提交方式“enable.auto.commit”, “true”是否自动提交“auto.commit.interval.ms”, “5000”间隔多久ms提交2、手动提交 —— 同步consumer.commitSync();3、手动提交 —— 异步consumer.commitAsync();3种提交方式优缺点1、自动提交优点:不用自己管理offset缺点:可能会出现数据重复原因:调用poll()方法时将offset提交,所以如果

2021-03-08 19:23:46 4184

原创 hive —— hql的一些注意问题

删除线格式 @TOChql的一些注意问题直接给答案了,可以自己测试一下count distinct和groupby1、使用count(distinct xxx) 时会自动过滤字段为NULL的值,而group by 不会,所以两个结果不一致。2、count(distinct xxx) 会把数据发送到一个reducer上,如果数据量比较大(过亿),就会出现数据倾斜问题,而group by则会产生多个reduce,性能上提升很高(也可以分开用,先对字段distinct ,然后查子表数据再count)

2021-03-02 19:25:42 164

原创 docker —— 安装文档(一步一个坑趟出来的)

Docker安装文档:查看内核:需高于3.10uname –r卸载已有(可先查一下是否已有,没有不用执行):sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrota...

2020-04-10 10:35:41 235

原创 解决Google和postman占用C盘问题

进入C:\Users\86199\AppData\Local\Google\Chrome将User Data文件夹可以删除,但是如果你已经有了个性化的东西,那就剪切到除C盘以外的地方cmd打开命令窗口 mklink /j C:\Users\86199\AppData\Local\Google\Chrome\"User Data" "E:\Google\Chrome\User Data...

2020-03-20 11:34:29 6808

转载 shell的特殊字符

实例:/bin/bash script.sh "1001 1002 1003 1004 1005" 1 , 脚本里面要赋值给变量a=1005 , b="1001 1002 1003 1004"#!/bin/bashfunction A(){ a=${!#} b=${@:1:$#-1}}A $1 这里"1001 1002 1003 1004 1005"...

2019-06-03 13:50:17 243

原创 RedisDesktopManager连接不上redis的解决方法

本文章是在自己研究redis的时候,查询到文章,然后结合了自己后面的坑RedisDesktopManager是一款连接redis数据库的客户端。背景:我是在自己机器上装的redis,使用的是虚拟机,系统是linux 版本是centeros-6.7在使用这个连接redis的时候,发现连接不上。第一步:在自己的本机外面试下能不能连接上虚拟机,打开cmd,使用 ping 192.168....

2019-05-30 14:20:27 1890 1

原创 kafka —— consumers 消费者 group 找不到得原因

近期也有一个需求问题:spark消费kafka数据,消费过程没有任何问题,数据正常消费,编译没问题,运行也没问题。但是:无论从哪里,kafka manager或者其他得,都找不到group组。检查kafka,检查ETLspark代码最后测试发现:消费kafka数据,就是将offset得提交方式从自动改为手动而且在执行过程中你也没有手动提交offset值就会出现gro...

2019-05-21 15:35:44 10196 3

原创 flume —— Interceptor 拦截器

近期因为业务需要,解决数据漂移问题(数据漂移:flume从kafka拉取日志到hdfs,因为使用得拦截器timestamp,就是使用系统时间作为日志落地得时间,因为kafka数据乱序问题,所以有些昨天得数据会被打上今天得系统时间;举个例子:日志内得时间戳是2019-5-20 23:59:59,但是却存在了2019-5-21得文件夹下)所以为了解决这个问题,就要提取日志中得时间戳,作文存储...

2019-05-21 15:11:07 549

原创 hadoop —— hdfs读写原理

首先从数据采集处&gt;存到HDFS上,解决数据存不下问题&gt;&gt;&gt;分布式存储,横向发展增加存储服务器个数解决数据查询不方便&gt;&gt;&gt;NN的元数据存储解决数据的故障丢失问题&gt;&gt;&gt;副本机制解决上传下载效率低下问题&gt;&gt;&gt;文件切块HDFS对数据文件进行split,切成的block大小hadoop1.X 默认64M,2.X...

2019-02-22 18:00:58 607

原创 大数据框架重要知识点梳理

以后的博客会按照以下顺序进行解释,如果对大数据有兴趣,并且自学不知道如何学习的,可以关注一下,哪里有问题也可以评论提出,我哪里理解错了,也希望大神指出1、java相关的知识点 1、多线程 2、io流 3、反射 4、JVM-----需要重点关注 2、hadoop2.1 HDFS 1、hdfs读写原理 2、hdfs角色和作用 2.2 ...

2019-02-22 17:20:34 678

原创 spark底层核心 RDD详解

##spark底层核心RDD##是什么?弹性分布式数据集简单点就理解成一个list集合RDD = {1,2,3}有什么属性?用idea中注释的话来解释有5大属性1、一个分区列表,数据集的基本组成单位RDD以分区为单位,一个分区一个task任务来处理执行,可以在创建RDD时指定RDD的分区个数,如果没有指定,那么就会采用默认值。2、一个计算每个分区的函数sparkRDD计算是以分...

2019-02-15 11:35:03 652

原创 MapReduce 个人理解

2018-12-28 21:37:04 105

datagrip.zip

适合需要使用永久版datagrip的人群

2021-06-01

空空如也

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

TA关注的人

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