
Big Data 每日一题
天地不仁以万物为刍狗
天之道,损有余而补不足
人之道,损不足以奉有馀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Big Data 每日一题20180814】hadoop中有几个文件,spark就会有几个Partition么?
spark中的几个概念File,Block,Split,Task,Partition,RDD以及节点数、Executor数、core数目的关系梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数、Executor数、core数目的关系。输入可能以多个文件的形式存储在HDFS上,每个File都包含了很多块,称为B...原创 2018-08-14 21:56:34 · 509 阅读 · 0 评论 -
【Big Data 每日一题20180815】 HBase 与 zookeeper 之间的关系?
Zookeeper主要管理Hadoop集群中的NameNode,HBase中HBaseMaster的选举,Servers之间状态同步等。具体一点,细一点说,单只HBase中ZooKeeper实例负责的工作就有:存储HBase的Schema,实时监控HRegionServer,存储所有Region的寻址入口,当然还有最常见的功能就是保证HBase集群中只有一个Master。...原创 2018-08-14 22:02:41 · 532 阅读 · 0 评论 -
待编辑【Big Data 每日一题20180817】 多版本并发控制是什么?
【Big Data 每日一题20180817】 多版本并发控制是什么?原创 2018-08-17 22:31:42 · 140 阅读 · 0 评论 -
【Big Data 每日一题】目录
Spark【Big Data 每日一题】Spark开发性能调优总结【Big Data 每日一题20180821】Spark中ml和mllib的区别?【Big Data 每日一题20180828】Maven 中 jar 包的 Snapshot 和 Release 版本区别?【Big Data 每日一题20180829】Spark on Yarn 的两种运行模式?【Big Data...原创 2018-08-15 23:43:06 · 329 阅读 · 0 评论 -
【Big Data 每日一题20180816】 数组为什么比list 效率高?
1、寻址操作次数链表要多一些。数组只需对 [基地址+元素大小*k] 就能找到第k个元素的地址,对其取地址就能获得该元素。链表要获得第k个元素,首先要在其第k-1个元素寻找到其next指针偏移,再将next指针作为地址获得值,这样就要从第一个元素找起,多了多步寻址操作,当数据量大且其它操作较少时,这就有差距了。2、CPU缓存会把一片连续的内存空间读入,因为数组结构是连续的内存地址,所以数组全部或...原创 2018-08-15 23:44:51 · 845 阅读 · 0 评论 -
待编辑【Big Data 每日一题20180818】 journal node 作用?
待编辑【Big Data 每日一题20180818】 journal node 作用?原创 2018-08-18 23:24:05 · 201 阅读 · 0 评论 -
待编辑【Big Data 每日一题20180819】 ?
待编辑【Big Data 每日一题20180819】 ?原创 2018-08-19 23:55:58 · 158 阅读 · 0 评论 -
待编辑【Big Data 每日一题20180826】linux ?
【Big Data 每日一题20180826】linux ?原创 2018-08-26 23:11:07 · 118 阅读 · 0 评论 -
【Big Data 每日一题20180822】Java动态编译优化——URLClassLoader 内存泄漏问题解决
转 https://blog.youkuaiyun.com/shijing266/article/details/81939477一、动态编译案例要说动态编译内存泄漏,首先我们先看一个案例(网上搜动态编译的资料是千篇一律,只管实现功能,不管内存泄漏,并且都恬不知耻的标识为原创!!)Java URLClassLoader 动态编译案例:https://blog.youkuaiyun.com/huangshan...转载 2018-08-22 23:11:22 · 2080 阅读 · 0 评论 -
【Big Data 每日一题20180823】Linux 中 ulimit 作用
作用Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数。ulimit主要是用来限制进程对资源的使用情况的,它支持各种类型的限制,常用的有:内核文件的大小限制 进程数据块的大小限制 Shell进程创建文件大小限制 可加锁内存大小限制 常驻内存集的大小限制 打开文件句柄数限制 分配堆栈的最大大小限制 CPU占用时...原创 2018-08-22 23:18:25 · 193 阅读 · 0 评论 -
【Big Data 每日一题20180827】linux 管道命令 与 管道通信
管道命令 https://blog.youkuaiyun.com/tq384998430/article/details/54925742linux 管道 通信https://www.cnblogs.com/davidwang456/p/3839874.htmlLinux进程间通信(IPC)编程实践(一) 基本概念和匿名管道https://blog.youkuaiyun.com/NK_test/a...原创 2018-08-27 22:27:24 · 165 阅读 · 0 评论 -
【Big Data 每日一题20181111】为什么有栈内存和堆内存之分
为什么有栈内存和堆内存之分? 数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当该引用指向有效内存,才可以通过该数组变量来访问数组。 实际的数组对象被储存在堆(heap)内存中;如果引用该数组对象引用变量是一个局部变量,那么它被储存在栈(stack)内存中。 当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量...转载 2018-11-11 23:42:13 · 148 阅读 · 0 评论 -
【Big Data 每日一题20180824】Linux传统Huge Pages与Transparent Huge Pages ????
Linux传统Huge Pages与Transparent Huge Pages原创 2018-08-23 23:02:07 · 153 阅读 · 0 评论 -
【Big Data 每日一题20180828】Maven 中 jar 包的 Snapshot 和 Release 版本区别
概念这两个概念是用于描述 jar 包,jar 包 提供给其他系统作为依赖 snapshot 版本代表不稳定、尚处于开发中的版本,即快照版本 release 版本代表功能趋于稳定、当前更新停止,可以用于发行的版本使用场景依赖库中的 jar 包若处于不断更新,更准确的说是不停 deploy 时,deploy会发布到私服,则使用snapshot 格式:<version>1....转载 2018-08-28 23:27:33 · 734 阅读 · 0 评论 -
【Big Data 每日一题20180829】Spark on Yarn 的两种运行模式?
cluster模式:Driver程序在YARN中运行,应用的运行结果不能在客户端显示,所以最好运行那些将结果最终保存在外部存储介质(如HDFS、Redis、Mysql)而非stdout输出的应用程序,客户端的终端显示的仅是作为YARN的job的简单运行状况。client模式:Driver运行在Client上,应用程序运行结果会在客户端显示,所有适合运行结果有输出的应用程序(如spark-she...原创 2018-08-28 23:39:20 · 185 阅读 · 0 评论 -
【Big Data 每日一题20180830】Metrics 入门教程 关于 Metrics ?
Metrics,谷歌翻译就是度量的意思。当我们需要为某个系统某个服务做监控、做统计,就需要用到Metrics。举个栗子,一个图片压缩服务:每秒钟的请求数是多少(TPS)? 平均每个请求处理的时间? 请求处理的最长耗时? 等待处理的请求队列长度?又或者一个缓存服务:缓存的命中率? 平均查询缓存的时间?基本上每一个服务、应用都需要做一个监控系统,这需要尽量以少量的代码,实现统计...转载 2018-08-28 23:42:49 · 505 阅读 · 0 评论 -
【Big Data 每日一题20180831】Spark 的 task 数据 locality?
在Spark Application Web UI的 Stages tag 上,tasks 的一些信息,其中 Locality Level 一栏的值可以有 PROCESS_LOCAL: 数据在同一个 JVM 中,即同一个 executor 上。这是最佳数据 locality。 NODE_LOCAL: 数据在同一个节点上。比如数据在同一个节点的另一个 executor上;或在 HDF...转载 2018-08-28 23:50:11 · 155 阅读 · 0 评论 -
待编辑【Big Data 每日一题20180820】
【Big Data 每日一题20180820】原创 2018-08-21 22:29:08 · 252 阅读 · 0 评论 -
【Big Data 每日一题20180821】Spark中ml和mllib的区别
Spark中ml和mllib的主要区别和联系如下:ml和mllib都是Spark中的机器学习库,目前常用的机器学习功能2个库都能满足需求。 spark官方推荐使用ml, 因为ml功能更全面更灵活,未来会主要支持ml,mllib很有可能会被废弃(据说可能是在spark3.0中deprecated)。 ml主要操作的是DataFrame, 而mllib操作的是RDD,也就是说二者面向的数据集不...转载 2018-08-21 22:31:03 · 163 阅读 · 0 评论 -
大数据框架、概念等 简短总结 (持续总结中)
数据仓库 更关注数据分析层面(OLAP)一次写入、多次读取HDFS 分布式文件系统HDFS适合批处理场景,不支持数据随机查找,不适合增量数据处理且不支持数据更新Habse分布式文件系统的动态查询,HDFS的随机读写操作HBase并不适合传统的事物处理程序或关联分析,不支持复杂查询Hive分布式文件系统的类SQL 查询Hive不是为在线事务处理而设计Spa...原创 2018-08-29 23:30:56 · 530 阅读 · 0 评论 -
待编辑【Big Data 每日一题20180825】linux ?
【Big Data 每日一题20180825】linux ?原创 2018-08-25 22:38:13 · 127 阅读 · 0 评论 -
大牛博客
Spark 源码分析https://blog.youkuaiyun.com/u011564172/article/category/6576857/3过往记忆 --- 大数据马猴烧酒└(┐卍^o^)卍ドゥルルル --- 架构、微服务Laurence的技术博客 --- 大数据、企业级应用架构董的博客 --- 大数据 (技术版本相对旧)微软、Google等...原创 2018-09-05 23:39:46 · 213 阅读 · 0 评论 -
【Big Data 每日一题20180905】Spark Shuffle FetchFailedException解决方案
在大规模数据处理中,这是个比较常见的错误。报错提示SparkSQL shuffle操作带来的报错org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 0org.apache.spark.shuffle.FetchFailedException...转载 2018-09-05 23:42:55 · 368 阅读 · 0 评论 -
【Big Data 每日一题20180901】 Kafka相对传统技术有什么优势
Apache Kafka与传统的消息传递技术相比优势之处在于:快速:单一的Kafka代理可以处理成千上万的客户端,每秒处理数兆字节的读写操作。可伸缩:在一组机器上对数据进行分区和简化,以支持更大的数据持久:消息是持久性的,并在集群中进行复制,以防止数据丢失。设计:它提供了容错保证和持久性...原创 2018-09-03 23:14:21 · 1756 阅读 · 0 评论 -
【Big Data 每日一题20180902】 Kafka 最大的特点?
最大的特点: 系统间的解耦 和 高吞吐能力解耦 各位系统之间通过消息系统这个统一的接口交换数据,无须了解彼此的存在 冗余 部分消息系统具有消息持久化能力,可规避消息处理前丢失的风险 扩展 消息系统是统一的数据接口,各系统可独立扩展 峰值处理能力消息系统可顶住峰值流量,业务系统可根据处理能力从消息系统中获取并处理对应量的请求 可恢复性 系统中部分组件失效并不会影响整个系统,...原创 2018-09-03 23:17:09 · 152 阅读 · 0 评论 -
【Big Data 每日一题20180903】 Kafka的Zookeeper关系?
Zookeeper是一个开放源码的、高性能的协调服务,它用于Kafka的分布式应用。 Zookeeper主要用于在集群中不同节点之间进行通信 在Kafka中,它被用于提交偏移量,因此如果节点在任何情况下都失败了,它都可以从之前提交的偏移量中获取 除此之外,它还执行其他活动,如: leader检测、分布式同步、配置管理、识别新节点何时离开或连接、集群、节点实时状态等等。 ...原创 2018-09-03 23:21:46 · 143 阅读 · 0 评论 -
【Big Data 每日一题20180904】ISR策略(in-sync Replica) ?
Leader会维护一个与其基本保持同步的Replica列表,该列表称为ISR(in-sync Replica) 如果一个Follower比Leader落后太多,或者超过一定时间未发起数据复制请求,则Leader将其从ISR中移除 当ISR中所有Replica都向Leader发送ACK时,Leader即Commit ...原创 2018-09-03 23:28:39 · 1138 阅读 · 0 评论 -
【Big Data 每日一题20180907】Spark性能调优篇二之重构RDD架构及RDD持久化
本片文章来聊聊一个Spark作业中RDD的重构,以及一些复用的RDD持久化的常用策略。首先给出两个RDD执行过程图形类型1如上图所示,当第一次对RDD2执行算子获得RDD3的时候,首先会从RDD1开始计算,然后执行RDD2,最后计算得到RDD3。对于RDD4同样会按照RDD3的流程去执行一遍RDD1和RDD2的两个算子,想想如果数据量非常大的话,那将是完全不敢想象的灾难。随后,我们...转载 2018-09-09 23:42:32 · 159 阅读 · 0 评论 -
【Big Data 每日一题20180908】Spark性能调优篇三之广播方式传输数据
接着之前的Spark调优系列文章,我们今天介绍一下通过广播的方式优化我们的Spark作业运行效率。在介绍文章之前,我们首先来分析一下我们Spark作业运行的时候每个task任务默认是怎么怎么工作的。好了,首先先来看一张图。默认task的工作流程图 上图是用户session分析模块中的按照时间比例随机抽取的session信息的集合(解释:这里是结合我项目中的一个点进行说明的,...转载 2018-09-09 23:43:18 · 197 阅读 · 0 评论 -
【Big Data 每日一题20180909】Spark性能调优篇四之使用Kryo进行序列化操作
接着上一篇文章,今天介绍一下通过使用Kryo这个东东来进一步降低网络IO的传输量和内存的占用率。在介绍Kryo之前,接下来我们先来对比一下默认的序列化和Kryo方式的序列化的性能(其实就是序列化后数据的体积)。默认的序列化:基于Java语言的Spark程序中,默认使用了ObjectInputStream和ObjectOutputStream对对象进行序列化操作的。这种默认序列化机制的好处在于...转载 2018-09-09 23:43:57 · 183 阅读 · 0 评论 -
【Big Data 每日一题20180910】Spark性能调优篇五之使用fastUtil工具包
今天再来介绍一个小的优化点,是一个通过使用fastutil工具包对数据格式进行优化。首先来明确一个东西,什么是fastutil? fastutil是一个Java集合框架的扩展,通过实现Java集合的接口,提供了特殊类型的map,list等等。通过使用fastutil可以使得对象占用更小的内存,更快的存取速度;通过这两个特点,我们可以将Spark作业中用的一些map,list等结构...转载 2018-09-09 23:44:30 · 225 阅读 · 0 评论 -
【Big Data 每日一题20180911】Spark性能调优篇六之调节数据本地化等待时长
本篇我们讨论一下数据本地化等待时长调节的优化。在介绍关于本地化等待时长调节之前,我们先来看看数据本地化的运行原理吧。 Spark在Driver上对Application的每个task任务进行分配之前,都会先计算出每个task要计算的对应的数据分片的位置。Spark的task分配算法优先考虑将task分配到分片数据所在的节点,以此来避免网络间数据传输带来的性能消耗。但是在实际的生产...转载 2018-09-12 23:14:34 · 262 阅读 · 0 评论 -
【Big Data 每日一题20180912】Spark性能调优篇七之JVM相关参数调整
由于Spark程序是运行在JVM基础之上的,所以我们这一篇来讨论一下关于JVM的一些优化操作。在开始JVM调优操作之前,我们先通过一张图看一下JVM简单的内存划分情况。JVM内存划分图 关于JVM内存的深入知识在这里不赘述,请大家自行对相关知识进行补充。好,说回Spark,运行Spark作业的时候,JVM对会对Spark作业产生什么影响呢?答案很简单,如果数据量过大,一定...转载 2018-09-12 23:14:44 · 240 阅读 · 0 评论 -
【Big Data 每日一题20180913】Spark性能调优篇八之shuffle调优(重要)
本篇文章来介绍一个重量级的Spark调优机制,就是我们常说的shuffle调优。在讲解shuffle调优之前,我们先来明确一个概念,什么是shuffle操作?问题:什么是shuffle?答案:每个Spark作业启动运行的时候,首先Driver进程会将我们编写的Spark作业代码分拆为多个stage,每个stage执行一部分代码片段,并为每个stage创建一批Task,然后将这些Task分配...转载 2018-09-13 22:56:18 · 181 阅读 · 0 评论 -
【Big Data 每日一题20180914】Spark性能调优九之常用算子调优
1.使用mapPartitions算子提高性能mapPartition的优点:使用普通的map操作,假设一个partition中有1万条数据,那么function就要被执行1万次,但是使用mapPartitions操作之后,function仅仅会被执行一次,显然性能得到了很大的提升,这个就没必要在多废话了。mapPartition的缺点:使用普通的map操作,调用一次function执行一...转载 2018-09-14 22:27:25 · 159 阅读 · 0 评论 -
【Big Data 每日一题20180919】Spark内核分析之spark作业的三种提交方式
最近在研究Spark源码,顺便记录一下,供大家学习参考,如有错误,请批评指正。好,废话不多说,这一篇先来讲讲Spark作业提交流程的整体架构。第一种,基于Standalone的方式,整体架构如下图所示;基于Standalone架构图1.当向一个Standalone模式集群中提交一个Application的时候,第一步首先通过反射的机制创建一个DriverActor(这里指Driv...转载 2018-09-19 23:13:46 · 192 阅读 · 0 评论 -
【Big Data 每日一题20180917】数据本地化的几种级别
PROCESS_LOCAL:进程本地化,代码和数据在同一个进程中,也就是在同一个executor中;计算数据的task由executor执行,数据在executor的BlockManager中;性能最好(图1)RACK_LOCAL:机架本地化,数据和task在一个机架的两个节点上;数据需要通过网络在节点之间进行传输(图2)NODE_LOCAL:节点本地化,代码和数据在同一个节点中;比如说,...原创 2018-09-18 00:07:24 · 307 阅读 · 0 评论 -
【Big Data 每日一题20180906】Spark性能调优篇一之任务提交参数调整
写在前面的一些”废话“:最近在做spark的项目,虽然项目基本功能都实现了,但是在真正的成产环境中去运行,发现程序运行效率异常缓慢;迫于无奈(实际是自己都不忍直视了),所以决定对程序做一番优化操作。在网上查看了不上关于spark程序的优化方法,但是都比较分散不够全面,所以决定就自己编写的基于Java的spark程序,记录一下我所做过的一些优化操作,加深印象方面以后的项目调优使用。这是一个Spa...转载 2018-09-06 23:20:32 · 209 阅读 · 0 评论 -
【Big Data 每日一题20180916】Spark累加器(Accumulator)陷阱及解决办法
Accumulator简介Accumulator是spark提供的累加器,顾名思义,该变量只能够增加。 只有driver能获取到Accumulator的值(使用value方法),Task只能对其做增加操作(使用 +=)。你也可以在为Accumulator命名(不支持Python),这样就会在spark web ui中显示,可以帮助你了解程序运行的情况。Accumulator使用使用示...转载 2018-09-16 22:32:56 · 203 阅读 · 0 评论 -
【Big Data 每日一题20180915】Spark编码时,Static 变量慎用?
static变量最好不要用,应该使用Spark提供的广播变量和累加器Broadcast Accumulator static变量会引发的问题:1、 类的static变量不会被序列化,序列化task的时候,值会丢失2、static变量保存在内存模型中的方法区,会影响(同一个Excuter的线程)其他task的值。3、演算子内使用外部变量,特别是 执行action(如输...原创 2018-09-16 22:32:49 · 847 阅读 · 1 评论