大数据
文章平均质量分 90
_Kafka_
这个作者很懒,什么都没留下…
展开
-
Apache Spark 中支持的七种 Join 类型
数据分析中将两个数据集进行 Join 操作是很常见的场景。我在这篇文章中介绍了Spark支持的五种 Join 策略,本文我将给大家介绍一下 ApacheSpark中支持的 Join 类型(Join Type)。目前 Apache Spark 3.0 版本中,一共支持以下七种 Join 类型:INNER JOIN CROSS JOIN LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN LEFT SEMI JOIN LEFT ANT...转载 2021-06-07 20:43:32 · 1298 阅读 · 0 评论 -
HIVE中为分区表增加字段需要注意默认不会修改已有分区的字段,导致查询时新增字段为null
若向hive表添加字段,通常会使用下面这种语句alter table default.testparquet add columns(c8 string);但是对于分区表来说,1. 若新建的分区在添加字段之前,新加的字段不会被加到已有分区中。2. 若新建的分区在添加字段之后,新的分区会继承表的字段。这种情况会导致的问题就是在查询的时候老的分区虽然能查到新加的字段,但是新加字段的值为null。解决方案:1. 使用类似这样的语句:alter table default.te..原创 2020-09-14 13:55:43 · 1013 阅读 · 0 评论 -
sqoop-import 并行抽数及数据倾斜解决
最近在数据中台的数据抽数优化工作,由于单表数据量太大(每天千万级别)导致sqoop抽数使用单实例报内存溢出以及抽数时间过长,决定采用sqoop的多实例并行抽数,参考了一些文档,但同时遇到了一些问题,趁有点时间把遇到问题的解决方法写下来供大家借鉴。并行化sqoop-常用命令及参数:https://www.yuque.com/shanyu-aqvcy/hkqgb7/vngsoxsqoop 抽数的并行化主要涉及到两个参数:num-mappers:启动N个map来并行导入数据,默认4个;split-b.转载 2020-09-12 10:14:44 · 714 阅读 · 0 评论 -
MapReduce之combiner的理解
一 Combiner组件意义有一个文件,总共620M, 有5个数据块,每一个数据块有三个副本,比如如上图所示,有5台机器,那这文件的数据块分布如图示:按照InputSplit,那有可能就是5个map任务,而且这5个Map任务很有可能2个或者3个分配同一台机机器运行,这取决于YARN中ContainerAllocator如何分配资源的问题,所以这一台机器可能需要溢写溢写数据到磁盘,每一map任务估计要溢写(128-100*80%)= 48M那么就有可能溢写很多文件出来;又或者是我们调.原创 2020-09-08 21:09:10 · 949 阅读 · 0 评论 -
Spark启动Executor进程时堆内存的指定
CommandUtils是Spark中最常用的工具类之一,其作用是为了构建进程。如果不太关心其实现也不影响对Spark源码的阅读和原理的学习。我们要介绍的方法如下:buildProcessBuilder def buildProcessBuilder( command: Command, securityMgr: SecurityManager, m...原创 2020-03-16 15:50:59 · 318 阅读 · 0 评论 -
kafka生产者与消费者相关命令行
1,开启zookeeper集群 startzk.sh2,开启kafka集群 start-kafka.sh2,开启kafka可视化界面 kafka-manager : start-kafka-manager.sh 3,生产者操作:kafka-console-producer.sh --broker-list node1:9092 --topic my-kafka-topic //...原创 2019-12-07 14:14:21 · 1598 阅读 · 0 评论 -
Kafka 数据丢失问题
Kafka如何保证数据不丢失1.生产者数据的不丢失kafka的ack机制:在kafka发送数据的时候,每次发送消息都会有一个确认反馈机制,确保消息正常的能够被收到,其中状态有0,1,-1。如果是同步模式:ack机制能够保证数据的不丢失,如果ack设置为0,风险很大,一般不建议设置为0。即使设置为1,也会随着leader宕机丢失数据。producer.type=syncreque...转载 2019-10-21 16:43:35 · 1466 阅读 · 0 评论 -
Spark面试题
Spark Core面试篇01随着Spark技术在企业中应用越来越广泛,Spark成为大数据开发必须掌握的技能。前期分享了很多关于Spark的学习视频和文章,为了进一步巩固和掌握Spark,在原有spark专刊基础上,新增《Spark面试2000题》专刊,题集包含基础概念、原理、编码开发、性能调优、运维、源代码以及Spark周边生态系统等。部分题集来源于互联网,由梅峰谷志愿者收集和整理,部分...转载 2019-08-31 12:17:56 · 1324 阅读 · 0 评论 -
Spark性能调优手段
Spark性能调优手段:判断内存消耗:设置RDD并行度,将RDD cache到内存,通过BlockManagerMasterActor添加RDD到memory中的日志查看每个partition占了多少内存,最后乘以partition数量,即是RDD内存占用量。1.Shuffle调优(核心)a.consolidation机制,使shuffleMapTask端写磁盘的文件数量减少,resu...原创 2019-08-31 10:58:48 · 297 阅读 · 0 评论 -
SparkRDD容错处理
RDD不同的依赖关系(宽依赖、窄依赖)是spark rdd有不同的容错处理方式;对spark框架层面容错机制的三大层面(调度层、RDD血统层、Checkpoint层)和spark rdd容错四大核心要点。1、spark rdd容错原理RDD的不同依赖关系导致spark对不同的依赖关系有不同的处理方式。对于宽依赖实质是指一个父RDD的分区会对应一个或多个子RDD多个分区,在此情况下,如果...原创 2019-08-31 10:32:20 · 211 阅读 · 0 评论 -
RDD五大特性
RDD是由一系列的partition组成的。 函数是作用在每一个partition(split)上的。 RDD之间有一系列的依赖关系。 分区器是作用在K,V格式的RDD上。 RDD提供一系列最佳的计算位置。...原创 2019-09-19 16:31:45 · 89 阅读 · 0 评论 -
SPARK数据倾斜原因与解决方法大总结
数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。数据倾斜发生时的现象绝大多数task执行得都非常快,但个别task执行极慢。比如,总共有1000个task,997个task都在1分钟之内执行完了,但是剩余两三个...转载 2019-08-12 23:43:46 · 1272 阅读 · 0 评论 -
Spark Shuffle原理、Shuffle操作问题解决和参数调优
目录1 shuffle原理 1.1 mapreduce的shuffle原理 1.1.1 map task端操作 1.1.2 reduce task端操作 1.2 spark现在的SortShuffleManager 2 Shuffle操作问题解决 2.1数据倾斜原理 2.2 数据倾斜问题发现与解决 2.3 数...转载 2019-09-03 14:30:44 · 216 阅读 · 0 评论 -
Spark submit参数调优
在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪...转载 2019-09-03 15:52:25 · 337 阅读 · 0 评论 -
Apache Spark 统一内存管理模型详解
本文将对Spark的内存管理模型进行分析,下面的分析全部是基于 ApacheSpark2.2.1 进行的。为了让下面的文章看起来不枯燥,我不打算贴出代码层面的东西。文章仅对统一内存管理模块(UnifiedMemoryManager)进行分析,如对之前的静态内存管理感兴趣,请参阅网上其他文章。我们都知道Spark能够有效的利用内存并进行分布式计算,其内存管理模块在整个系统中扮演着非常...转载 2019-09-03 16:15:16 · 115 阅读 · 0 评论 -
关于Spark shuffle过程的理解
shuffle过程:由ShuffleManager负责,计算引擎HashShuffleManager(Spark 1.2)—>SortShuffleManagerspark根据shuffle类算子进行stage的划分,当执行某个shuffle类算子(reduceByKey、join)时,算子之前的代码被划分为一个stage,之后的代码被划分为下一个stage。当前stage开始执行时,它...转载 2019-09-05 10:01:26 · 290 阅读 · 0 评论 -
Hbase面试题(面经)整理
1. Hbase是什么?hbase的特点是什么?Hbase一个分布式的基于列式存储的数据库,基于Hadoop的 hdfs 存储,zookeeper 进行管理。 Hbase适合存储半结构化或非结构化数据,对于数据结构字段不够确定或者杂乱无章很难按一个概念去抽取的数据。 Hbase 为 null 的记录不会被存储。 基于的表包含 rowkey,时间戳,和列族。新写入数据时,时间戳更新, 同...转载 2019-10-02 17:40:18 · 13650 阅读 · 5 评论 -
Spark数据本地性
场景:Spark在Driver上,对Application的每一个stage的task,进行分配之前,都会计算出每个task要计算的是哪个分片数据,RDD的某个partition;Spark的task分配算法,优先,会希望每个task正好分配到它要计算的数据所在的节点,这样的话,就不用在网络间传输数据;但是呢,通常来说,有时,事与愿违,可能task没有机会分配到它的数据所在的节...转载 2019-10-03 10:28:18 · 243 阅读 · 0 评论 -
Spark资源调度和任务调度
转自:https://blog.csdn.net/lhworldblog/article/details/79300025一、前述Spark的资源调度是个很重要的模块,只要搞懂原理,才能具体明白Spark是怎么执行的,所以尤其重要。自愿申请的话,本文分粗粒度和细粒度模式分别介绍。二、具体 Spark资源调度流程图: Spark资源调度和任务...转载 2018-09-18 19:04:22 · 292 阅读 · 0 评论 -
Spark常用算子总结
1. Transformations算子The following table lists some of the common transformations supported by Spark. Refer to the RDD API doc (Scala,Java,Python,R) and pair RDD functions doc (Scala,Java) for de...原创 2019-08-15 20:00:11 · 115 阅读 · 0 评论 -
Scala中的隐式转换函数、隐式参数和隐式类
隐式转换函数: 所谓隐式转换函数指的是implicit关键字修饰的且只有一个参数的函数,其作用是 1.隐式转换增强现有类型,2.隐式转换做参数类型转换1. 例如:inplicit def int2String(n:Int):String = (n.toString)上案例:我们把Fruit对象转换成了Monkey对象//Scala的隐式转换//水果class...原创 2019-08-19 20:58:28 · 194 阅读 · 0 评论 -
Spark中yarn模式两种提交任务方式
转自:https://www.cnblogs.com/LHWorldBlog/p/8414342.html一、前述Spark可以和Yarn整合,将Application提交到Yarn上运行,和StandAlone提交模式一样,Yarn也有两种提交任务的方式。二、具体 1、yarn-client提交任务方式配置 在client节点配置中spa...转载 2018-10-12 13:50:35 · 226 阅读 · 0 评论 -
Spark基础 repartition vs coalesce
转自:https://blog.csdn.net/high2011/article/details/78842739请记住,对您的数据进行重新分区是一个相当昂贵的操作。还好,Spark还有一个名为coalesce()的repartition()的优化版本,它允许避免数据移动,但只有在减少RDD分区的数量的时候使用。一、repartition和coalesce区别1、coalesce操作...转载 2018-09-27 15:13:29 · 295 阅读 · 0 评论 -
Trie Tree 实现中文分词器
前言继上一篇HashMap实现中文分词器后,对Trie Tree的好奇,又使用Trie Tree实现了下中文分词器。效率比HashMap实现的分词器更高。Trie Tree 简介Trie Tree,又称单词字典树、查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的...原创 2018-09-15 10:02:53 · 424 阅读 · 0 评论 -
HashMap实现中文分词器
HashMap简单实现的分词器public class TokenizerDemo { private static Map<String, String> map = new HashMap<String, String>(); //词典中最长词的长度,map中的key的最长长度 private static final int maxS...转载 2018-09-15 09:58:15 · 300 阅读 · 0 评论 -
基于Solr的HBase多条件查询
转自:https://www.cnblogs.com/chenz/articles/3229997.html背景:某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询。HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级的快速检索,对于多字段的组合查询却无能为力。针对HBase的多条件查询也有多种方案,但是这些方案要么太复杂,要么效率太低,本文只对基于Solr的...转载 2018-09-12 19:53:59 · 178 阅读 · 0 评论 -
Lucene 全文检索原理
转自:https://blog.csdn.net/forfuture1978/article/details/4711308一、总论根据http://lucene.apache.org/java/docs/index.html 定义:Lucene 是一个高效的,基于Java 的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们...转载 2018-09-12 16:34:16 · 608 阅读 · 0 评论 -
shuffle过程分析
shuffle阶段其实就是之前《MapReduce的原理及执行过程》中的步骤2.1。多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点上。 Map端: 1、在map端首先接触的是InputSplit,在InputSplit中含有DataNode中的数据,每一个InputSplit都会分配一个Mapper任务,Mapper任务结束后产生<K2,...原创 2018-09-06 14:31:24 · 369 阅读 · 0 评论 -
MapReduce框架原理—MapTask工作机制
转自:https://blog.csdn.net/weixin_37838429/article/details/82530779并行度决定机制1.问题引出 maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度。那么,mapTask并行任务是否越多越好呢? 2.MapTask并行度决定机制 一个job的map阶段MapTask并行度(个数...转载 2018-09-09 11:03:20 · 160 阅读 · 0 评论 -
Spark性能调优
转自:http://www.raychase.net/3546 Spark的性能调优下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的。基本概念和原则首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task...转载 2018-10-22 16:35:14 · 130 阅读 · 0 评论 -
值得一提:关于 HDFS 的 file size 和 block size
转自:https://blog.csdn.net/samhacker/article/details/23089157一个常被问到的一个问题是: 如果一个HDFS上的文件大小(file size) 小于块大小(block size) ,那么HDFS会实际占用Linux file system的多大空间?答案是实际的文件大小,而非一个块的大小。下面做一个实验:1、往hdfs里面添加新文件...转载 2019-01-28 14:26:14 · 446 阅读 · 0 评论 -
Hadoop动态上下线datanode节点及副本均衡机制
添加DataNode考项目到新的服务器启动datanode sbin/hadoop-daemon.sh start datanode清掉tmp本文主要从基础准备,添加DataNode和添加NodeManager三个部分详细说明在Hadoop2.6.0环境下,如何动态新增节点到集群中。 基础准备 在基础准备部分,主要是设置hadoop运行的系统环境 修改系统host...转载 2019-08-19 14:35:26 · 573 阅读 · 0 评论 -
深入了解一下Redis的内存模型!
转自:https://www.cnblogs.com/qwangxiao/p/8921171.html一、前言Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一...转载 2019-04-25 16:34:51 · 99 阅读 · 0 评论 -
MapReduce排序过程详解
https://blog.csdn.net/program_god1/article/details/80537073转载 2019-03-17 15:20:21 · 576 阅读 · 0 评论 -
RPC框架调用过程详解
转自:https://blog.csdn.net/heyeqingquan/article/details/78006587 RPC是远程调用过程的简写,是一个协议,处于网络通信协议的第五层:会话层,其下就是TCP/IP协议,在建立在其基础上的通信会话协议。RPC定义了交互的模式,而应用程序使用这些模式,来访问其他服务器的方法,并不需要关系具体的网络上的细节。 一、RPC...转载 2019-01-30 15:33:38 · 1393 阅读 · 0 评论 -
HDFS中SecondaryNameNode合并fsimage和edit log操作
转自:http://flyingdutchman.iteye.com/blog/1874824本节我们主要写Secondary NameNode是如何合并命名空间文件和编辑日志文件。 //------------------------------------------------------------------------------------------------------...转载 2019-01-30 15:07:19 · 1544 阅读 · 0 评论 -
Hadoop NameNode详解
转自:https://blog.csdn.net/lb812913059/article/details/78713634NameNode在内存中保存着整个文件系统的名字空间和文件数据块的地址映射(Blockmap)。如果NameNode宕机,那么整个集群就瘫痪了 整个HDFS可存储的文件数受限于NameNode的内存大小 这个关键的元数据结构设计得很紧凑,因而一个有4G内存的Nameno...转载 2019-01-30 13:50:56 · 1385 阅读 · 0 评论 -
Spark Stage划分标准
转自:https://blog.csdn.net/zhyooo123/article/details/82703723RDD之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖。Spark中的Stage其实就是一组并行的任务,任务是一个个的task 。窄依赖父RDD和子RDD partition之间的关系是一对一的。或者父RDD一个partition只对应一个子RDD的partition...转载 2019-01-29 16:27:01 · 719 阅读 · 0 评论 -
关于 HDFS 数据块占用实际磁盘空间问题
转自:https://blog.csdn.net/samhacker/article/details/23089157一个常被问到的一个问题是: 如果一个HDFS上的文件大小(file size) 小于块大小(block size) ,那么HDFS会实际占用Linux file system的多大空间?答案是实际的文件大小,而非一个块的大小。下面做一个实验:1、往hdfs里面添加新文件...转载 2019-01-28 14:35:15 · 7830 阅读 · 5 评论 -
hive优化总结
转自:https://blog.csdn.net/preterhuman_peak/article/details/40649213优化时,把hive sql当做map reduce程序来读,会有意想不到的惊喜。理解hadoop的核心能力,是hive优化的根本。这是这一年来,项目组所有成员宝贵的经验总结。 长期观察hadoop处理数据的过程,有几个显著的特征:1.不怕数据多,就...转载 2018-09-08 16:39:22 · 108 阅读 · 0 评论