自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 SparkCore调优

SparkCore调优: 主要分为开发调优、数据倾斜优化、Spark内存调优、shuffle调优、JVM调优 美团的两盘调优文章: https://tech.meituan.com/spark-tuning-basic.html https://tech.meituan.com/spark-tuning-pro.html 开发调优 原则一:避免创建重复的RDD 原则二:尽可能复用同一个RDD 原则三:对多...

2021-05-24 13:17:30 134

原创 大数据组件优缺点

HDFS: 优点 (1)三个备份(2)流式数据访问,数据不容易被改写(3)适合存储大文件,小文件会增加NameNode的压力。 缺点 1) 适合数据批量读写,吞吐量高; 2) 不适合做交互式应用,低延迟很难满足; 3) 适合一次写入多次读取,顺序读写; 4) 不支持多用户并发写相同文件。 MapReduce 即将一个大任务分解为多个小任务(map),并行执行后,合并结果(reduce) 优点 分布式计算 ...

2021-05-24 10:18:41 442

原创 大数据踩坑点

1、kafka json消息拆U,为了防止出现主键变化的情况,update数据是一条before一条after。如果只拿after的数据去更新,此时,主键变化了,则无法删除,所有应该用before的数据去做删除,再用after的数据去新增 2、小文件合并,因为hdfs底层存储是以block块为单位,默认为128M,如果过多的小文件不满128m,在做map的时候每一个文件就需要生成一个映射,过多的小文件会生成很多映射,会导致程序运行缓慢。将小文件合并成接近128m大小的文件,会大大增加map的效率。

2021-05-24 10:17:57 171

原创 Hbase介绍

一、什么是Hbase?        HBase 是一种列式的分布式数据库,是一种类似于数据库的存储层,适用于结构化和非结构化的存储,其底层依旧依赖 HDFS 来作为其物理存储。二、什么是列式存储?列式存储有哪些优势?        每一列单独存放,数据即是索引。适合关注的不是整张表,而是某些字段。每一列单独存放,数据即是索引。只访问涉及得列,如果我们想访问单独一列(比如NAME)会相当迅速。三、...

2018-05-23 16:51:30 301

原创 Spark-SparkStreaming与Kafka整合

一、SparkStreaming读取Kafka的两种模式:1、Receiver(实时读取)通过zookeeper来连接kafka队列,使用Kafka的高层次Consumer API来实现的。不过这种方式是先把数据从kafka中读取出来,然后缓存在内存,再定时处理。如果这时候集群退出,而偏移量又没处理好的话,数据就丢掉了,存在程序失败丢失数据的可能。1.2之后引入spark.streaming.re...

2018-05-18 16:32:41 458

原创 Spark-SparkStreaming

        今天介绍一下Spark的实时计算框架--SparkStreaming。 Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。特点:低延时,高吞吐量,高容错性,支持hadoop和spark生态圈。        在大数据的实时流方面有两个主要的工具,一个是Storm,另一个就是S...

2018-05-18 10:59:40 366

原创 Spark-Task not serializable错误解析

在学习SparkStreaming的时候偶然出现的一个问题,先看下面一段代码:import org.apache.log4j.{Level, Logger}import org.apache.spark.streaming.{Seconds, StreamingContext}import org.apache.spark.{SparkConf, SparkContext}/** * ...

2018-05-17 15:33:03 12333 1

原创 Spark-SparkSQL与Hive整合

我们在做Spark开发的时候有时候需要用SparkSQL将数据写入Hive表中,今天就来看看SparkSQL与Hive的整合。SparkSQL就是借助的Hive构建的数据仓库。一、首先要配置Hive-site.xml。<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?&g...

2018-05-10 22:14:43 4830 1

原创 Scala基础-隐式转换

作为scala的一个优秀的功能,也是困扰我许久的一个功能,今天尝试弄明白。我们知道scala语言以简洁著称,几十行的java代码scala通常几行就可以搞定,为了达到这个特点,个人认为编译器会尝试尽可能多的做一些推导,比如:1,就默认为Int类型,a,就默认为String类型,因为我们通常都是这样用的,为什么非要每次都需要明确指出它的类型呢?你说我就认为1是String类型的“1”呢?那可以啊,你...

2018-05-09 23:11:51 1356

原创 Spark-SparkSQL读写方法

这里用Spark1.6,演示SparkSQL的读写功能。一、DataFrame:有列名的RDD首先,我们知道SparkSQL的目的是用sql语句去操作RDD,和Hive类似。SparkSQL的核心结构是DataFrame,如果我们知道RDD里面的字段,也知道里面的数据类型,就好比关系型数据库里面的一张表。那么我们就可以写SQL,所以其实这儿我们是不能用面向对象的思维去编程的。我们最好的方式就是把抽...

2018-05-08 15:35:15 2779

原创 Spark-map和flatmap的区别

这是一个常见的面试题,可是到现在我只会用map,并不会用flatmap,这二者到底有什么区别呢?觉得类似问题首先要查阅他们二者API的异同,这也是以后学习的一种方法,首先看map的API:def map[U: ClassTag](f: T => U): RDD[U] = withScope { val cleanF = sc.clean(f) new MapPartition...

2018-05-07 09:23:30 908

原创 Scala基础-getOrElse()方法

getOrElse()主要就是防范措施,如果有值,那就可以得到这个值,如果没有就会得到一个默认值,个人认为早开发过程中用getOrElse()方法要比用get()方法安全得多。def getOrElse[B1 >: B](key: A, default: => B1): B1 = get(key) match { case Some(v) => v case No...

2018-05-03 16:20:39 27515

原创 Spark-wordcount个人解析

学了大半年的数据开发,到今天才发现对wordcount的理解还不是很深刻,本来想在笔记上写一些心得发现太麻烦,于是在csdn上面开通博客,写给自己,方便查看。首先是代码:object Test4 { def main(args: Array[String]): Unit = { val conf=new SparkConf() conf.setAppName(s"${this....

2018-04-24 17:39:14 230

空空如也

空空如也

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

TA关注的人

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