Spark
文章平均质量分 69
TMH_ITBOY
System.out.println("代码是程序员的朋友,虽然没有热情,但是很真实");
____The most handsome ITBoy
展开
-
Hive优化指南
Hive作为大数据分析领域常用的仓库工具,即使是现在流式计算如火如荼背景下,Hive依然倍受各大厂商挚爱。使用Hive过程中,面对各种各样的查询需求,需要具有针对性的优化。下面内容就是摘抄自《Hadoop 数据仓库实践》一书中关于Hive优化部分内容。在此,感谢作业的辛勤付出。部分优化已经用于我的实际工作中。比如使用ORC存储文件、启用压缩、开始向量化等。此处记录下来,仅为学习和加强记忆。1. 启用压缩压缩可以使磁盘上的数据量变小,例如,文本文件格式能够压缩40%甚至更高的比例,这样可以通过降低I/原创 2021-02-23 16:25:24 · 664 阅读 · 1 评论 -
Apache avro常用Java中数据类型序列与反序列化
背景在大数据领域,总是会遇到需要将各种数据类型序列化成字节数组,或者从字节数组反序列化回常用数据类型的场景,比如,Spark中推荐使用kyro,HBase中,使用HBase提供的工具来进行序列化以及反序列化,HBase内部使用google的probuff来序列化进行网络通讯等情况,以及hadoop使用Apache avro来序列化。当然,各种序列化方式的性能以及效率各种优缺点(此文不做对比)。以上序列化都是框架内部已经给我们做好了序列化以及反序列化操作,如果我们在实际工作中,需要自己手动来序列化的场景,原创 2021-02-01 13:50:42 · 1269 阅读 · 1 评论 -
Avro序列化Java中 的BigDecimal
背景由于业务需要,需要将SparkSQL中Array、Map、Struct使用avro序列化成一个大的字节数组进行存储。但是在序列化过程中,涉及到Java的BigDecimal类型,根据avro官网提示,定义schema如下:{ "namespace":"com.bugboy.avro.bean", "type":"record", "name":"DecimalDemo", "fields":[ {"name":"id", "type":"string"原创 2021-01-26 10:36:40 · 2158 阅读 · 1 评论 -
发布开源项目至maven中央仓库,内附打scala源码包,scala doc 包的教程。
背景自己构思一个好的项目到github,然后发布到maven,供别人通过maven进行依赖使用。然后写点文档什么的,就可以到github骗小星星了。实际操作到网站https://issues.sonatype.org/,注册账号,该网是外网,需要自备小梯子。。注册时需要设置密码,看别人的博客说密码要求挺高,我一般都是用chrome浏览器自动生成的,然后用小本子记下来,看着是挺复杂的,强烈建...原创 2020-01-19 09:55:18 · 548 阅读 · 1 评论 -
Hive on Spark 搭建过程(hvie-3.1.2 spark-2.4.5 hadoop-3.1.3)
Hive On Spark 官方教程注意,一般来说hive版本需要与spark版本对应,官网有给出对应版本。这里使用的hive版本,spark版本,hadoop版本都没有使用官方推荐。下载Spark 源码,以spark-2.4.4 为例。编译Spark 源码。编译时选择hadoop版本,可选的有hadoop2.7.3和 hadoop2.6的,我要使用2.8.5,所以修改pom文件...原创 2020-01-17 14:20:26 · 4391 阅读 · 2 评论 -
Spark生成HBase 的 HFile 文件,并使用BulkLoad 方式将 HFile 文件加载到对应的表中
先看一个问题java.io.IOException: Added a key not lexically larger than previous. Current cell = M00000006/info:age/1563723718005/Put/vlen=4/seqid=0, lastCell = M00000006/info:name/1563723718005/Put/vlen=2/...原创 2019-07-22 00:07:08 · 2268 阅读 · 3 评论 -
Spark 内存调优以及 JVM 调优
Spark 内存调优以及 JVM 调优(基于源码2.2.0分析)目前Spark使用的内存管理模型有两个,分别是:StaticMemoryManagerUnifiedMemoryManager而StaticMemoryManager是1.6之前的版本使用的内存管理模型.UnifiedMemoryManager是1.6之后使用的内存管理模型.在SparkEvn中,通过spark.memo...原创 2019-06-06 15:43:43 · 550 阅读 · 0 评论 -
Spark 读取 csv 时,当 csv 的字段值中有 JSON 串
Spark 读取 csv 时,当 csv 的字段值中有 JSON 串需求:统计 csv 中 有 json 串的 key 个数csv 数据:代码:package com.rm1024.scalaimport com.alibaba.fastjson.JSONimport org.apache.spark.sql.SparkSessionimport scala.collectio...原创 2019-04-15 10:41:34 · 1511 阅读 · 0 评论 -
Spark使用反射动态的将文本数据映射到样例类
Spark使用反射动态的将文本数据映射到样例类假如现在有一个tsv或者csv文件,文件中每条数据包含100+个字段.使用Spark读取这个文件.我看有些人的做法是直接创建一个类,然后类的字段一个一个的传.wdmy.要是有100多个字段,这不是很耗时?好吧,暂且不说耗时不好时,万一一个不小心,写错了一个字段,那该怎么办?反正我比较喜欢偷懒,像这种的情况,一般使用偷奸耍滑的方法.当然,使用反射的前...原创 2019-04-02 11:14:07 · 1065 阅读 · 0 评论 -
Spark中给RDD[Row]中的Row动态增加一个或者多个字段
Spark 中动态的给Row新增字段我们知道,在Spark中,我们读取csv或者MySQL等关系型数据库时,可以直接得到DataFrame.我们要想新增一个字段,可以通过DataFrame的API或者注册一个临时表,通过SQL语句能很方便的实现给增加一个或多个字段.但是,当我们将DataFrame转化成RDD的时候,RDD里面的类型就是Row,如果此时,要想再增加一个字段,该怎么办呢?Sho...原创 2019-04-02 10:29:47 · 17681 阅读 · 16 评论 -
读《Spark内核设计的艺术 架构设计与实现》笔记之三----SparkConf & 内置的RPC框架
SparkConfSparkConf 是Spark的配置类,Spark中的每一个组件都直接或者间接的使用这个类存储的属性.SparkConf中,使用ConcurrentHaskMap来存储这些属性,其中key以及value都是String类型的./** 线程安全的,用于存储配置的各种属性 */ private val settings = new ConcurrentHashMap[Str...原创 2019-02-18 14:02:49 · 319 阅读 · 0 评论 -
读《Spark内核设计的艺术 架构设计与实现》笔记之二----Spark模块设计
Spark模块设计整个Spark主要由Spark Core,Spark SQL,Spark Streaming,GraphX,MLlib组成,Spark Core是整个Spark体系的核心引擎,Spark SQL,Spark Streaming,GraphX,MLlib都是建立在Spark Core基础之上的.Spark的核心功能Spark Core中提供了Spark最基础最核心的功能,主...原创 2019-02-15 16:41:00 · 1055 阅读 · 0 评论 -
读《Spark内核设计的艺术 架构设计与实现》笔记之之一----初识Spark
初识SparkSpark是一个通用的并行计算框架,由加州伯克利大学的AMP实验室开发于2009年,并于2010年开源.2013年在Apache旗下成长为大数据领域最活跃得开源框架之一,Spark也是基于map reduce算法模型实现的分布式计算框架.Spark 针对MapReduce做了大量优化.减少磁盘I/O Hadoop MapReduce的map端将中间输出和结果存储在磁盘中...原创 2019-02-15 16:37:43 · 338 阅读 · 0 评论 -
Spark Shuffle 阶段用到的重要数据结构源码详解
SizeTracker重要程度***SizeTracker 定义了对集合进行采样和集合所占内存字节大小的估算.SizeTracker重要的属性:SAMPLE_GROWTH_RATE:Double 采样增长的速率,固定值1.1samples:mutable.Queue 用于存储采集样本的队列,在该队列中,最多只能保存两个样本,且是最近采集的样本.bytesPerUpdate: Do...原创 2019-01-23 11:20:35 · 412 阅读 · 0 评论 -
RDD算子中使用之前创建的SparkSession对象时报java.lang.NullPointerException解决方案
报错Demopackage com.mycase.testimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.SparkSessionobject TestSpark { def main(args: Array[String]): Unit = { val spark = SparkSession.buil...原创 2018-12-29 21:58:40 · 4254 阅读 · 8 评论 -
Spark开发性能调优
文章转载于:https://blog.csdn.net/vinfly_li/article/details/79415342 侵删 版权声明: https://blog.csdn.net/vinfly_li/article/de...转载 2018-09-06 16:46:49 · 284 阅读 · 0 评论 -
spark架构
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:Spark提供了一...转载 2018-08-03 09:23:52 · 303 阅读 · 0 评论 -
总结Spark比Hadoop快的原因
1. 消除了冗余的HDFS读写Hadoop的每次shuffle都必须写到磁盘中,而Spark的shuffle不一定写到磁盘中,而是可以缓存到内存中,以便后续的其他迭代操作时直接使用。这样一来,如果任务复杂,需要很多次的shuffle才能完成,那么Hadoop读写磁盘文件时花费在IO上的时间就会大大增加。2. 消除了冗余的MapReduce阶段Hadoop的每次shuffle必将连接着一...原创 2018-08-07 00:55:37 · 2365 阅读 · 2 评论 -
Spark数据倾斜调优
原文链接:http://tech.meituan.com/spark-tuning-pro.html前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spar...转载 2018-08-06 15:16:39 · 276 阅读 · 0 评论