自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 spark sql 任务失败------Container killed on request. Exit code is 137

问题spark sql 执行多表join,executor 退出,报错Container killed on request. Exit code is 137。问题分析137错误是内存OOM的报错,对于这种情况应该增加executor的内存,或者减少executor的task并发数。解决1、增加driver 或者 executor的内存编辑 spark-defaults.conf 配置spark.executor.memory 10gspark.driver.memory 10g或者

2020-07-23 14:44:10 118

原创 maven命令收藏----持续更新

定位jar包冲突mvn dependency:tree -Dincludes=org.apache.thrift:libthrift -Dverbose

2020-07-17 18:10:20 42

转载 parquet学习

Parquet的那些事(一)基本原理Parquet的那些事(二)Spark中的Schema兼容问题Parquet的那些事(三)嵌套数据模型

2020-04-14 19:14:06 73

转载 SparkSQL – 从0到1认识Catalyst

详细说明了spark sql 怎么将sql 语句 转化为 物理计划的过程,这里记录一下方便以后查阅。SparkSQL – 从0到1认识Catalyst

2020-04-13 20:04:38 48

原创 kudu支持ranger

千呼万唤始出来,kudu终于支持集成ranger做权限控制了。在kudu 1.12版本中,增加了kudu-ranger的插件。具体请看 jira中的issue

2020-04-02 20:34:34 176

原创 ES 7.X安全功能的开启配置

Elasticsearch 安全功能入门

2020-03-24 15:52:57 121

原创 ES update接口版本冲突问题的论述

基本概念介绍众所周知,es数据的版本控制是通过乐观锁来实现的。es的每个document中都维护了一个_version字段,这个字段表示了这个文档的版本号,文档刚创建之时,_version=1,后续对该文档的任何增删改操作都会使_version递增(注意删除文档也是会递增的!)。假设一个document的_version=4,我们提交了一个update请求去更新该文档,请求后缀带了?verso...

2020-03-22 09:33:38 234

原创 scala-面向对象编程之Trait

将trait作为接口使用scala中Trait是一种特殊的概念。首先我们可以将trait作为接口使用,此时的trait就与java中的接口非常类似。trait中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可。类可以使用extends关键字继承trait,注意,这里不是implement,而是extends,在scala中没有implement的概念,无论继承类还是t...

2020-03-21 09:41:48 35

原创 scala-面向对象编程之继承

extendsscala中,让子类继承父类,与java一样,也是使用extends关键字。继承就代表子类可以从父类继承父类的field和method;然后子类可以在自己内部放入父类所没有,子类特有的field和method;使用继承可以有效复用代码。子类可以覆盖父类的field和method;但如果父类用final修饰,field和method用final修饰,则该类是无法被继承的,fiel...

2020-03-18 15:35:47 49

原创 impala的基本操作------持续更新中

impala创建kudu内部表create table test_impala_kudu(name string, id int, PRIMARY KEY(name) )PARTITION BY HASH PARTITIONS 16 STORED AS KUDU TBLPROPERTIES ( 'kudu.num_tablet_replicas' = '1' );impala 创建kud...

2020-03-17 11:16:11 174

原创 scala-面向对象编程之对象

objectobject相当于class的单个实例,通常在里面放一些静态的field或者method。第一次调用object的方法时就会执行object的constructor,也就是object内部不在method里的代码。但是object不能定义接受参数的constructor。注意,object的constructor只会在第一次被调用时执行一次,以后再次调用就不会再执行construc...

2020-03-15 20:00:50 60

原创 scala-面向对象编程之类

1、 定义一个简单的类// 定义类,包含field以及方法class HelloWorld {private var name="wei"def sayHello() { print("Hello," + name)}def getName = name}// 创建类对象,并调用其方法val helloWorld = new HelloWorldhelloWorld.sayHe...

2020-03-10 22:30:02 31

原创 ES编译出来为snapshot版本的解决办法

es 的编译命令如下./gradlew assemble命令编译出来的包默认是带有"SNAPSHOT"后缀的,这种快照版本的的es 安装包,部署起来可能会有问题。比如,当想要获取es版本号的时候,es会报错:illegal version format - snapshots are only supported until version 2.x因此我们需要编译出release版本的...

2020-03-02 09:29:10 187

原创 如何用SparkSQL 创建kudu的关联表

从kudu的官方文档中可以看到spark 如何集成kudu的。从文档中的demo可以看到,kudu表的创建只能调用NOSQL API 来实现,无法通过spark sql直接创建一张kudu表。spark sql查询kudu表也是先注册一张临时表后,才能用sql 语句查询的。那么有没有方法在spark sql上直接提交一个Create DDL语句来创建一张关联kudu的表呢?答案是:可以,通过...

2020-01-17 12:16:00 780

原创 impala 的资源管理

Admission control 是impala的一个功能,它的作用是给SQL查询加限制,防止集群繁忙的时候资源使用到达峰值或者内存溢出。Admission control为查询设置并发上限以及内存使用限制。在限制之外的查询将会进入等待队列,正在执行的查询结束之后,队列中的查询才会启动。在2.5及2.5以上的版本中,可以为每个队列设置限制,而不是只能为全局设置限制。通过这种方式可以在稳定的负载...

2020-01-15 16:57:29 505

原创 从es中恢复不存储的字段内容的方法

原理分析es中有个隐藏的字段_source,这个字段中存了其他字段的内容,我们直接查询es返回的结果中展示的各个字段的值其实就是从_source字段中读取的。如果想要对一个字段只建索引,不做存储。就是不把这个字段的值存在_source字段中,这样查询结果中就不会显示该字段的内容。如下图所示:从test3的mapping信息中可以看出 name,count字段是不存储字段内容的。因此,我们...

2019-12-21 15:25:37 225

原创 Spark基本操作----持续更新中

打开spark shell进入到spark目录打开 Python 版本的 Spark shellbin/pyspark打开 Scala版本的 Spark shellbin/spark-shell退出shell按 Ctrl-Dspark 用户页面的地址http://[ipaddress]:4040Spark Context 的创建SparkConf conf = new S...

2019-12-21 15:16:49 88

原创 Shark为何被抛弃?

Shark的来历Shark是由Reynold Xin从2011年开始主导开发的。当时Hive几乎是唯一的SQL-Hadoop的选择方案,然而hive的性能受限于MapReduce,无法使用spark的计算模型。Shark的提出就是针对这种需求的,它的目标是技能达到企业数据仓库的性能,又你能够具有MapReduce的水平扩展能力。Shark的实现原理Shark建立在Hive代码的基础上,只修改...

2019-12-17 07:09:52 92

原创 spark sql 源码分析

入口SQLContext// 用spark执行sql,返回一个DataFrame最为结果def sql(sqlText: String): DataFrame = sparkSession.sql(sqlText)DataFrame,其实是针对数据查询这种应用,提供的一种基于RDD之上的全新概念,但是,其底层还是基于RDD的;它其实和关系型数据库中的表非常类似,但是底层做了很多的优化,D...

2019-12-10 16:45:19 108

原创 ES内存持续增长问题分析

环境介绍es版本:5.6.4-Xms31g -Xmx31g-XX:MaxDirectMemorySize=10g问题说明用top命令观察ES使用的物理内存不断增加到54.6G已知堆内存31G,堆外内存MaxDirectMemorySize 10G,那么内存使用最高应该不超过41G才对。现在内存使用了54.6G明显超过了预估,那么除了已知的41G外,还有哪些我们不知道的地方在占用内存呢...

2019-12-07 11:07:04 306

原创 elasticsearch deleted shard reason [no longer used]日志的原因

这个日志是debug级别的日志。而且报这个日志并不是意味着es有什么问题。该日志是es的分片迁移过程中产生的。es把分片迁移到其他节点操作是,首先会保留源分片,同时在目标节点上生成新的分片。当目标节点上的分片生成完毕,并且处于活跃状态时。源分片将会被删除,删除的时候就会报deleted shard reason [no longer used]的日志。...

2019-11-21 17:58:23 126

原创 Kyuubi介绍

Kyuubi 是对spark thrift server的加强版,它弥补了spark thrift server缺少的多租户,授权,负载均衡,高可用特性。统一接口Kyuubi使用的协议与HiveServer保持一致,因此它能够支持所有的JDBC/ODBC客户端,用户应用程序也可以根据上图的thrift API写。用户可以用多种类型的客户端连接kyuubi服务,每个连接都绑定了一个sparkS...

2019-11-07 20:01:28 982

原创 es集群节点之间分片个数不均匀问题

场景介绍3个节点的es 集群,node1,node2,node3。node3由于故障,重启了节点。重启后node3上的一个副部分片由于某种原因没有恢复上线,集群的健康之是yellow。此时用es 的/_cat/allocation 命令查看发现,node3上的分片个数远少于其他两个节点。问题分析node3节点故障下线的时候,原本分布在node3上的分片会逐步迁移到node1,node2上。n...

2019-10-17 13:47:49 1376

转载 Linux 某个进程中占用CPU高的线程

https://www.cnblogs.com/wghzzu/p/8682309.html

2019-10-11 14:39:18 52

原创 ES5.6.4源码解析--聚合查询流程

aggregationPhase.preProcess(searchContext);在执行聚合查询之前做一些准备:构建aggregationContext用于存放聚合过程中产生的数据;构建aggregators,他是聚合过程中统计数据的具体实现,由aggregator构成了采集器collectors。...

2019-09-26 16:58:48 366

原创 postgres 基本操作---------持续更新中

登录pg命令psql -U username -d dbname -h hostip -p port列出所有数据库\l切换数据库\c dbname列出当前数据库的所有表\d查看指定表的所有字段\d tablename查看指定表的基本情况\d+ tablename...

2019-09-20 10:55:08 76

转载 HBase最佳实践-列族设计优化

随着大数据的越来越普及,HBase也变得越来越流行。会用HBase现在已经变的并不困难,然而,怎么把它用的更好却并不简单。那怎么定义‘用的好’呢?很简单,在保证系统稳定性、可用性的基础上能够用最少的系统资源(CPU,IO等)获得最好的性能(吞吐量,读写延迟)就是’用的好’。HBase是一个庞大的体系,涉及到很多方面,很多因素都会影响到系统性能和系统资源使用率,根据场景对这些配置进行优化会很大程度上...

2019-09-01 22:34:57 66

原创 linux 中gcc 与 g++版本不一致

问题由于服务器上安装过很多版本的gcc,导致版本管理混乱,gcc 与 g++的版本不一致。最终导致编译的时候报错如下:gcc: error trying to exec 'cc1plus': execvp: No such file or directory解决执行 yum install gcc-c++执行成功后,gcc和g++的版本都回归到了4.8.5,编译也不再报错了。...

2019-08-30 18:20:54 972 1

原创 arm服务器上编译MongoDB 3.6.13

https://blog.csdn.net/qq_16069927/article/details/85051647

2019-08-26 18:32:26 1677 2

转载 HBase最佳实践-内存规划

线上HBase集群应该如何进行参数配置?这其实是很多HBase初学者在实践环节都可能会遇到的问题,有些人会选择默认配置,有些人会选择其他公司的推荐配置;诚然,这样的参数配置在大多数情况下都能正常工作,但性能却未必最佳、资源未必都能被合理利用。本文结合笔者的实践经验,针对不同应用场景,对多种工作模式下的参数进行详细说明,并结合相关示例对集群规划中最核心模块-内存规划进行介绍。一方面希望读者能够了解H...

2019-08-25 12:00:05 40

转载 HBase最佳实践-客户端超时机制

上篇博文结合一起线上问题介绍了HBase客户端基于退避算法的重试机制,并分析得出在某些场景下如果重试策略设置不当会导致长时间的业务阻塞。除了重试机制外,业务童鞋最关心的就是超时机制了。客户端超时设置对整个系统的稳定性以及敏感性至关重要,一旦没有超时设置或超时时间设置过长,服务器端的长时间卡顿必然会引起客户端阻塞等待,进而影响上层应用。好在HBase提供了多个客户端参数设置超时,主要包括 hbase...

2019-08-20 07:51:30 65

转载 HBase最佳实践 – 客户端重试机制

在运维HBase的这段时间里,发现业务用户一方面比较关注HBase本身服务的读写性能:吞吐量以及读写延迟,另一方面也会比较关注HBase客户端使用上的问题,主要集中在两个方面:是否提供了重试机制来保证系统操作的容错性?是否有必要的超时机制保证系统能够fastfail,保证系统的低延迟特性?这个系列我们集中介绍HBase客户端使用上的这两大问题,本文通过分析之前一个真实的案例来介绍HBase客户端...

2019-08-19 08:06:12 42

原创 kudu 问题集------持续更新中

kudu会不会自动均衡tablet?kudu 集群增加节点时,tablet不会自动均衡到新节点上,需要人工运维。集群下线节点时,该节点的tablet会自动在其他节点恢复(有副本的情况下)...

2019-08-16 16:33:34 454

转载 HBase GC的前生今世 – 身世篇

在之前的HBase BlockCache系列文章中已经简单提到:使用LRUBlockCache缓存机制会因为CMS GC策略导致内存碎片过多,从而可能引发臭名昭著的Full GC,触发可怕的’stop-the-world’暂停,严重影响上层业务;而Bucket Cache缓存机制因为在初始化的时候就申请了一片固定大小的内存作为缓存,缓存淘汰不再由 JVM管理,数据Block的缓存操作只是对这篇空间...

2019-08-14 08:06:59 40

转载 HBase GC的前生今世 – 演进篇

最原始的HBase CMS GC相当严重,经常会因为碎片过多导致Promotion Failure,严重影响业务的读写请求。幸运的是,HBase并没有止步不前,很多优化方案相继被提出并贡献给社区,本文要介绍的就是几个比较重要的核心优化,分别是针对Memstore所作的两个优化:Thread-Local Allocation Buffer和MemStore Chunk Pool 以及针对BlockC...

2019-08-13 21:11:27 49

原创 impala2.12.0的编译与安装

最近因为工作需要需要编译impala,去官网找编译步骤,我去!就一句话:然后在网上找教程,好家伙,找了一大堆文章,没有一个能然我顺利编译成功的。做人果然还是要靠自己啊,我就从bin/bootstrap_build.sh这个编译脚本开始。历经各种坑,总算是编译部署成功。下面我将贡献出我的编译与安装步骤,希望能帮助大家少走弯路。环境操作系统:centos7.5impala版本impala...

2019-08-07 10:00:12 1566 3

转载 HBase BlockCache系列 - 探求BlockCache实现机制

HBase BlockCache系列第一篇文章《走进BlockCache》从全局视角对HBase中缓存、Memstore等作了简要概述,并重点介绍了几种BlockCache方案及其演进过程,对此还不了解的可以点这里。本文在上文的基础上深入BlockCache内部,对各种BlockCache方案具体工作原理进行详细分析。Note:因为SlabCache方案在0.98版本已经不被建议使用,因此本文不针...

2019-08-04 22:30:46 38

转载 HBase问题诊断 – RegionServer宕机

本来静谧的晚上,吃着葡萄干看着球赛,何等惬意。可偏偏一条报警短信如闪电一般打破了夜晚的宁静,线上集群一台RS宕了!于是倏地从床上坐起来,看了看监控,瞬间惊呆了:单台机器的读写吞吐量竟然达到了5w ops/sec!RS宕机是因为这么大的写入量造成的?如果真是这样,它是怎么造成的?如果不是这样,那又是什么原因?各种疑问瞬间从脑子里一一闪过,甭管那么多,先把日志备份一份,再把RS拉起来。接下来还是Bug...

2019-08-04 10:35:40 206

转载 HBase BlockCache系列 – 走进BlockCache

和其他数据库一样,优化IO也是HBase提升性能的不二法宝,而提供缓存更是优化的重中之重。最理想的情况是,所有数据都能够缓存到内存,这样就不会有任何文件IO请求,读写性能必然会提升到极致。然而现实是残酷的,随着请求数据的不断增多,将数据全部缓存到内存显得不合实际。幸运的是,我们并不需要将所有数据都缓存起来,根据二八法则,80%的业务请求都集中在20%的热点数据上,因此将这部分数据缓存起就可以极大地...

2019-08-04 10:10:54 46

转载 HBase – 探索HFile索引机制

HFile索引结构解析HFile中索引结构根据索引层级的不同分为两种:single-level和mutil-level,前者表示单层索引,后者表示多级索引,一般为两级或三级。HFile V1版本中只有single-level一种索引结构,V2版本中引入多级索引。之所以引入多级索引,是因为随着HFile文件越来越大,Data Block越来越多,索引数据也越来越大,已经无法全部加载到内存中(V1版...

2019-08-03 20:44:07 56

Learn Python The Hard Way

Python入门书籍,深刻说明了作为一个程序员要从敲代码开始的硬道理

2015-01-19

空空如也

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

TA关注的人 TA的粉丝

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