自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

俗人

路途远漫,点滴笔记,望莫失莫忘,顺心安稳

  • 博客(25)
  • 收藏
  • 关注

原创 Hive | DISTINCT on different columns not supported with skew in data

SELECT count(distinct imei), count(distinct imsi), count(distinct phone), count(distinct mac ) FROM applog.xxx WHERE substr(dt,0,8) = '20191227' and os = 'android'在多个列上进行的去重操作...

2019-12-31 10:43:03 3312 4

原创 Java | ConcurrentHashMap

学习中~ ,后续补充~

2019-12-25 17:05:33 158

原创 Hive | 记录下执行SQL时常见的参数设置

// 基本任务参数设置set mapred.reduce.tasks = 1; // 设置任务reduce个数set mapreduce.job.queuename = root.queueS1; // 设置任务执行队列 set mapred.child.java.opts = -Xmx8096m ; // 内存大小set mapred.job.name = 'Task1'; // 设...

2019-12-25 16:51:36 1357

原创 Java | 红黑树

后续补充~

2019-12-25 16:41:16 117

原创 Python | Logging实现日志输出到文件

记录下Python中使用Logging实现日志输出到文件,实例如下:# -*- coding: UTF-8 -*- #!/usr/bin/python import logging from logging import handlers # 创建一个logger并设置日志等级logger = logging.getLogger()logger.setLevel(loggin...

2019-12-20 13:59:17 2348 1

原创 Python | 基于WebHDFS REST API操作HDFS

记录下基于WebHDFS REST API操作HDFS的基本功能,具体更多请参照官网介绍:http://hadoop.apache.org/docs/r3.2.1/hadoop-project-dist/hadoop-hdfs/WebHDFS.html# 获取客户端连接client = Client(url='http://192.168.0.1:50070', root=None, ...

2019-12-20 12:00:42 1174

转载 Linux | 命令学习

文章目录一、系统监控1、free命令2、ulimit命令3、top命令4、df命令5、ps命令二、文件操作1、tail命令2、ll -ah三、网络通信1、netstat2、重启网络3、SELinux4、防火墙四、系统管理1、uname2、ip addr一、系统监控1、free命令free 命令能够显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示...

2019-12-18 09:36:47 225

原创 Java | ArrayList

Java8中ArrayList是基于数组保存数据,相当于一个数组队列,但该数组是动态数组,即数组大小可以被扩容。接下来看下ArrayList类继承关系(IDEA中快捷键Ctrl + Alt + U查看),如下:public class ArrayList<E> extends AbstractList<E> implements List<E...

2019-12-17 17:42:01 194

原创 Java | LinkedList

Java8 中 LinkedList内部基于双向链表结构实现。链表是由一系列节点组成的数据结构,每个节点包含了存储数据的数据域 和存储下一个节点地址的指针域;链表不需要按顺序存储数据,而存储单元可以是连续的,也可以是不连续的。链表在插入的时候可以达到O(1)的复杂度,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1...

2019-12-13 18:06:51 228

原创 Java | HashMap

Java8 HashMap 内部主要特点:使用哈希表(散列表)来进行数据存储,并使用链地址法来解决冲突;当链表长度大于等于 8 时,将链表转换为红黑树来存储;每次进行二次幂的扩容,即扩容为原容量的两倍;再来看下Java8 HashMap中的部分代码具体实现:静态属性初始化赋值 :// 静态属性初始化赋值 //<< 左移位运算,将运算对象的二进制位全部...

2019-12-13 11:41:12 350 1

转载 SparkSQL| RDD&DataFrame&DataSet

RDD: RDD就是一个不可变的分布式对象集合,是Spark对数据的核心抽象。每个RDD都被分为多个分区,每个分区就是一个数据集片段,这些分区运行在集群中的不同节点上。RDD提供了一种高度受限的内存共享模型,即RDD是只读的,只能基于稳定的物理储存中的数据集来创建RDD或对已有的RDD进行转换操作来得到新的RDD。 DataFrame: DataFrame是用在Spark SQ...

2019-12-09 17:01:38 188

原创 Spark SQL | 查询优化器Catalyst

https://www.jianshu.com/p/410c23efb565https://www.cnblogs.com/shishanyuan/p/8455786.html

2019-12-09 16:25:00 355

转载 Spark Streaming | 连接Kafka的两种方式

本文将从Spark Streaming获取kafka数据的两种模式入手,结合个推实践,带你解读Receiver和Direct模式的原理和特点,以及从Receiver模式到Direct模式的优化对比。 2 两种模式的原理和区别Receiver模式1. Receiver模式下的运行架构1) InputDStream: 从流数据源接收的输入数据。2) Receiver:负责接收数据...

2019-12-09 10:13:45 747

原创 Spark | 分组排序

记录下Spark分组排序时遇到的问题,需求问题如下:当前有HDFS文件数据内容为:(字段顺序为手机号-phone、用户ID-userId、线路-line、时间戳-clientTimestamp),然后读取HDFS文件内容生成rdd,其中rdd的格式为( (phone,userId,line))130xxxxxxxx&1980098385910287364&1004&a...

2019-12-04 17:24:06 1075

原创 Spark | 调度器&调度池&调度策略

Spark在提交应用程序执行时会根据RDD依赖关系生成DAG图,然后交给DAGScheduler进行划分作业和调度阶段。而对于多个作业之间的调度,Spark提供两种调度策略:FIFO模式(默认模式) & FAIR模式。其中调度策略执行过程如下:创建调度池:在TaskSchedulerImpl.initialize()中先创建根调度池rootPool对象,然后根据系统配置的调度模式创...

2019-12-04 17:12:17 552

原创 Spark | 数据本地性

Spark在Driver上会对Application的每一个Stage的Task进行分配前,都会计算出每个Task要计算的是哪个分片数据,RDD的某个partition;Spark的Task分配算法会让每个Task正好分配到它要计算的数据所在的节点,这样不用在网络间传输数据,因此在DAG划分Stage分配Task任务时候就确定好了数据本地性。但通常来说,很有可能因为节点A的计算资源和计算能力...

2019-12-04 16:02:17 415

原创 Spark | BlockManager

BlockManager是整个Spark存储模块中的核心,它不仅提供存储模块处理各种存储方式的读写方法,而且还为Shuffle模块提供数据处理等操作接口。BlockManager存在于Driver端和每个Executor中:Driver端的BlockManager 保存了数据的元数据信息;而在Executor中的BlockManager则根据接受到的消息类型进行操作:当Executor的...

2019-12-04 15:43:01 205

原创 Spark | Shuffle 的写操作机制

基于哈希的Shuffle写操作(<V1.1): Spark在该机制中每一个Mapper会根据Reduce数量创建出相应的Bucket,即bucket=MapTaskNum*ReduceTaskNum。Mapper生成的结果会根据设置的Partition算法填充到每个Bucket中,Bucket可以抽象理解为一个文件,当Reduce启动时会根据任务的编号和所依赖的Mapper的编号从源端或者本...

2019-12-04 14:42:06 157

原创 Spark | 分区器Paritioner

Spark中默认提供两种分区器(partitioner):哈希分区器(HashPartitioner):哈希分区器会根据key-value的键值key的hashcode进行分区,即对于给定的key,计算其hashCode,并除于分区的个数取余,如果余数小于0,则用余数+分区的个数,最后返回的值就是这个key所属的分区ID。该分区方法可以保证同一组的键出现在同一个节点的分区上。速度快,但是可...

2019-12-04 11:30:35 366

原创 Spark | checkpoint机制

跟着强大网友学习一波:深入浅出checkpoint机制:https://www.jianshu.com/p/a75d0439c2f9

2019-12-04 10:34:01 131

转载 Spark | Shuffle

Shuffle简介Shuffle的本意是洗牌、混洗的意思,把一组有规则的数据尽量打乱成无规则的数据。而在MapReduce中,Shuffle更像是洗牌的逆过程,指的是将map端的无规则输出按指定的规则“打乱”成具有一定规则的数据,以便reduce端接收处理。其在MapReduce中所处的工作阶段是map输出后到reduce接收前,具体可以分为map端和reduce端前后两个部分。在shuf...

2019-12-03 17:01:18 155

转载 HBase | RegionServer拆分实现过程

由于写入请求由区域服务器处理,它们累积在一个名为memstore的内存存储系统中。一旦memstore填充,它的内容就会作为附加的存储文件写入磁盘。这个事件被称为memstore刷新。当存储文件堆积时,RegionServer会将它们压缩成更少、更大的文件。每次刷新或压缩完成后,该区域中存储的数据量将发生变化。RegionServer会咨询区域拆分策略,以确定该地区是否因为其他策略特定的原因而变得...

2019-12-02 16:37:36 516

转载 HBase | 块缓存BlockCache

HBase提供了两种不同的BlockCache实现,来缓存从HDFS中读取的数据:默认的on-heapLruBlockCache和BucketCache(通常是off-heap)。缓存选择LruBlockCache是原始实现,完全在Java堆内。BucketCache是可选的,主要用于保持块缓存数据脱离堆,尽管BucketCache也可以是文件支持的缓存。当您启用Buc...

2019-12-02 16:31:08 985

转载 HBase | 操作和性能配置选项

调试HBase服务器RPC处理 设置 hbase.regionserver.handler.count(在 hbase-site.xml)为用于并发的核心 x 轴。 可选地,将调用队列分成单独的读取和写入队列以用于区分服务。该参数 hbase.ipc.server.callqueue.handler.factor 指定调用队列的数量: 0意味着单个共享队列。 ...

2019-12-02 16:14:42 553

原创 HBase | HBase 优化

Region:基于RowKey设计来预建分区,减少Region的动态分裂,如果没有预建分区的话,随着Region中数据的增加,Region会进行分裂,这将增加I/O开销。HFile:数据底层存储文件,在每个Memstore进行刷新时会生成一个HFile,当HFile增加到一定程度时,会将属于一个Region的HFile进行合并,但注意合并后HFile大小如果大于设定的值,那么HFile又将重新...

2019-12-02 14:37:52 155

空空如也

空空如也

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

TA关注的人

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