01 2021 档案

【spark】常用转换操作:keys 、values和mapValues
摘要:1.keys 功能: 返回所有键值对的key 示例 val list = List("hadoop","spark","hive","spark") val rdd = sc.parallelize(list) val pairRdd = rdd.map(x => (x,1)) pairRdd.ke 阅读全文

posted @ 2021-01-29 18:46 ExplorerMan 阅读(230) 评论(0) 推荐(0)

Spark 持久化(cache和persist的区别)
摘要:1、RDD 持久化 Spark 中一个很重要的能力是将数据持久化(或称为缓存),在多个操作间都可以访问这些持久化的数据。当持久化一个 RDD 时,每个节点的其它分区都可以使用 RDD 在内存中进行计算,在该数据上的其他 action 操作将直接使用内存中的数据。这样会让以后的 action 操作计算 阅读全文

posted @ 2021-01-29 18:30 ExplorerMan 阅读(956) 评论(0) 推荐(0)

Spark MLlib中KMeans聚类算法的解析和应用
摘要:聚类算法是机器学习中的一种无监督学习算法,它在数据科学领域应用场景很广泛,比如基于用户购买行为、兴趣等来构建推荐系统。 核心思想可以理解为,在给定的数据集中(数据集中的每个元素有可被观察的n个属性),使用聚类算法将数据集划分为k个子集,并且要求每个子集内部的元素之间的差异度尽可能低,而不同子集元素的 阅读全文

posted @ 2021-01-29 12:56 ExplorerMan 阅读(343) 评论(0) 推荐(0)

解析SparkStreaming和Kafka集成的两种方式
摘要:spark streaming是基于微批处理的流式计算引擎,通常是利用spark core或者spark core与spark sql一起来处理数据。在企业实时处理架构中,通常将spark streaming和kafka集成作为整个大数据处理架构的核心环节之一。 针对不同的spark、kafka版本 阅读全文

posted @ 2021-01-29 12:54 ExplorerMan 阅读(243) 评论(0) 推荐(0)

重要 | Spark分区并行度决定机制
摘要:最近经常有小伙伴留言,核心问题都比较类似,就是虽然接触Spark有一段时间了,但是搞不明白一个问题,为什么我从HDFS上加载不同的文件时,打印的分区数不一样,并且好像spark.default.parallelism这个参数时不是一直起作用?其实笔者之前的文章已有相关介绍,想知道为什么,就必须了解S 阅读全文

posted @ 2021-01-29 12:00 ExplorerMan 阅读(556) 评论(0) 推荐(0)

Spark/Scala实现推荐系统中的相似度算法(欧几里得距离、皮尔逊相关系数、余弦相似度:附实现代码)
摘要:在推荐系统中,协同过滤算法是应用较多的,具体又主要划分为基于用户和基于物品的协同过滤算法,核心点就是基于"一个人"或"一件物品",根据这个人或物品所具有的属性,比如对于人就是性别、年龄、工作、收入、喜好等,找出与这个人或物品相似的人或物,当然实际处理中参考的因子会复杂的多。 本篇文章不介绍相关数学概 阅读全文

posted @ 2021-01-29 11:59 ExplorerMan 阅读(412) 评论(0) 推荐(0)

九种常见的数据分析模型
摘要:1. 漏斗分析模型 漏斗分析是一套流程式数据分析,它能够科学反映用户行为状态以及从起点到终点各阶段用户转化率情况的重要分析模型。 运营人员可以通过观察不同属性的用户群体(如新注册用户与老客户、不同渠道来源的客户)各环节转化率,各流程步骤转化率的差异对比,了解转化率最高的用户群体,分析漏斗合理性,并针 阅读全文

posted @ 2021-01-29 11:58 ExplorerMan 阅读(836) 评论(0) 推荐(0)

Spark推荐系统实践
摘要:推荐系统是根据用户的行为、兴趣等特征,将用户感兴趣的信息、产品等推荐给用户的系统,它的出现主要是为了解决信息过载和用户无明确需求的问题,根据划分标准的不同,又分很多种类别: 根据目标用户的不同,可划分为基于大众行为的推荐引擎和个性化推荐引擎 根据数据之间的相关性,可划分为基于人口统计学的推荐和基于内 阅读全文

posted @ 2021-01-29 11:57 ExplorerMan 阅读(411) 评论(0) 推荐(0)

RabbitMQ之消息确认机制(事务+Confirm)
摘要:概述 在使用RabbitMQ的时候,我们可以通过消息持久化操作来解决因为服务器的异常奔溃导致的消息丢失,除此之外我们还会遇到一个问题,当消息的发布者在将消息发送出去之后,消息到底有没有正确到达broker代理服务器呢?如果不进行特殊配置的话,默认情况下发布操作是不会返回任何信息给生产者的,也就是默认 阅读全文

posted @ 2021-01-28 15:43 ExplorerMan 阅读(1003) 评论(0) 推荐(0)

【Python】说说字典和散列表,散列冲突的解决原理
摘要:散列表 Python 用散列表来实现 dict。散列表其实是一个稀疏数组(总是有空白元素的数组称为稀疏数组)。在一般书中,散列表里的单元通常叫做表元(bucket)。在 dict 的散列表当中,每个键值对都占用一个表元,每个表元都有两个部分,一个是对键的引用,一个是对值的引用。因为每个表元的大小一致 阅读全文

posted @ 2021-01-27 17:22 ExplorerMan 阅读(200) 评论(0) 推荐(0)

记一次redis cluster delete node失败
摘要:1、6611 的 slot 5731 move失败。 redis-cluster在reshard时失败,提示信息如下:All nodes agree about slots configuration. Check for open slots...Node 172.28.192.84:6430 h 阅读全文

posted @ 2021-01-27 11:50 ExplorerMan 阅读(526) 评论(0) 推荐(0)

Spark技术栈
摘要:作者:无所不能的小裁缝链接:https://www.zhihu.com/question/51378885/answer/207497660来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 大数据的浪潮风靡全球的时候,Spark火了。在国外 Yahoo!、Twitter 阅读全文

posted @ 2021-01-26 17:35 ExplorerMan 阅读(688) 评论(0) 推荐(0)

Linux rm -rf删除文件不释放空间的解决办法
摘要:前几天发现在Linux系统下有一个很大的无用文件,于是用rm -rf 删除,然后用df -h查看磁盘空间,发现即使文件被删除了,但文件所占用的空间并未释放,十分疑惑,于是在网上找到了解决方案,即使用lsof | grep deleted查看占用的进程并kill相关进程。 具体情况是这样,使用rm - 阅读全文

posted @ 2021-01-25 15:27 ExplorerMan 阅读(755) 评论(0) 推荐(0)

MySQL 5.6.35 索引优化导致的死锁案例解析
摘要:一、背景 随着公司业务的发展,商品库存从商品中心独立出来成为一个独立的系统,承接主站商品库存校验、订单库存扣减、售后库存释放等业务。在上线之前我们对于核心接口进行了压测,压测过程中出现了 MySQL 5.6.35 死锁现象,通过日志发现引发死锁的只是一条简单的sql,死锁是怎么产生的?发扬技术人员刨 阅读全文

posted @ 2021-01-25 11:37 ExplorerMan 阅读(265) 评论(0) 推荐(0)

亲历者说 | 完整记录一年多考拉海购的云原生之路 转
摘要:简介: 考拉海购的整个云化改造是从 2019 年 10 月份开始的,当时的唯一目标就是短时间内快速完成迁移。在不到 4 个月的时间里,考拉团队唯一考虑的是如何以最快的速度完成使命,云原生是我们选择的最合适的一条路。 前言 考拉海购的整个云化改造是从 2019 年 10 月份开始的,当时的唯一目标就是 阅读全文

posted @ 2021-01-25 11:12 ExplorerMan 阅读(225) 评论(0) 推荐(0)

Spark实战(八)spark的几种启动方式
摘要:spark常用的启动方式 一、Local(本地模式) Spark单机运行,一般用于开发测试。可以通过Local[N]来设置,其中N代表可以使用N个线程,每个线程拥有一个core。如果不指定N,则默认是1个线程(该线程有1个core)。spark-submit 和 spark-submit --mas 阅读全文

posted @ 2021-01-23 18:46 ExplorerMan 阅读(1925) 评论(0) 推荐(0)

Spark实战(七)spark streaming +kafka(Python版)
摘要:spark常用的启动方式 一、Local(本地模式) Spark单机运行,一般用于开发测试。可以通过Local[N]来设置,其中N代表可以使用N个线程,每个线程拥有一个core。如果不指定N,则默认是1个线程(该线程有1个core)。spark-submit 和 spark-submit --mas 阅读全文

posted @ 2021-01-23 18:45 ExplorerMan 阅读(445) 评论(0) 推荐(0)

Spark实战(六)spark SQL + hive(Python版)
摘要:一、hive环境准备 1、安装hive 按照hive安装步骤安装好hive CREATE USER 'spark'@'%' IDENTIFIED BY '123456'; GRANT all privileges ON hive.* TO 'spark'@'%'; 1 2 flush privile 阅读全文

posted @ 2021-01-23 18:43 ExplorerMan 阅读(510) 评论(0) 推荐(0)

Spark实战(五)spark streaming + flume(Python版)
摘要:一、flume安装 (一)概述 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中,一般的采集需求,通过对flume的简单配置即可 阅读全文

posted @ 2021-01-23 18:42 ExplorerMan 阅读(794) 评论(0) 推荐(0)

Spark实战(二)Spark常用算子
摘要:一、算子分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。 Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 A 阅读全文

posted @ 2021-01-23 18:28 ExplorerMan 阅读(849) 评论(1) 推荐(1)

Spark面试常见问题(一)--RDD基础
摘要:1 RDD基础知识 1.1 Spark的RDD五大特性 1.1.1 A list of partitions RDD是一个由多个partition(某个节点里的某一片连续的数据)组成的的List;将数据加载为RDD时,一般一个hdfs里的block会加载为一个partition。 对于RDD来说,每 阅读全文

posted @ 2021-01-23 18:24 ExplorerMan 阅读(334) 评论(0) 推荐(0)

Spark实战(三)本地连接远程Spark(Python环境)
摘要:一、Python环境准备 远程服务器上Python版本要与本地想匹配,这里本地使用Anaconda来进行安装,远程服务器之间安装。 wget --no-check-certificate https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz 阅读全文

posted @ 2021-01-23 18:23 ExplorerMan 阅读(1313) 评论(1) 推荐(0)

Spark实战(四)spark+python快速入门实战小例子(PySpark)
摘要:由于目前很多spark程序资料都是用scala语言写的,但是现在需要用python来实现,于是在网上找了scala写的例子改为python实现 1、集群测试实例 代码如下:from pyspark.sql import SparkSession if __name__ == "__main__": 阅读全文

posted @ 2021-01-23 18:21 ExplorerMan 阅读(827) 评论(0) 推荐(0)

Ubuntu16.04安装python3.6.5详细步骤
摘要:环境说明:Ubuntu linux64位操作系统 python@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMPWed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/L 阅读全文

posted @ 2021-01-23 15:58 ExplorerMan 阅读(474) 评论(0) 推荐(0)

Spark读取本地文件时报错:java.io.FileNotFountException:file doesn't exist
摘要:在确认文件存在的情况下,出现这个问题的原因是:在集群中运行的pyspark。例如使用命令bin/pyspark --master yarn启动pyspark 解决方式1:让每个Worker节点的相应位置都有要读取的数据文件。 解决方式2:直接将数据文件上传到hdfs,达到数据共享。 阅读全文

posted @ 2021-01-22 18:14 ExplorerMan 阅读(686) 评论(0) 推荐(0)

go语言web开发系列之二十四:用imagemagick为上传图片生成缩略图
摘要:一,安装所需的外部程序 1,用apt-get安装ImageMagick root@ku:/data/liuhongdi/digv23# apt-get install imagemagick 2,查看安装是否成功: root@ku:/data/liuhongdi/digv23# convert -- 阅读全文

posted @ 2021-01-22 16:14 ExplorerMan 阅读(438) 评论(0) 推荐(0)

go语言web开发系列之二十一:用go-qrcode库生成二维码
摘要:一,安装用到的库 1,go-qrcode库的地址 https://github.com/skip2/go-qrcode 2,安装go-qrcode库 liuhongdi@ku:~$ go get -u github.com/skip2/go-qrcode/... 3,resize库的地址(在二维码中 阅读全文

posted @ 2021-01-22 11:22 ExplorerMan 阅读(1011) 评论(0) 推荐(0)

go语言web开发系列之十八:gin框架用base64Captcha生成图形验证码
摘要:一,安装库 1,库的地址 https://github.com/mojocn/base64Captcha 2,安装: liuhongdi@ku:~$ go get -u github.com/mojocn/base64Captcha 说明:刘宏缔的go森林是一个专注golang的博客, 地址:htt 阅读全文

posted @ 2021-01-22 11:21 ExplorerMan 阅读(760) 评论(0) 推荐(0)

go语言web开发系列之十七:用go-redis+lua实现顺序自增的唯一id发号器
摘要:一,安装go-redis 1,从命令行执行: liuhongdi@ku:~$ go get -u github.com/go-redis/redis/v8 说明:安装命令及版本等信息可以从github站直接得到 说明:刘宏缔的go森林是一个专注golang的博客, 地址:https://blog.c 阅读全文

posted @ 2021-01-22 11:20 ExplorerMan 阅读(573) 评论(0) 推荐(0)

go语言web开发系列之十六:gin框架中通过gorm使用事务
摘要:一,演示项目的相关信息 1,地址: https://github.com/liuhongdi/digv16 2,功能:以下订单为例,演示了在gorm中启用事务 3, 项目结构:如图: 说明:刘宏缔的go森林是一个专注golang的博客, 地址:https://blog.csdn.net/weixin 阅读全文

posted @ 2021-01-22 11:19 ExplorerMan 阅读(1039) 评论(0) 推荐(0)

go语言web开发系列之十四:用gin框架实现基于ip地址的限流
摘要:一,安装用到的库 1,从命令行安装 x/time/rate库 iuhongdi@ku:~$ go get -u golang.org/x/time/rate 说明:刘宏缔的go森林是一个专注golang的博客, 地址:https://blog.csdn.net/weixin_43881017 说明: 阅读全文

posted @ 2021-01-22 11:18 ExplorerMan 阅读(668) 评论(0) 推荐(0)

go语言web开发系列之十三:gin框架实现图片文件上传
摘要:一,演示项目的信息 1,项目地址: https://github.com/liuhongdi/digv13 2,功能说明: 演示了通过gin框架上传图片文件,包括单张上传和多张上传 3, 项目结构:如图: 说明:刘宏缔的go森林是一个专注golang的博客, 地址:https://blog.csdn 阅读全文

posted @ 2021-01-22 11:17 ExplorerMan 阅读(708) 评论(0) 推荐(0)

go语言web开发系列之十一:gin框架通过casbin实现rbac权限设计(csv存储)
摘要:一,安装casbin 1,casbin项目代码的地址 https://github.com/casbin/casbin 2,为go安装casbin liuhongdi@ku:~$ go get -u github.com/casbin/casbin/v2 说明:刘宏缔的go森林是一个专注golang 阅读全文

posted @ 2021-01-22 11:16 ExplorerMan 阅读(1291) 评论(0) 推荐(0)

go语言web开发系列之九:gin框架中用bigcache做进程内缓存
摘要:一,安装用到的库 1,安装go-redis liuhongdi@ku:~$ go get -u github.com/go-redis/redis 2,安装bigcache liuhongdi@ku:~$ go get -u github.com/allegro/bigcache 说明:刘宏缔的go 阅读全文

posted @ 2021-01-22 11:15 ExplorerMan 阅读(888) 评论(0) 推荐(0)

go语言web开发系列之六:gin使用zap记录http服务的访问日志(access log)并按日期分割
摘要:一,安装用到的库: 1,安装zap日志库: liuhongdi@ku:/data/liuhongdi/zaplog$ go get -u go.uber.org/zap 2,安装go-file-rotatelogs库 liuhongdi@ku:/data/liuhongdi/zaplog2$ go 阅读全文

posted @ 2021-01-22 11:08 ExplorerMan 阅读(818) 评论(0) 推荐(0)

go语言web开发系列之四:gin框架用viper读取配置文件数据
摘要:一,安装viper 1,viper的代码地址: https://github.com/spf13/viper 查看viper版本: https://github.com/spf13/viper/releases 2,安装: root@ku:~# go get -u github.com/spf13/ 阅读全文

posted @ 2021-01-22 11:06 ExplorerMan 阅读(757) 评论(0) 推荐(0)

go语言web开发系列之三:gin用go-playground/validator做参数的校验
摘要:一,演示项目的相关信息 1,项目地址: https://github.com/liuhongdi/digv03 2,功能说明:使用校验器(validator)实现对参数的校验 3,项目结构:如图: 说明:刘宏缔的go森林是一个专注golang的博客, 地址:https://blog.csdn.net 阅读全文

posted @ 2021-01-22 11:05 ExplorerMan 阅读(666) 评论(0) 推荐(0)

go语言web开发系列之二:gin框架接口站统一返回restful格式的数据
摘要:一,演示项目的相关信息: 1,项目地址: https://github.com/liuhongdi/digv02 2,功能:演示gin返回restful格式的数据, 包括异常时的404/500等情况 3,项目结构:如图: 二,sql代码说明 CREATE TABLE `article` ( `art 阅读全文

posted @ 2021-01-22 11:02 ExplorerMan 阅读(921) 评论(0) 推荐(0)

go语言web开发系列之一:gin+gorm开发一个简单的热榜接口站
摘要:一,热榜的例子: 以抽屉新热榜为例,只存储资讯的链接和提示, 用户点击时会跳转到外部的网站阅读 我们在这里只实现了显示单条内容和多条内容的功能, 主要是把它做为后续功能集成演示的一个基础 后续的集成包括: 统一报错信息 统一rest输出 validator 日志功能 安全 接口文档 统一读取配置文件 阅读全文

posted @ 2021-01-22 11:00 ExplorerMan 阅读(406) 评论(0) 推荐(0)

go:用zap和go-file-rotatelogs实现日志的记录和日志按时间分割
摘要:一,安装zap和go-file-rotatelogs两个库: 1,安装zap: liuhongdi@ku:/data/liuhongdi/zaplog$ go get -u go.uber.org/zap 2,安装go-file-rotatelogs liuhongdi@ku:/data/liuho 阅读全文

posted @ 2021-01-22 10:58 ExplorerMan 阅读(842) 评论(0) 推荐(0)

gin框架用go-redis+redsync实现分布式锁
摘要:一,安装需要用到的库 1,go-redis的地址: https://github.com/go-redis/redis 2,安装go-redis liuhongdi@ku:~$ go get -u github.com/go-redis/redis/v8 3,redsync的地址 https://g 阅读全文

posted @ 2021-01-22 10:53 ExplorerMan 阅读(1746) 评论(0) 推荐(0)

pyspark启动与简单使用----本地模式(local)----shell
摘要:在Spark中采用本地模式启动pyspark的命令主要包含以下参数:–master:这个参数表示当前的pyspark要连接到哪个master,如果是local[*],就是使用本地模式启动pyspark,其中,中括号内的星号表示需要使用几个CPU核心(core);–jars: 这个参数用于把相关的JA 阅读全文

posted @ 2021-01-21 18:34 ExplorerMan 阅读(1562) 评论(0) 推荐(0)

spark RDD详解
摘要:RDD叫做弹性分布式数据集 RDD概述 1.什么是RDDRDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允 阅读全文

posted @ 2021-01-21 16:42 ExplorerMan 阅读(368) 评论(0) 推荐(0)

本地调试spark程序
摘要:用IDEA编写spark程序,每次运行都要先打成jar包,然后再提交到集群上运行,这样很麻烦,不方便调试。我们可以直接在Idea中调试spark程序。 例如下面的WordCount程序: package cn.edu360.spark import org.apache.spark.rdd.RDD 阅读全文

posted @ 2021-01-21 16:40 ExplorerMan 阅读(1819) 评论(0) 推荐(0)

在IDEA中使用Java编写WordCount程序
摘要:创建项目详细过程请参考博客:在IDEA中用Scala编写WordCount程序并且上传到集群中运行https://blog.csdn.net/weixin_43866709/article/details/88599701 下面是代码: package cn.edu360.spark; import 阅读全文

posted @ 2021-01-21 16:09 ExplorerMan 阅读(259) 评论(0) 推荐(0)

启动spark shell详解
摘要:spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。 启动spark shell: /usr/local/spark-2.1.0-bin-hadoop2.6/bin/spark-shell --master spa 阅读全文

posted @ 2021-01-21 16:08 ExplorerMan 阅读(1334) 评论(0) 推荐(0)

提交一个spark程序及spark执行器
摘要:spark中自带了很多例子,他们存放在examples/jars目录下,今天我们就提交一个蒙特.卡罗拉算法求PI的例子:向spark集群提交程序的命令是spark-submit,后面我们要制定参数 /usr/local/spark-2.1.0-bin-hadoop2.6/bin/spark-subm 阅读全文

posted @ 2021-01-21 16:07 ExplorerMan 阅读(189) 评论(0) 推荐(0)

错误:启动spark后在web页面看不到worker节点的信息
摘要:今天安装了一个高可用的spark集群,但是启动之后,每个节点上用jps命令都可以查看到有Master和Worker进程,但是登录UI界面却没有Worker信息,查看Worker节点上的日志文件,发现竟然出错了,错误如下:错误显示Worker无法连接到Master节点。 找了好长时间,终于发现了问题, 阅读全文

posted @ 2021-01-21 15:53 ExplorerMan 阅读(1143) 评论(0) 推荐(0)

安装高可用spark集群--多个Master,配置zookeeper
摘要:前面我已经安装了spark集群,集群的规划是一个Master,三个Worker,L1上安装Master,L3,L4,L5上安装Worker,安装过程与细节请看我得另外一篇博客:https://blog.csdn.net/weixin_43866709/article/details/88388000 阅读全文

posted @ 2021-01-21 15:37 ExplorerMan 阅读(406) 评论(0) 推荐(0)

zookeeper集群安装
摘要:1.下载zookeeper安装包 下载地址:https://www.apache.org/dist/zookeeper/ 2.上传到虚拟机中,解压。 3.修改配置文件(先在一个节点上配置) 3.1进入到conf目录,将zoo_sample.cfg修改为zoo.cfg mv zoo_sample.cf 阅读全文

posted @ 2021-01-21 15:24 ExplorerMan 阅读(112) 评论(0) 推荐(0)

spark2.2 + jdk1.8 + centos7集群安装教程(单个Master,不依赖hadoop安装)
摘要:1.准备环境 安装centos7,在此我准备了五个虚拟机,分别命名为L1,L2,L3,L4,L5.计划在L1上面运行Master节点,在L3,L4,L5上面运行Worker节点。网络配置以及ssh免密登陆配置不再详细讲解,请参考我的另外一篇博客:虚拟机网络配置以及准备工作:https://blog. 阅读全文

posted @ 2021-01-21 11:57 ExplorerMan 阅读(192) 评论(0) 推荐(0)

MySQL为什么要使用B+树索引
摘要:目录 MySQL的存储结构 表存储结构 B+树索引结构 B+树页节点结构 B+树的检索过程 为什么要用B+树索引 二叉树 多叉树 B树 B+树 搞懂这个问题之前,我们首先来看一下MySQL表的存储结构,再分别对比二叉树、多叉树、B树和B+树的区别就都懂了。 MySQL的存储结构 表存储结构 单位:表 阅读全文

posted @ 2021-01-19 22:41 ExplorerMan 阅读(183) 评论(0) 推荐(0)

查看mongodb索引被使用的次数
摘要:版本要求>3.2 db.tablename.aggregate( [ { $indexStats: { } } ] ) 官网地址:https://docs.mongodb.com/manual/reference/operator/aggregation/indexStats/ 阅读全文

posted @ 2021-01-19 18:19 ExplorerMan 阅读(322) 评论(0) 推荐(0)

Flask 流式响应
摘要:背景 在 web 场景下,经常会碰到下载文件的需求,通常小文件我们会采用 Flask send_file 或者 send_from_directory的方式,下载,但是当下载的文件是一个大压缩文件(>1GiB)时,这种方式就显得不友好了,我们需要采用流式下载的方式返回给客户端。 流式下载 简单实现: 阅读全文

posted @ 2021-01-19 17:07 ExplorerMan 阅读(5193) 评论(0) 推荐(2)

删除Rancher节点的正确姿势
摘要:在Rancher上疏散该节点 删除节点 登录该节点宿主机,删除rancher相关容器 docker rm -f -v $(docker ps -aq) 删除该节点的所有volume docker volume rm $(docker volume ls) 最后删除/var/lib/rancher文件 阅读全文

posted @ 2021-01-18 15:24 ExplorerMan 阅读(1302) 评论(0) 推荐(0)

go深度拷贝json版
摘要:go中的深度拷贝方式 1.使用json的序列化和反序列化 通过将原来的结构序列化成byte数组,然后将byte数组反序列化到 目标结构的方式来进行深度拷贝。相关代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 阅读全文

posted @ 2021-01-18 14:06 ExplorerMan 阅读(249) 评论(0) 推荐(0)

go深度拷贝gob版
摘要:通过gob的序列化和反序列化进行深度拷贝 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 阅读全文

posted @ 2021-01-18 11:57 ExplorerMan 阅读(192) 评论(0) 推荐(0)

go深度拷贝reflect版
摘要:使用 reflecting 和 gob 两种方式,性能比较结果: Deep copy with reflecting is 10x faster than gob and it will save more memory. reflecting 使用库 https://github.com/moha 阅读全文

posted @ 2021-01-18 11:56 ExplorerMan 阅读(208) 评论(0) 推荐(0)

深入理解Go Context
摘要:目录 emptyCtx类型 cancelCtx类型 timerCtx类型 valueCtx类型 在Go语言并发编程中,用一个goroutine来处理一个任务,而它又会创建多个goroutine来负责不同子任务的场景非常常见。如下图 这些场景中,往往会需要在API边界之间以及过程之间传递截止时间、取消 阅读全文

posted @ 2021-01-18 11:24 ExplorerMan 阅读(197) 评论(0) 推荐(0)

Ubuntu安装jdk8的两种方式
摘要:安装方式:1):通过ppa(源) 方式安装.2):通过官网安装包安装.JDK官网下载地址 一:使用ppa(源)方式安装: 1):添加ppa源 sudo add-apt-repository ppa:webupd8team/java sudo apt-get update 1 2 3 2):安装ora 阅读全文

posted @ 2021-01-14 19:02 ExplorerMan 阅读(381) 评论(0) 推荐(0)

面试官:手撕十大排序算法,你会几种?(转)
摘要:原文链接:面试官:手撕十大排序算法,你会几种? 演示地址:点击查看演示 在前面三期,介绍了动态规划的两个主要特性:交叠子问题和最优子结构,并用七种方式求解第n项斐波那契数,感受了算法的强大,你是否也领略到它的精髓呢? 《深入浅出理解动态规划(一) | 交叠子问题》 《深入浅出理解动态规划(二) | 阅读全文

posted @ 2021-01-13 15:33 ExplorerMan 阅读(225) 评论(0) 推荐(0)

golang可变长参数函数
摘要:支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数。 package main import "fmt" // 这个函数可以传入任意数量的整型参数 func sum(nums ...int) { fmt.Print(nums, " ") t 阅读全文

posted @ 2021-01-11 15:59 ExplorerMan 阅读(482) 评论(0) 推荐(0)

ZooKeeper集群“脑裂”
摘要:ZooKeeper 集群节点为什么要部署成奇数ZooKeeper 容错指的是:当宕掉几个ZooKeeper节点服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的节点服务数必须大于n/2,这样ZooKeeper集群才可以继续使用,无论奇偶数都可以选举Leader。例如5台ZooKeeper节点机器 阅读全文

posted @ 2021-01-07 14:28 ExplorerMan 阅读(155) 评论(0) 推荐(0)

导航