自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hadoop3.x新特性

1.JDKhadoop3.x的JDK最低为Java82.副本&EC副本:在分布式存储系统下的一种数据可靠性保护技术,通过冗余的数据副本来保障单点故障下数据的请求不中断。Erasure Code(EC):即纠删码,是另一种实现数据保护的机制,该机制通过计算校验片的方式来实现数据冗余保护,更高存储利用率。EC的优势:数据的持久度增强,降低了成本,写性能提升。EC的缺点:由于擦除编码需要在执行远程读取时,对数据重建带来额外的开销,读取性能下降,因此他通常用于存储不太频繁访问的数

2020-07-02 16:12:25 519

原创 大数据开发面试题

1、HashMap 和 Hashtable 区别Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口。 线程安全性不同,Hashtable 线程安全 HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey,因为contains方法容易让人引起误解。Ha...

2020-04-01 19:18:03 4190 1

原创 HFile为什么要合并,怎么合并

memstore每次刷写会产生一个HFile,当HFile过多时,读取速度下降合并类型:minor compaction 移除TTL到期文件(频繁) major compaction 删除已删除的文件,版本号超过当前版本的数据,把一个store的HFile合并成一个HFile(默认7天一次)流程:获取不带锁的列表 由列表创建一个StoreFileScanner来读本次合并的所有s...

2020-03-28 23:30:38 579

原创 老年代的GC算法

标记回收:先标记,再统一回收,会产生大量不连续的内存碎片 标记整理:先标记,让所有存活的对象向一端移动,然后清理掉边界外的内存没有碎片 复制:将可用内存分为相同的两块,每次只用一块,当用完时,将存活的对象复制到另一块上,再把已用的空间清理掉...

2020-03-28 23:20:02 637

原创 HBase数据倾斜

(取反)当Rowkey分布不均匀,但Rowkey的反序有随机性,可以将Rowkey取反,但是这种方式只能优化get,对scan操作并不友好,因为自然顺序被打乱了 (加盐)在原Rowkey前加定长随机数,但无法查找,增加了吞吐量 (Hash)对Rowkey进行hash,对原Rowkey的前缀部分进行替换与取反类似,不利于scan...

2020-03-28 23:16:31 560

原创 Spark任务数据倾斜处理

现象:同一个stage中大部分task执行很快少数几个很慢,原本正常的任务,突然OOM,也i可能是数据倾斜。定位:代码中有shuffle算子,根据慢的task定位stage找到对应的shuffle算子解决方法:对数据进行ETL预处理(Hive表有倾斜) 过滤少数没有意义的倾斜的key(可以通过sample算子抽样动态判断) 提高shuffle的并行度(reduceBykey指定分区...

2020-03-28 23:12:29 323

原创 Spark的四种Shuffle

未经优化的HashShuffle上游stage的task对相同的key执行hash算法,从而将相同的key写到一个磁盘文件中,而每个磁盘文件都只属于下游stage的一个task,这就导致了下游有几个task上有就要创建多少个磁盘小文件,当下游的task任务过多的时候,上游就会堆积磁盘小文件优化的HashShufflespark.shuffle.consolidateFiles=tru...

2020-03-27 16:42:14 1182

原创 Spark任务提交流程

standalone模式spark-submit提交程序后,dirver和application向master注册 创建SparkContext对象,其中包含DAGScheduler和TaskScheduler driver把application信息注册给master后,master会根据App信息去worker节点起executor executor内部会创建运行Task的线程池,然...

2020-03-27 16:04:49 203

原创 Hbase数据损坏异常修复

步骤1. hbase hbck 检查输出所以ERROR信息,每个ERROR都会说明错误信息。步骤2. hbase hbck -fixTableOrphans 先修复tableinfo缺失问题,根据内存cache或者hdfs table 目录结构,重新生成tableinfo文件。步骤3. hbase hbck -fixHdfsOrphans 修复regioninfo缺失问题,根据region目录...

2019-11-27 17:41:40 1804

原创 Tensorflow简介

什么是Tensorflow?TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Go...

2019-11-27 14:53:04 841

原创 Tensorflow(一)

第一个Graph图Tensorflow程序可以通过tf.device函数来指定运行每一个操作的设备 这个设备可以是本地的CPU或GPU,也可以是某一远程服务器import tensorflow as tf'''Tensorflow会给每一个可用的设备一个名称,tf.device函数可以通过设备的名称来指定执行运算的设备。比如CPU在Tensorflow中的名称为/cpu:0在默认...

2019-11-27 14:52:37 145

原创 机器学习中的距离

欧式距离也称欧几里得距离,在一个N维度的空间里,求两个点的距离,这个距离肯定是一个大于等于零的数字,那么这个距离需要用两个点在各自维度上的坐标相减,平方后加和再开方。 二维: 三维: 平方欧式距离就是欧式距离的平方曼哈顿距离相比欧氏距离要简单得多,曼哈顿距离只要把两个点坐标的x坐标相减取绝对值,y坐标相减取绝对值,再加和。余弦距离也叫做余...

2019-07-19 15:49:45 226

原创 Scala偏函数、样例类(case classes)

偏函数如果一个方法中没有match只有case,这个函数可以定义成PartialFunction偏函数。偏函数定义时,不能使用括号传参,默认定义PartialFunction中传入一个值,匹配上了对应的case,返回一个值。object Test1 { def main(args: Array[String]): Unit = { println(test("scalaa...

2019-07-10 13:52:58 268

原创 Scala模式匹配match

1.概念理解Scala提供了强大的模式匹配机制,应用也非常广泛。 一个模式匹配包含了一系列备选项,每个都开始于关键字case。 每个备选项都包含了一个模式及一到多个表达式。箭头符号=>隔开了模式和表达式。2.代码及注意点模式匹配不仅可以匹配值还可以匹配类型 从上到下顺序匹配,如果匹配到则不再往下匹配 都匹配不上时,会匹配到case_,相当于default match的最外...

2019-07-10 11:05:26 161

原创 Scala trait特性

1.概念理解Scala Trait(特征)相当于Java的接口,实际上他比接口还要功能强大。 与接口不同的是,它还可以定义属性和方法的实现。 一般情况下Scala的类可以继承多个Trait,从结果来看就是实现了多重继承。 Trait(特征)定义的方式与类类似,但他使用的关键字trait。2.举例trait中带属性带方法实现注意:继承的多个trait中如果有同名的方法和属性...

2019-07-10 10:48:44 220

原创 Scala集合

1.数组创建数组的两种方式直接Array一个指定类型的数组并赋值 直接new一个定长的Array[ ] //创建类型为Int 长度为3的数组 val arr1 = new Array[Int](3) //创建String 类型的数组,直接赋值 val arr2 = Array[String]("s100","s200","s300")遍历数组的两种方...

2019-07-09 15:50:43 97

原创 Scala方法和函数

1.Scala方法的定义 def fun (a: Int , b: Int ) : Unit = { println(a+b) } fun(1,1) def fun1 (a : Int , b : Int)= a+b println(fun1(1,2))方法定义语法 用def来定义 可以定义传入的参数,要指定传入参数的类型 方法可以写返回值的类型也可以不写...

2019-07-01 18:36:10 215

原创 Scala基础

scala官网:https://www.scala-lang.org/Scala官网上的六个特征:Java和Scala可以混编 类型推测(scala会自动推测类型,类似python) 并发和分布式(对集合使用数据并行操作,对并发和分发使用参与者,或者对异步编程使用futrure) 特质、特征(类似Java中的interface和abstract结合) 模式匹配(类似Java swi...

2019-07-01 17:55:05 95

空空如也

空空如也

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

TA关注的人

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