自定义博客皮肤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)
  • 收藏
  • 关注

原创 ubuntu服务器MySQL数据库配置外网访问

一、授权外网用户使用命令sudo service mysql start启动数据库sudo service mysql status二、修改mysql数据库配置文件切换到目录下/etc/mysql/mysql.conf.d使用命令 sudo vim mysqld.cnf打开配置文件,必须加sudo,因为这样才有可写权限,否则是只读找到bind-address参数,并且注释掉,...

2019-07-14 15:23:37 1472

原创 Python爬虫(一)——使用mitmproxy拦截数据包

Python爬虫实践(一)——使用mitmproxy拦截数据包一、反爬机制在app的爬虫当中,会遇到如下情况,处理起来十分棘手:1. 我们想直接调用某接口的方式获得数据2. api中存在某个headers中的一个或多个字段被加密,或者请求体中参数被加密3. 加密参数不能通过简单的方式破解,也就不能调用接口获取数据包4. 该接口限制了请求速度(指在某个时间段调用一定次数后,出现账号封禁,...

2019-07-13 15:27:36 9612 2

原创 Mac M1架构pip安装mysqlclient

由于M1采用arm架构,不同于intel架构,所以安装mysqlclient包时应该强制使用arm架构安装。

2023-10-25 10:53:32 560

原创 mac搭建Hadoop环境流程

如果遇到 “Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.” 问题,则是hadoop配置 的环境变量没有设置好 或者设置错误,需要重新设置。/etc/hadoop文件夹下没有mapred-site.xml 文件,需要将 mapred-site.xml.template 拷贝一下再修改。在sbin目录运行命令。

2023-09-20 11:16:50 2026

原创 Kafka接收mysql binlog日志

在生产者终端输入字符串,消费者终端会进行输出。下载压缩包,我下载的是1.19.0 版本。(3)、启动生产者进程和消费者进程。(1)、安装Kafka。(2)、创建事件单元。

2023-07-27 12:01:43 987

原创 Python高级特性(六)——数组(列表、元组、字节数组)

数组是编程语言中的基本数据结构,在很多算法中都有广泛的应用。本文介绍一些Python的数组实现,这些数组只用到了语言的核心特性或Python标准库包含的功能。另外,会介绍这些实现的优缺点,在合适的场景选择合适的实现方式。在了解这些知识前,需要清楚数组是有大小固定的记录组成,根据索引能找到每个元素, 并且这些元素是存储在连续的内存块中的,所以它是连续的数据结构。如果需要存储任意对象,且其中可能含有混合数据类型,那么可以选择使用列表或元组,前者可变后者不可变。

2023-03-27 14:05:53 3066

原创 Python高级特性(四)——实例方法、类方法、静态方法

一、定义在Python中,字典是一种核心数据结构,字典可以存储任意数量的对象,每个对象都由唯一的字典键标识。字典通常也被称为映射,散列表,查找表或关联数组。可以高效的查找、插入和删除任何与给定键关联的对象。二、基本字典-dict首选的字典数据结构是dict,这是Python中最稳健的字典,并且可以使用一些有用的“语法糖”来处理程序中的字典。例如可以使用花括号字典表达式和字典解析式来创建新的...

2023-03-20 11:38:15 188 1

原创 Spark计算框架(Pair RDD行动和变换)

一、概念Pair RDD: 键值对形式的弹性分布式数据集,这是Spark中一种常见的数据类型,常用于聚合操作,也经常会将一些初始的ETL保存为键值对的格式。键值对RDD拥有不同于普通RDD的新操作,比如分组。二、变换算子对单个pair RDD 的变换(例子:{(1,2), (3, 4), (3, 6)})首先初始化该RDD:val rdd = sc.parallelize(Array((1, 2), (3, 4), (3, 6)))函数名目的示例结果reduce

2022-02-26 16:47:40 1236

原创 Spark HashShuffle与SortShuffle

一、Spark Shuffle 历史在Spark1.2之前,默认的Shuffle计算引擎是HashShuffleManager。而HashShuffleManager有一个非常严重的弊端,就是会产生大量的中间磁盘文件,进而大量的磁盘IO操作影响了性能。因此在Spark 1.2 以后的版本中,默认的ShuffleManager改成了SortShuffleManager。SortShuffleManager相较于HashShuffleManager来说,有了一定的改进。主要就在于,每个sask在进行shuf

2022-02-18 18:20:22 883

原创 Spark计算框架(基础RDD行动和变换)

一、概念RDD:弹性分布式数据集,简单来说就是元素的分布式集合,在Spark中,所有的工作都被表达为创建新的RDD,对以存在的RDD做变换,或者对RDD调用行动来计算得到一个结果变换:指对RDD进行一次操作,生成另外一个RDD的过程行动:指对RDD进行一次操作,返回一个计算结果的过程二、变换算子针对一个包含{1, 2, 3, 3}的RDD进行基本的变换函数名目的示例结果map()应用函数到RDD中的每一个元素,并返回一个结果RDDrdd.map(x

2022-02-12 15:28:47 909

原创 一般维度分类

一、退化维度1、概念退化维度的维度表可以被剔除,从而简化维度数据仓库的模式。当一个维度没有数据仓库需要的任何数据的时候就可以退化该维度。需要把退化维度相关数据迁移到事实表中,然后删除退化的维度。典型的退化维度有操作型事务控制号码,例如:订单号码,发票号码,提货单号码等2、针对订单号的退化维度订单事实表中的每个包含明细项的行都包括作为退化维度的订单号。与操作型表头/列表或父/子数据库不同,维度模型中的订单号通常与订单表头没有关联。我们可以将订单表头中的信息分到不同的维度中,例如订单日期和客户,但是

2021-12-16 16:57:57 775

原创 混合缓慢变化维度技术

一、概念混合缓慢变化维度:是将SCD的4种基础类型的其中几种合并使用的技术二、策略类型5:微型维度与类型1支架表该类型的的特点是将当前微型维度主键作为主维度的一个属性。该微型维度主键引用的是类型1属性,重写每个概要的变化,不必像类型2那样跟踪属性。若希望在缺乏事实度量时获得当前概要技术,或者希望基于客户当前概要上卷历史事实的时候,采用类型5是非常有必要的。逻辑上在展现区需要将主维度和微型维度支架表示为单一表,下图为数据模型在数据仓库和展现区的不用形式:注意:类型4微型维度这一术语是指某

2021-12-09 16:37:24 1022

原创 缓慢变化维度处理技术

一、概念缓慢变化维度(SCD):这是一个针对于维度表定义的名词,指的是一些随着时间会发生变化的一些属性。二、变化跟踪策略不同的变化跟踪策略适用于不同的维度分析场景,以下类型没有好,更好,最好的区分。需要数据管理员结合当前业务过程和维度属性特征做选择。在这里,每种策略会分配一个SCD类型号,类型号是针对于维度属性而言,不是针对一张表,所以一张表内不同属性可以使用不同的SCD类型来跟踪变化。类型0:保持原始值该类型表示维度表的属性绝对不会变化,如客户的原始积分,或者日期维度表的大部分属性

2021-11-19 11:11:45 934

原创 MapReduce的Shuffle过程

一、Map端每个输入分片(默认64MB)会让一个map任务来处理,map输出的结果会存放在一个环形缓冲区(默认100MB,由io.sort.mb控制)内,当缓冲区快要溢出(超过缓冲区大小80%,由io.sort.spill.percent属性控制)的时候,会在本地文件系统创建一个溢出文件,将缓冲区的数据写入这个文件在写入磁盘之前,线程会根据reduce的任务数将数据划分为相同数目的分区,也就是一个reduce任务对应一个分区的数据。这样是为了避免有的reduce分配到大量数据,而有的reduce任务

2021-06-22 19:53:31 290 2

原创 HDFS读写数据流程

HDFS读写数据流程一、写数据客户端通过Distributed FileSystem 模块向NameNode请求上传文件,NameNode检查目标文件是否存在,父目录是否存在NameNode返回是否可以上传客户端请求NameNode, 获取第一个Block上传至哪几个DataNode服务器上面NameNode返回3个DataNode节点,分别为dn1,dn2,dn3客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求后调用dn2,dn2调用dn3,建立通信管道

2021-06-21 20:01:19 196

原创 docker部署mysql服务

一、准备docker镜像1. 配置docker国内镜像源这一步主要是为了提升docker拉取镜像的速度,如果已经配置,则跳过切换至配置目录cd /etc/docker进入文件daemon.json(没有则创建)vi daemon.json添加以下json键值对{ “registry-mirrors”: [“https://registry.docker-cn.com“] } 2. 拉取mysql镜像拉取最近版本的mysql镜像docker pull mysql:latest

2020-08-09 19:57:46 132

原创 ubuntu服务器docker的安装配置

docker安装和配置0. 先安装dockersudo apt-get install docker.io1. 更新apt安装包sudo apt-get update2. 安装包允许apt通过https使用仓库sudo dpkg --configure -asudo apt-get install apt-transport-https ca-certificates curl software-properties-common3. 添加docker官方GPG Keycurl -fsSL

2020-08-09 16:07:51 214

原创 Python高级特性(五)——字典、散列和散列表

一、示例下面是包含着这三种方法的示例代码,先对它们的使用有一个直观的了解:class TestClass: # 实例方法 def method(self): return "instance method called", self # 类方法 @classmethod def class_method(cls): re...

2019-09-07 16:07:30 332

原创 Python高级特性(三)——实例变量与类变量

一、区别类变量和实例变量类变量在类定义的内部声明(位于实例方法之外),不受任何特定类实例的束缚。类变量将其内容存储在类本身中,从特定类创建的所有对象都可以访问同一组类变量。修改类变量会同时影响所有对象实例。实例变量绑定到特定的对象实例上,它的内容不存储在类上,而是存储在每个由类创建的单个对象上。因此实例变量的内容与每个对象实例相关,修改实例变量只会影响对应的对象实例。二、代码解释class...

2019-08-29 17:23:48 275

原创 Python高级特性(二)——记录、结构体和纯数据对象

一、什么是namedtuple?顾名思义,将namedtuple翻译过来就是命名的元组,它是基本容器类型tuple的扩展。但在日常的代码编写中,我们很少见到这种类型,但它的优点却是让人惊叹的。我们先将它与tuple进行一个对比,就能感受到namedtuple的用处了。tuple类型的弊端:数据访问的局限性。访问内部数据只能通过整数索引访问,无法赋予其中数据名称,代码可读性不高很难保证两个...

2019-08-28 12:21:11 479 1

原创 Python高级特性(一)——抽象基类

一、定义抽象基类(abstract base class, ABC)用来确保派生类中实现了基类中的特定方法,类似于Java中的抽象类。这里主要讨论如何使用Python中内置的模块adc来定义抽象基类抽象基类的设计一般遵循以下原则,这样使得代码更好维护:基类无法实例化如果在子类中忘记实现接口方法,需要尽早报错二、设计现在,我们自己来设计一个抽象类class Base: de...

2019-08-26 12:22:12 305

原创 Redis命令行操作

一、字符串(String)设置指定key的值127.0.0.1:6379> set string 'this is a string'OK获取指定的key值127.0.0.1:6379> get string"this is a string"返回字符串中的子字符串127.0.0.1:6379> getrange string 3 10"s is...

2019-08-10 14:59:52 209

原创 Redis集群配置及使用

一、Redis的安装在之前的一片博客中,介绍了Redis安装的详细过程和如何在公网中进行访问,点击这里进行Redis的安装和配置。相对来说配置不是特别复杂,然而,在比较大的工程当中,由于数据量和并发量都比较大,一个Redis节点往往不能满足项目的需求,所以就分享一下我搭建Redis集群的步骤和遇到的问题。二、准备工作Ruby的安装Ruby是进行集群搭建运行脚本的必要工具执行命令安装r...

2019-07-26 11:35:56 545

转载 ubuntu服务器redis配置远程访问

一、安装Redis安装redis-serversudo apt-get install redis-server安装完成后,Redis服务器会自动启动,可以检查一下服务器的进程检查Redis服务器进程使用ps命令筛选出与redis相关的进程ps -aux|grep redisredis 27561 0.0 0.1 40884 3140 ? Ssl 1...

2019-07-20 18:35:44 449

转载 adb实用的非shell命令

一、非shell命令在安卓应用开发,app调试或者进行逆向分析的过程中经常会和adb这个命令打交道。为了加以区分,简单的分为两类 (非shell命令和shell命令),这样分类有些不准确,只是为了对接下来的命令有个简单的了解,就叫它们为非shell命令。这里的非shell命令指的是直接用adb shell就可以运行的,shell命令是指需要提前运行adb shell之后才运行的命令。他们最大的不...

2019-07-19 12:00:42 258

空空如也

空空如也

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

TA关注的人

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