自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Spark排错与优化

一. 运维 1. Master挂掉,standby重启也失效 Master默认使用512M内存,当集群中运行的任务特别多时,就会挂掉,原因是master会读取每个task的event log日志去生成spark ui,内存不足自然会OOM,可以在master的运行日志中看到,通过HA启动的...

2015-10-15 17:08:36

阅读数 73683

评论数 11

原创 Apache Ranger KMS 部署文档

很久没写过部署文档了,不过 Apache Ranger KMS 的手动部署较为繁琐,网上的相关资料基本都是散装的,因此写了一篇进行总结。 文章目录背景安装部署安装 ranger-admin安装 ranger-kmsHDFS 配置Kerberos 配置HA 配置KMS LUNA HSMFAQ后记参...

2020-01-10 20:51:49

阅读数 324

评论数 0

原创 Delta Presto Integration & Manifests 机制

Delta Lake 在 0.5 之前只支持通过 Spark 读取数据,在新版本中增加了其他处理引擎通过 manifest 文件访问 Delta Lake 的能力。下文以Presto 为例说明如何通过 manifest 文件访问数据,manifest 文件的生成及其一些限制。

2019-12-17 11:46:18

阅读数 302

评论数 0

原创 Delta Lake 平台化实践(离线篇)

Delta Lake 是什么?简单的说就是为大数据场景添加了事务功能,并且支持了 update/delete/merge into 等功能, Delta Lake 初探。 要将 Delta Lake 与 spark2.4 sql 以及大数据平台打通还是有一些工作需要去做,下文是在该过程中的一些实践...

2019-12-15 21:18:26

阅读数 381

评论数 0

原创 Spark 小文件合并优化实践

对 spark 任务数据落地(HDFS) 碎片文件过多的问题的优化实践及思考。

2019-10-24 11:04:37

阅读数 695

评论数 0

原创 Apache Druid 平台化 - 数据接入篇

文章目录数据接入背景方案设计druid 数据接入的一些经验一. hive 数据导入自动填充分区二. zstd 编码支持三. keberos四. druid-0.15.0 进程自动退出五. druid 对数据进行 ETL 数据接入 背景 使用界面化和 sql 的方式将数据导入到 druid,提供数据...

2019-08-20 17:08:09

阅读数 1299

评论数 5

原创 Spark 数据读取冷启动优化分析

Spark 读取数据冷启动 (在一个 Session 中第一次读取该数据) 时,会从文件系统中获取文件的一些元数据信息用于优化,如果一个目录下的文件过多,就会比较耗时(可能达到数十分钟),该逻辑在 InMemoryFieIndex 中实现。 下文针对该过程进行分析。 文章目录InMemor...

2019-05-27 18:35:53

阅读数 345

评论数 0

原创 Delta 初探

Delta Lake 初探 Delta Lake 在说 Delta Lake 之前,不得不说下近几年火热的 Data Lake ,Data Lake 的主要思想是将企业中的所有数据进行统一管理。例如基于 Hadoop 的 Data Lake 方案可以非常低成本的存储所有类型的数据,但是显而...

2019-04-29 01:01:00

阅读数 2386

评论数 1

原创 Druid 消费一个 kafka topic 发送到不同数据源

文章目录背景解决办法一. 过滤标识在消息体中二. 过滤标识在 header 中源码修改逻辑 背景 数据采集时,为了避免在 kafka 中创建大量的 Topic ,采集时会将小的数据源写入一个共享 Topic 中,以某个字段作为标识。这里有两种方式: 直接将标识写入消息体中 将标识写入 ...

2019-04-11 00:32:29

阅读数 648

评论数 6

原创 Spark Sql 复杂类型高阶函数

文章目录背景1. 只使用 sql 实现2. 使用 udf 的方式3. 使用高阶函数的方式使用Array 高阶函数1. transform2. filter3. exists4. aggregate5. zip_with复杂类型内置函数总结参考 spark sql 2.4 新增了高阶函数功能,...

2019-04-03 18:50:06

阅读数 546

评论数 0

原创 使用 spark sql extensions 实现 skew join

文章目录背景实现方式原理用法语法编译&配置Test局限性参考 背景 使用 Join 时,如果出现数据倾斜就会导致OOM或者单task长时间执行的现象,如果是大小表关联的场景,还可以使用 MAPJOIN 的方式来解决...

2019-03-12 01:15:57

阅读数 432

评论数 1

原创 AMD & Intel 机器 Spark 性能测试2

文章目录硬件配置测试角色分配线上sql任务模拟使用 sysbench 对内存读写进行测试结果 硬件配置 接上篇文章 AMD & Intel 机器 Spark 性能测试 共6台机器,每个对照组各三台。 intel 5118 内存为6通道,双路为12通道 amd 74...

2019-01-24 15:52:37

阅读数 207

评论数 0

原创 Alluxio 性能测试

文章目录背景为什么要引入 Alluxio读取数据的效率取决于哪些因素计算&存储分离混合部署分离部署测试环境测试理论性能提升ScanPresto测试结果TPC-DS测试结果总结 背景 HDFS数据读取延时不稳定,波动较大 为什么...

2019-01-03 13:28:32

阅读数 1015

评论数 3

原创 spark-sql-perf

文章目录简介测试tpcds-kitspark-sql-perf生成数据执行查询查询结果TPC-DS 简介 spark-sql-perf 是一个 spark sql 性能测试框架,可以用来进行一些基准测试。 测试环境: spark 2.4.0 spark-sql-perf_2.11-0.5.0-S...

2019-01-03 01:19:15

阅读数 1089

评论数 0

原创 Mac pySpark IDE 环境配置

本地配置 pyspark 开发环境 开发工具 Java spark-2.3.0-bin-2.6.0-cdh5.7.0 PyCharm 配置 PyCharm Configuration Run -> Edit Config...

2018-12-13 22:59:21

阅读数 931

评论数 1

原创 Kerberos ticket 生命周期

基本概念 Kerberos ticket 有两种生命周期,ticket timelife (票据生命周期) 和 renewable lifetime (可再生周期)。 当 ticket lifetime 结束时,该 ticket 将不再可用。 如果 renewable lifetime &a...

2018-11-27 14:12:01

阅读数 854

评论数 0

原创 使用 jvm-profiler 分析 spark 内存使用

文章目录背景jvm-profiler分析总结 背景 在生产环境中,为了提高任务提交的响应速度,我们研发了类似 Spark Jobserver 的服务,各种类型的 spark 任务复用已经启动的 Spark Application,避免了 sparkContext 初始化冷启动的过程。 但是这些服务...

2018-10-27 15:53:57

阅读数 809

评论数 3

原创 AMD & Intel 机器 Spark 性能测试

文章目录配置硬件配置软件配置Benchmark总结 配置 硬件配置 INTEL 机型与 AMD 机型除了CPU其余配置相同。 256G DRAM 8TB 7.2k HDD * 11 960G SSD * 1 2 * 10Gbps Intel: Intel Xeon Gold 5118 * 2 ...

2018-10-10 09:58:27

阅读数 317

评论数 0

原创 Spark Optane IMDT 测试

文章目录测试目的测试配置测试方法BenchmarkcacheWordcountTerasortKMeans结论容量说明成本相关适合的场景不适合的场景参考 测试目的 如果不了解什么是Optane,可以先了解一下: Optane介绍 使用 Intel Memory Drive Technology (...

2018-09-26 11:35:57

阅读数 487

评论数 0

原创 使用 Hibench 对 Spark 进行基准测试

文章目录概述安装配置Test配置运行查看报告 概述 项目地址: Intel-hadoop/HiBench Hibench 是 Intel 开源的大数据基准测试工具,可以评估不同大数据框架的速度,吞吐量和系统资源利用率。包括 Sort, WordCount, TeraSort, Sleep, SQL...

2018-09-20 14:36:47

阅读数 874

评论数 1

原创 使用 Prometheus 和 Grafana 监控 Spark 应用

背景 每个开发者都想了解自己任务运行时的状态,便于调优及排错,Spark 提供的 webui 已经提供了很多信息,用户可以从上面了解到任务的 shuffle,任务运行等信息,但是运行时 Executor JVM 的状态对用户来说是个黑盒,在应用内存不足报错时,初级用户可能不了解程序究竟是 Dri...

2018-09-13 01:17:18

阅读数 1664

评论数 0

原创 使用 aspectj 对 spark 进行拦截

开源产品要想用的得心应手免不了要根据公司的业务/场景对其做一些改造,如果直接在源码的层面对其修改,当时可能用的很爽,但后期与社区代码的合并,版本升级可能会变成一场噩梦。 对于一个平台来说,使用者对技术本身是不敏感的,所以我们需要增加一些限制来减少集群的一些不可控情况,例如不断的写入新表/...

2018-09-04 01:30:38

阅读数 526

评论数 4

原创 spark on yarn cgroup 资源隔离(cpu篇)

环境配置 cdh 5.9.0 cm 5.15.0 os centos 7.2 背景 yarn container 默认不支持对cpu进行资源隔离,一些计算密集型任务甚至可能占满NM节点的cpu资源,从而影响到其他任务的执行效率。 spark streaming 出现消费延时 一...

2018-08-02 17:59:21

阅读数 1242

评论数 2

原创 提高spark任务稳定性1 - Blacklist 机制

场景 一个 spark 应用的产生过程: 获取需求 -> 编写spark代码 -> 测试通过 -> 扔上平台调度。 往往应用会正常运行一段时间,突然有一天运行失败,或是失败了一次才运行成功。...

2018-04-25 00:01:43

阅读数 1645

评论数 0

原创 PySpark Pandas UDF

配置 所有运行节点安装 pyarrow ,需要 >= 0.8 为什么会有 pandas UDF 在过去的几年中,python 正在成为数据分析师的默认语言。一些类似 pandas,numpy,statsmodel,scikit-learn 被...

2018-04-13 17:58:45

阅读数 3380

评论数 2

原创 在spark dataFrame 中使用 pandas dataframe

背景 项 pandas spark 工作方式 单机,无法处理大量数据 分布式,能处理大量数据 存储方式 单机缓存 可以调用 persist/cache 分布式缓存 是否可变 是 否 index索引 自动创建 无索...

2018-04-04 11:05:27

阅读数 1290

评论数 0

原创 spark 读取 hdfs 数据分区规则

下文以读取 parquet 文件 / parquet hive table 为例: hive metastore 和 parquet 转化的方式通过 spark.sql.hive.convertMetastoreParquet 控制,默认为 true。 如果设置为 true ,会使用 org....

2018-04-03 10:10:16

阅读数 2337

评论数 4

原创 spark range join 优化

背景 一张ip表,一张ip地理信息表,地理信息表每条数据包含了ip地址的起点和终点以及一些地理信息, 需要用 ip 去关联 gep_ip 中匹配相应的信息 。 例如: 数据条数为 50 M 的表 ip_record,数据格式大致如下: ip_int info ...

2018-04-03 09:47:51

阅读数 720

评论数 0

原创 ScheduledThreadPoolExecutor 定时调度

定时器中 Timer 有单线程等缺陷,quartz依赖太重, 用 ScheduledThreadPoolExecutor 又想实现定时调度,实现一个工具类计算初次调度时间即可。 import java.util.concurrent._ val task = new Runnable { ...

2018-01-18 23:09:42

阅读数 309

评论数 0

原创 hdfs exceeded directory item limit

报错提示: 错误原因: 一个目录下的子目录数量达到限制,默认的上限是 1048576。 每次执行hive语句时,都会在 hive.exec.scratchdir 配置的目录下生成一个临时目录,执行结束后会自动删除,如果异常中断则有可能会保留目录。 提供两种解决办法: 提高目录的限制...

2018-01-15 22:57:22

阅读数 1173

评论数 0

原创 HDFS 开启 SCR 对 Hbase 的性能提升

HDFS short circuit local readHDFS client 和 HDFS datanode 通过 TCP socket 进行通信,client 发起请求,datanode读取数据,通过RPC将数据传给 client 。如果client 和 数据在同一个节点上,那么通过 dat...

2017-11-23 23:40:28

阅读数 390

评论数 0

原创 pypy on PySpark

什么是pypy 简单的说,pypy 基于jit静态编译,相比cpython 动态解释执行,因此执行速度上会更高效,同时减少了内存使用。 http://pypy.org对三方包的支持一直是pypy的软肋,特别是一些科学计算包,不过在最新的 pypy5.9 中终于对Pandas和NumPy提供了支...

2017-11-15 00:50:09

阅读数 769

评论数 0

原创 hdfs du -sk 导致机器load高

hdfs 会定期(默认10分钟)使用 du -sk 命令统计BP的大小,在大硬盘机器上该操作耗时将会很长(可能超过10分钟)。这会导致 iowait 以及 load的提升。 例如: 社区为了解决这个问题,主要在两个方面进行了改造: https://issues.apache.org/jira/...

2017-11-10 08:41:41

阅读数 948

评论数 0

原创 spark convert RDD[Map] to DataFrame

将RDD[Map[String,String]] 转化为展平 DataFrame,类似于pyspark 中 dict 结构toDF的效果。inputval mapRDD: RDD[Map[String, String]] = sc.parallelize(Seq( Map("nam...

2017-10-12 00:15:48

阅读数 1800

评论数 0

原创 spark 应用输出debug日志

问题:yarn container 大量输出debug日志 –> 磁盘写满 –> nodemanager 识别该盘为bad disk -> 停止服务 -> spark task lost 。container stdout:排错过程: 查看log4j文件,查看yarn lo...

2017-09-25 14:01:04

阅读数 2267

评论数 0

原创 phoenix for cloudera

phoenix for cloudera软件版本:spark 2.0.2 cdh 5.9 phoenix 4.9 (phoenix-spark模块使用4.11)下载CDH版本的phoenix,最新版本目前只有phoenix 4.9,不过在4.10开始才可以使用spark2.0: PHOENIX-3...

2017-07-17 01:31:54

阅读数 2253

评论数 0

原创 网络原因造成 spark task 卡住

主机名映射出错背景:Yarn集群新加入了一批Spark机器后发现运行Spark任务时,一些task会无限卡住且driver端没有任何提示。解决:进入task卡住的节点查看container stderr日志,发现在获取其他节点block信息时,连接不上其他的机器节点,不停重试。 怀疑部分旧节...

2017-05-10 00:36:47

阅读数 3223

评论数 0

原创 spark on yarn部署

软件版本 * spark 2.0.2 * 2.6.0-cdh5.9.0一.配置下载spark2.0.2的源码后在根目录进行编译dev/make-distribution.sh \ -Phive -Phive-thriftserver \ -Dhadoop.version=2.6.0-cdh5....

2017-02-09 18:15:23

阅读数 7469

评论数 0

原创 Zeppelin 0.6.2 使用spark2.x 的一些错误处理

zeppelin 从 0.6.1 开始支持 spark2.x ,从0.6.2编译时引入了hadoop-common包用于权限认证,所以会存在一些包冲突导致异常的问题。 编译错误zeppelin-web编译错误Failed to execute goal com.github.eirslett:fr...

2016-12-20 20:28:18

阅读数 2757

评论数 0

原创 将代码从 spark 1.x 移植到 spark 2.x

将代码从 spark 1.x 移植到 spark 2.x1. SparkSessionsparkSession可以视为sqlContext和hiveContext以及StreamingContext的结合体,这些Context的API都可以通过sparkSession使用。创建SparkSessi...

2016-09-09 17:46:41

阅读数 4703

评论数 0

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