自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 小白入门Thrift RPC框架

一、准备工作thrift是跨语言的RPC框架,需要通过thrift compiler将thrift idl编译成java代码,因此在使用thrift框架时需要在PC机上安装thrift compiler。笔者使用的Mac Pro,安装步骤如下:安装brew(亲测有用)/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装thrift# 

2021-04-05 11:16:36 190

原创 累加器使用不当,导致spark driver内存溢出问题

问题说明  最近借助自定义spark累加器的方式去监控我司大数据平台处理接入的数据量(自定义累加器定义可以参考方法,可以参考AccumulatorV2.scala),但是最近项目局点同事反馈,文件数很多的情况下,spark driver端会出现OOM。(现场driver内存配置了80G)问题定位过程  因为现场dump文件达到80+G,因此,不能把dump文件完整的拿到办公机器来分析,只能借...

2019-09-22 09:12:12 1085

原创 记mysql优化SQL的一些技巧

select语句,尽量去指定字段,减少IO、网络消耗;使用in时,选项不宜过多;经验值:少于200个尽量使用union all、而不是union,如果两边子集有重复记录,那也可以用distinct来解决;性能较高的分页方式:where id> 866612 limit 20(这比直接用limit 866612,20效率高)避免在where 后面添加 is null判断条件(加这个就...

2019-09-04 21:33:09 134

原创 linux awk初体验

背景说明    最近的项目上,跟其他交互模块定了一个接口文件,其中列分别为:文件名,文件全路径,文件大小,type。笔者想计算一下这个接口文件“文件大小”列值之和是多少。本来想写一段java代码去实现该功能,但是由于公司网络部署情况,idea不能直连服务器(没有想到把接口文件拷贝到台式机),于是就想到用awk命令来完成该功能。    下面给出了一条样例数据CHARGINGCDR_4009-Z...

2019-09-04 20:58:27 111

原创 java Checksum接口来验证跨hdfs集群传输文件的正确性

背景说明    项目中,为了减少备份机房hdfs namenode内存压力,将采集文件压缩成tar,再传输至备份机房。在此期间,为了确保跨集群传输tar包的正确性,在生成tar文件时,需要生成crc32值。下面给出了java生成crc32值的代码。具体代码实现public interface IChunkSum extends Checksum{ /** * 获取校验值...

2019-09-04 18:30:06 350

原创 记一次使用spark累加器来实现流程数据量监控功能

业务场景    采集工具采集的文件中以日期为标识,但是该文件中却可能包含了多天的数据,所以在统计当天推送文件记录总数时,需要记录当天的文件录入了详单表的哪些分区。后续业务开发利用这种映射关系,就可以缩小详单表分区范围,尽快的统计出当天入库记录数。(这仅仅是该业务统计的一个指标,利用此处的累加器,还可以高效率的统计过滤,脏数据条数)解决方案方案一、再触发一次action    采即对落地...

2019-07-28 21:28:40 503

原创 日常问题定位——kafka topic leader none ISR为空

问题描述    某据点演示环境,用代码自动创建topic及kafka-console-consumer.sh手动创建topic,用kafka-topic.sh查看topic详细信息时,leader列显示为none,且SIR列显示为空。如图所示:解决过程1、首先想到的是zookeeper /controller目录下是否有值,controller在选举partition leader有重要作...

2019-06-08 12:25:49 7695 1

原创 Kafka总结——KafkaProducer

    我司使用kafka版本为1.1.0,主要有两个使用场景:其一,消息通信;其二,与spark streaming集成使用。本文用来记录笔者对kafka producer的使用、理解。Producer主要工作过程1、 将消息包装成ProducerRecord对象2、 对ProducerRecord对象进行序列化3、 Interceptor(该步骤暂时没有使用场景)4、 通过parti...

2019-06-02 22:45:22 201

原创 日常问题系列——Java字节码解决nosuchmethoderror

问题描述    异常信息,如下:解决过程在lib下使用grep -R “XXXX” .命令,查看该类在哪个包中,执行结果如下:lz4-1.3.jarlz4-java-1.4.0.jar用反编译工具jd-gui,查看这两个包中LZ4BlockInputStream构造器可以接收哪些参数。    异常信息中(Ljava/io/InputStream;z)V,这表明LZ4Bloc...

2019-05-31 22:36:52 148

原创 日常问题系列——JVM参数定位ClassNotFoundException/NoClassDefFoundError

背景    由于华为fushioninsight平台升级了版本(spark、hadoop版本大跃进),导致我司的大数据平台对接失败,最近,根据华为客户端的jar包,重新编译大数据平台代码,在重新对接过程中,出现了一些jar包导致的问题,本文就记录一个解决ClassNotFoundException/NoClassDefFoundError异常的过程。异常信息如下:解决过程在lib下使用g...

2019-05-31 22:05:59 511

原创 yarn笔记——资源调度器区别

    公司里维护的hadoop是cdh版本,yarn资源调度器默认使用fair scheduler,最近在对接华为fushioninsight平台,该平台中的yarn使用的capacity scheduler。好奇这两种调度类型的区别,经过hadoop权威指南和网上现有的博客,做如下整理Fair scheduler与capacity scheduler的区别相同点    两种调度器,层次化...

2019-05-25 21:27:59 467

原创 Scala高级语法系列之隐式转换

  Scala隐式转换可分为三种类型:隐式参数、隐式类型转换、隐式类。其中,隐式类只能定义在单例对象/伴生对象中,笔者还没想到很好的使用场景,本篇不做案例。案例一、隐式参数package basicobject ImplicitParameter extends App { def add(a:Int)(implicit b:Int,c:Int) = a + b + c impl...

2019-05-16 08:07:44 144

原创 记一次sparksql读取oracle数据优化过程

问题描述Sparksql提供外接关系型数据库的接口如下,def jdbc( url: String, table: String, columnName: String, lowerBound: Long, upperBound: Long, numPartitions: Int, connectionPropert...

2019-05-16 07:52:24 2606

原创 日常问题系列——yarn web ui提供kill application功能;登录用户为dr.who,无法查看application运行情况

问题一、yarn web ui界面没有办法查看application具体运行情况Yarn Web UI界面效果如下:点击一个running 状态的application,会显示如下信息:You (User dr.who) are not authorized to view application application_1557385812521_0002原因及解决方法dr.who...

2019-05-10 21:30:30 3932

原创 日常问题系列——zkCleanup.sh工具解决zk占据磁盘过多问题

问题描述公司测试环境服务器用户主目录磁盘空间使用率100%,主目录下使用命令:du -h --max-dept=1 |sort -rh |head -n 10,查看占据磁盘最多的目录或文件,发现zookeeper目录占了50G,再细看,zk快照数据占了50G。据资料显示,zk每次快照都是将内存数据全量进行快照,因此,“历史”快照可删除,删除方法如下。清除方法方法1./zkCleanup....

2019-05-10 20:57:57 7035

原创 日常问题系列——使用parquet-hadoop-1.8.1.jar提供的parquet文件合并,出现too many open files错误

背景说明利用apache parquet-mr项目提供的parquet合并接口,完成hdfs上parquet文件的合并,从而减少hdfs上的小文件,减少文件元数据占据namenode的内存。问题描述现场环境上线parquet文件合并算子,运行一段时间后,日志中出现too many open files。利用lsof -p 进程号|wc -l命令来查看进程打开的文件句柄数,发现已经接近系统设置...

2019-05-01 19:58:40 1224

原创 日常问题系列——借助Arthas解决noclassdeferror/nosuchmethoderror问题

parquet、arthas、nosuchmethoderror、classloader

2019-05-01 08:24:50 1673

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