pengpengsays

互联网技术分享
私信 关注
桥路丶
码龄5年
  • 370,540
    被访问量
  • 109
    原创文章
  • 30,966
    作者排名
  • 53
    粉丝数量
  • 于 2016-01-28 加入CSDN
获得成就
  • 博客专家认证
  • 获得63次点赞
  • 内容获得43次评论
  • 获得159次收藏
荣誉勋章
兴趣领域
  • #人工智能
    #深度学习#NLP#TensorFlow#Flink#语音识别#图像处理#视觉/OpenCV#神经网络#Python#机器学习#算法#PyTorch#自然语言处理#数据分析
TA的专栏
  • 数据仓库原理与实战精讲
    付费
    32篇
  • 编程基础
    1篇
  • 机器学习
    1篇
  • 项目
    21篇
  • 网络
    2篇
  • linux
    16篇
  • Spring Boot
    2篇
  • Gradle
    5篇
  • python3
    4篇
  • mysql
    3篇
  • centos7
    15篇
  • C++
    1篇
  • 问题解决
    25篇
  • Golang
    1篇
  • React Native
    8篇
  • android
    4篇
  • nodejs
    1篇
  • elasticsearch
    1篇
  • 爬虫
    1篇
  • nginx
    1篇
  • 大数据
    27篇
  • javascript
    1篇
  • php
    3篇
  • CSS
    1篇
  • 体验
    2篇
  • wordpress
    1篇
  • electron
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

【微课】MySQL快速解除死锁

【微课】MySQL快速解除死锁【数舟微课,每天几分钟,一起Get干货技能。】在MySQL中,因为SQL操作导致的行级锁有:DML锁、DDL锁。其中DML锁是因为SQL执行异常,导致更新事务无法提交,如更新语句中的查询语句无索引,造成全表扫描而阻塞。而DDL锁则是因为表结构变更时,遇到慢查询,造成等待。不管是哪种锁,一般在排查时会涉及到3张表。1、information_schema.innodb_trx:记录innodb引擎的事务信息。2、information_schema.innodb_
原创
26阅读
0评论
0点赞
发布博客于 1 月前

Hive On LLAP搭建&常见问题

Hive On LLAP搭建&常见问题基本概述Hive在2.0之后,推出一个新特性LLAP(Live Long And Process),可以显著提高查询效率。LLAP是一个常驻于Yarn的进程,并不是一个执行引擎,它将DataNode数据预先缓存到内存中,然后交由DAG引擎进行查询、处理任务使用。部分查询、权限控制将由LLAP执行,短查询任务的结果会很快的返回。相对于Hive 1.x,提升大约25倍的性能。安装准备Apache Slider安装LLAP需要常驻于Yarn之上,所以需
原创
50阅读
0评论
0点赞
发布博客于 2 月前

【大数据】那些简化操作的辅助脚本

【大数据】那些简化操作的辅助脚本大数据常用环境中,除了hadoop、spark本身自带脚本,能够完成快速启停,其它组件的启动命令稍微复杂,而且步骤较多。首先是hive,在多用户环境中启动时,需要启动metastore、hiveserver2服务。其次,使用beeline进行连接测试时,也略显冗长。关闭服务时,也需要先使用jps命令找到RunJar,然后手动kill掉。在学习时,就会增加很多不便。这些可以简单封装为脚本,便于自己操作。hive启动脚本:start_hive.sh#!/bin/ba
原创
31阅读
0评论
0点赞
发布博客于 2 月前

大数据环境安装脚本升级

大数据环境安装脚本升级功能新增&调整最近对大数据环境安装脚本进行了升级。相比上一个版本,增加了以下功能:增加HBase集群安装。增加Spark一键安装。增加HUE一键编译安装。增加Maven一键安装,并配置国内阿里镜像源。增加NodeJS一键安装,并配置国内阿里镜像源。HBase、Spark安装配置文件frames.txt格式有所调整。# 安装包名 是否安装(true/false) 安装节点 主节点hbase-2.0.0-bin.tar.gz true n
原创
40阅读
0评论
0点赞
发布博客于 2 月前

各类镜像源,专治各种下载缓慢

各类镜像源,专治各种下载缓慢因为很多网站的基础服务构建在国外,身处计算机行业的各位,一定避免不了网速慢而导致的各种切肤之痛。Java开发的同学,maven编译慢啊,有没有?Python开发的同学,pip安装慢啊,有没有?前端开发的同学,npm安装慢啊,有没有?都没有?那用Linux的各位,因为网速,从GitHub上拉取源码的,超慢的,有没有?因为网速,导致编译超慢的,有没有?也没有?那从官网下载各种环境,速度几KB的有没有?总之,这些问题,今天就给大家来解决一下。包管理工具首先对于mave
原创
53阅读
0评论
0点赞
发布博客于 2 月前

退役的Apache Slider

退役的Apache SliderApache Slider是一个工具和技术集,用于在Apache Hadoop YARN集群上打包、部署和管理长时间运行的应用程序。它是Apache的一个孵化项目,在2014-04-29开始孵化,在2018-05-24退役。中间断断续续有过十几次更新。为什么要开发Slider?因为Yarn,一般用于一次性的作业提交,如MapReduce、Spark,为作业分配Container资源,当作业完成后就会进行资源的释放。而Slider的想法,是可以将长时间运行的守护进程直
原创
22阅读
0评论
0点赞
发布博客于 2 月前

HDFS权限管控

HDFS权限管控HDFS在权限管控时,提供类似POSIX系统的文件和目录权限模型,这里称为普通权限管控。它和在linux系统上的操作类似,每个文件或目录都有owner、group、other三种角色,它们拥有不同的权限。权限分为r、w、x三种。rwx权限,也可以使用数字4、2、1表示。HDFS可以通过开启配置支持POSIX ACLs,提供更加灵活的授权。ACLs的开启,需要在hdfs-site.xml中进行设置:<property> <name>dfs.namenode.
原创
30阅读
0评论
0点赞
发布博客于 2 月前

【小技巧】Shell批量处理报错信息,检测本地jar包是否存在

【小技巧】Shell批量处理报错信息,检测本地jar包是否存在最近在搭建LLAP时,遇到一些问题,直接抛出一堆错误,提示Jar不存在。Caused by: java.io.FileNotFoundException: File /opt/app/hadoop-2.7.7/share/hadoop/common/hadoop-lzo-0.4.20.jar:/opt/app/apache-tez-0.9.1-bin/hadoop-shim-0.9.1.jar:/opt/app/apache-tez-0.9.
原创
18阅读
0评论
0点赞
发布博客于 2 月前

企业常用Hive SQL配置

企业常用Hive SQL配置在企业中使用Hive SQL需要一定的规范。一般在SQL编写之前,需要进行规范的注释添加,并设定特定的配置。在SQL文件开始,常见的注释有:--@Name:所属数据库.结果表--@Description:描述--@Type:表类型,如每日汇总表--@Target:结果表--@source:数据源表1 别名1--@source:数据源表2 别名2--@Author:工号 作者--@CreateDate:创建日期--@ModifyBy:修改人--@Modify
原创
13阅读
0评论
0点赞
发布博客于 2 月前

编写脚本完成Maven的一键安装&配置

编写脚本完成Maven的一键安装&配置每次在Linux上安装环境,都要花费较多的时间,而这些安装命令其实都相同。秉承着事情只做一次的原则,将命令写成脚本,之后复用是最好的选择。于是,这次带来了Maven的自动化脚本安装,并完成了国内镜像源的配置。安装脚本企业生产环境大多是离线环境,所以提前下载安装包。而且每次安装的Maven可能不同,需要一个配置文件来指定将要安装的Maven安装包。首先,将maven安装包放置到/opt/frames下。然后在/home/hadoop/automatic
原创
23阅读
0评论
0点赞
发布博客于 2 月前

Hive Schema Tool元数据运维

Hive Schema Tool元数据运维Hive Schema存在的问题较早的Hive版本,不会在MetaStore中写入版本号。所以升级到新版本之后,会报错:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveM
原创
25阅读
0评论
0点赞
发布博客于 2 月前

提了这么多年的面向对象,你真的懂它的含义吗?

面向对象乔布斯采访1994 年 Rolling Stone 对乔布斯的采访,乔布斯解释了什么是面向对象编程。Jeff Goodell:请你用尽量简练的语言解释一下,究竟什么是面向对象的软件?**乔布斯:**对象就像人一样,也是活生生的生命。他们有知识,知道怎么完成任务;他们有记忆,可以把发生的事情记下来。而你和他们的互动并不是低层次的,你是与他们在一个高度抽象的层面上互动,就像我们现在的对话一样。我举个例子来说明。如果我是一个“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧
原创
27阅读
0评论
0点赞
发布博客于 2 月前

Hive Join方式与优化

Left Semi-JoinHive支持的Join方式有Inner Join和Outer Join,这和标准SQL一致。除此之外,还支持一种特殊的Join:Left Semi-Join。Left Semi-Join即左半开连接,Hive使用左半开连接实现 in / exists 语法,在0.13版本推出IN/NOT IN/EXISTS/NOT EXISTS 语法后,已经不经常使用。SELECT a.key, a.valFROM a LEFT SEMI JOIN b ON (a.key = b.key
原创
17阅读
0评论
0点赞
发布博客于 2 月前

数据脱敏?Hive一个函数搞定

数据屏蔽函数(Data Masking Functions)Hive在2.1.0版本后,支持数据屏蔽函数(Data Masking Functions),可以用于数据的快速掩码处理(脱敏)。比如mask函数,默认会将查询回的数据,大写字母转换为X,小写字母转换为x,数字转换为n。当然也可以添加参数自定义转换的字母mask(string str[, string upper[, string lower[, string number]]]),upper定义大写字母转换,lower定义小写字母转换,nu
原创
71阅读
0评论
0点赞
发布博客于 2 月前

Hive全局排序解决之道

全局排序Order ByHive中的全局排序,使用Order By来进行,具体语法为:SELECT <select_expression>, <select_expression>, ... FROM <table_name> ORDER BY <col_name> [ASC|DESC] [,col_name [ASC|DESC], ...]但在Hive中使用全局排序时,需要注意,Hive会将所有数据交给一个Reduce任务计算,实现
原创
41阅读
0评论
0点赞
发布博客于 2 月前

实时数仓:流式数据建模

流式数据模型架构设计数据模型设计是贯穿数据处理过程的,在实时流式数据处理中也一样。实时建模与离线建模类似,数据模型整体上分为5层(ODS、DWD、DWS、ADS、DIM)。其中ODS数据属于操作数据层,是直接从业务系统采集来的原始数据。在这一层上,数据与离线系统是一致的。ODS层实时进入的数据,会进行去重、清洗等任务,适度做一些维度退化工作,清洗后的数据会存放到DWD层中,DWD数据明细层的数据会回流到消息队列中,从而实时同步到下游实时任务中,同时会持久化到数据库中供离线系统使用。一般而言,OD
原创
55阅读
0评论
0点赞
发布博客于 2 月前

实时数仓:Kappa架构

上一期讲了Lambda架构,对于实时数仓而言,Lmabda架构有很明显的不足,首先同时维护两套系统,资源占用率高,其次这两套系统的数据处理逻辑相同,代码重复开发。能否有一种架构,只需要维护一套系统,就可以同时完成流处理、批处理任务呢?当然,那就是Kappa架构。Kappa架构Kappa架构是真正意义上的流批一体的处理方式。它是随着流处理引擎的逐步完善后,由LinkedIn公司提出的一种实时数仓架构。这种架构,相当于在Lambda架构上去掉了批处理层(Batch Layer),只留下单独的流处理层(
原创
154阅读
0评论
0点赞
发布博客于 2 月前

实时数仓:Lambda架构

实时数仓:Lambda架构在某些场景中,数据的价值随着时间的推移而逐渐减少。所以在传统大数据离线数仓的基础上,逐渐对数据的实时性提出了更高的要求。于是随之诞生了大数据实时数仓,并且衍生出了两种技术架构Lambda和Kappa。Lambda架构其中Lambda架构是较早的解决方案,使用流处理和批处理两种架构进行数据处理。其中流处理部分负责实时数据的处理,但流处理因为数据可靠性并不高,所以需要批处理部分定期进行运算稽查。流处理相当于作为临时视图存在,满足数据实时性要求。而准确数据以批处理计算为主。
原创
66阅读
0评论
0点赞
发布博客于 2 月前

ORC与Parquet表的压缩

Hive表压缩功能除了直接配置MapReduce压缩功能外,Hive的ORC表和Parquet表直接支持表的压缩属性。但支持的压缩格式有限,ORC表支持None、Zlib、Snappy压缩,默认为ZLIB压缩。但这3种压缩格式不支持切分,所以适合单个文件不是特别大的场景。使用Zlib压缩率高,但效率差一些;使用Snappy效率高,但压缩率低。Parquet表支持Uncompress、Snappy、Gzip、Lzo压缩,默认不压缩Uncompressed。其中Lzo压缩是支持切分的,所以在表的单个文件
原创
65阅读
0评论
0点赞
发布博客于 2 月前

Hive常见的压缩格式

压缩格式Hive支持的压缩格式有bzip2、gzip、deflate、snappy、lzo等。Hive依赖Hadoop的压缩方法,所以Hadoop版本越高支持的压缩方法越多,可以在$HADOOP_HOME/conf/core-site.xml中进行配置:<property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.
原创
29阅读
0评论
0点赞
发布博客于 2 月前

Hive分桶一文读懂

什么是分桶?和分区一样,分桶也是一种通过改变表的存储模式,从而完成对表优化的一种调优方式。但和分区不同的是,分区是将表拆分到不同的子目录中进行存储,而分桶是将表拆分到不同文件中进行存储。那什么是分桶呢?它按分桶键哈希取模的方式,将表中数据随机、均匀地分发到若干桶文件中。比如,对表的ID字段进行分桶,那ID字段被称为分桶键。ID字段存储的数据假设是1-10,执行分桶操作时,需要确定要分几个桶,这里定为3个;那么便会对分桶键中的值,按照桶的数量进行哈希取模,这里即对桶数3进行取余。那么,ID为3、6
原创
15阅读
0评论
0点赞
发布博客于 2 月前

Hive表类型(存储格式)一览

Hive表类型Hive支持的表类型,或者称为存储格式有:TextFile、SequenceFile、RCFile、ORC、Parquet、AVRO。TextFile其中TextFile是文本格式的表,它是Hive默认的表结构;在存储时使用行式存储,并且默认不进行压缩,所以TextFile默认是以明文的文本方式进行保存的,可以手动开启Hive的压缩功能进行数据压缩。但在TextFile表压缩后再进行解压,即反序列化时,耗费的时间很大,是SequenceFile的十几倍。TextFile表因为采用
原创
182阅读
0评论
1点赞
发布博客于 2 月前

一文学会MapReduce编程

MapReduce编程模型,相对于初学者来说,会有一些门槛,没关系,这一篇让你学会使用MapReduce进行分布式处理。基础知识MapReduce 框架只对 <key, value> 形式的键值对进行处理。MapReduce会将任务的输入当成一组 <key, value> 键值对,最后也会生成一组 <key, value> 键值对作为结果。常见的输入为文件,此时读取的行偏移量会作为Key,文件内容作为Value。key 和 value 的类必须由框架来完成序列化,所
原创
10阅读
0评论
0点赞
发布博客于 2 月前

Yarn资源调度策略

资源调度策略Yarn既然是一个分布式资源调度框架,管理着节点上的计算资源,那它分配这些资源的时候,便会存在调度策略。而Yarn的调度策略有三种:FIFO调度、容量调度、公平调度。接下来,会依次对这几种调度器进行讲解。FIFO调度器FIFO Scheduler(先进先出调度器),这种调度器其实已经耳熟能详了,它将所有任务放入一个队列,先进队列的先获得资源,排在后面的任务只有等待,总的原则就是先到先得。虽然这种调度策略,实现起来非常简单;但它因为只有单个队列,无法交叉运行任务、灵活性差,紧急任务无法
原创
37阅读
0评论
0点赞
发布博客于 2 月前

大数据编年史

不了解大数据的历史,就没有真正掌握大数据。接下来,一起看一下开源大数据的发展历程,看它是如何顺应时代而诞生的。大数据初期首先在2002年的时候,Doug Cutting、Mike Cafarella创建了开源网页爬虫项目Nutch,而爬虫的特征就是源源不断的爬取数据,那这样就急需一种解决方案来存储这些海量的数据,并且可以随着数据量的增长而扩展。恰好在第二年(2003年),Google发表了Google File System论文,论述的就是一种新型的分布式文件系统,可以满足海量数据的存储。于是20
原创
40阅读
0评论
0点赞
发布博客于 2 月前

HDFS安全模式

HDFS集群进入了安全模式?原因是什么?如何解决?来一起解读安全模式这种特殊的HDFS状态什么是安全模式安全模式是HDFS的一种特殊状态,在这种状态下,HDFS只接收读数据请求,而不接收写入、删除、修改等变更请求。它是HDFS确保集群安全的一种保护机制, NameNode如果检测到任何异常,便会进入到安全模式,直到问题解决。触发安全模式的原因Block上报率缺失DataNode主动向NameNode汇报可用Block列表等信息,当Block上报率 <= 阈值时(默认阈值为0.999), 会处
原创
24阅读
0评论
0点赞
发布博客于 2 月前

大数据环境一键搭建?是的,文中附赠脚本

大数据集群一键搭建脚本?是的,这可以使你在10分钟之内,快速搭建起一套大数据学习环境,解放双手。如何操作?请看文中教程。环境说明操作系统及组件版本各组件版本如下,学习环境尽量保持一致,避免版本不一致带来的操作问题。集群规划使用3台虚拟机来进行搭建集群,分别为Node01、Node02、Node03。集群的规划如下:其中Hadoop一共3个节点,主节点搭建在Node01上,从节点在Node01-Node03上分别有一个。虚拟机准备安装说明&文件下载下载并安装Virtual Box
原创
25阅读
0评论
0点赞
发布博客于 2 月前

大数据技术体系梳理

大数据技术体系来一起认识下大数据的技术框架有哪些,它们分别用于解决哪些问题?它们的内在逻辑和适用场景有哪些?OK,一起去探索下。生态架构首先,看一下大数据技术体系的整体架构图。根据数据流转的方向,从下而上进行介绍。在前面,我们了解到,大数据的数据存储是分布式的,而且能够接受任务调度,与传统的数据存储存在差异。所以离线方式处理的数据,需要通过ETL模块,导入到大数据的数据存储系统进行存储;其中Sqoop是常见的抽取结构化数据工具;而Flume和Logstach是用于抽取非结构化、半结构化数据工具。
原创
71阅读
0评论
0点赞
发布博客于 2 月前

【极简案例】数据分析遇上机器学习

前言本教程内容,主要目的是帮助数据分析和机器学习的新手玩家快速了解开发流程,并运用于实战。整体讲解数据分析的整体流程,并结合一个极简案例——信用卡审批,快速上手数据分析,使用机器学习算子,完成结果的预测。开发语言使用Python3,数据处理使用Numpy、Pandas,机器学习使用Sklearn,可视化绘制使用Matplotlib。环境准备环境搭建对于初学者而言,花费时间较长,甚至可能是入门到劝退的节奏。所以最好减少环境上花费的时间,使用开箱即用的环境。这里机器学习的开发环境直接使用阿里云的天池实
原创
31阅读
0评论
0点赞
发布博客于 2 月前

爆肝一周后,HUE也可以一键编译安装了?

在大数据开源产品中,HUE是一个非常好用的客户端工具。它可以连接HDFS、Yarn、Hive、HBase、Ooize、Presto等组件,并直接在HUE的WEB界面中,直接对各种组件提交命令。但HUE的编译过程又比较繁琐,很容易失败。我爆肝了一周,解决了很多编译上的问题。成功编译HUE之后,并把整体流程编写成了脚本,可以一键进行安装和配置。这里,将介绍一下编译过程中的常见问题,并将脚本分享给大家。HUE编译问题首先来看一下HUE编译中的一些问题。首先是编译需要的npm、maven环境,因为网速
原创
114阅读
0评论
0点赞
发布博客于 2 月前

【开篇】专栏介绍&学习指南

写在前面的话你好,我是李鹏程,高级数据工程师、大数据讲师。这次给大家带来的是《数据仓库原理&实战》专栏。数据仓库基本在各个企业都均有落地,主要是因为历史数据积存、数据分析的需要。而且随着互联网的快速发展、数据量与日俱增的情况下,更多的企业开始从传统数据仓库向大数据数据仓库转型。传统数据仓库技术较成熟,易用性更为优秀;大数据数据仓库整体技术较新,而且落地过程是有一定过渡的,在选型和建模...
原创
74阅读
0评论
0点赞
发布博客于 5 月前

【简介】数据仓库诞生背景

数据仓库的诞生主要有两个原因:历史数据的积存需要企业数据分析的需要历史数据积存对于企业来说,线上的业务系统,随着业务的进行,会源源不断的产生数据。这些数据都会存储在业务数据库中,如 MySQL、Oracle 当中,支持业务系统的运行。但当线上的业务系统运行超过一定时间,其积压的历史数据就会越来越多,对业务数据库就会产生一定的负载,导致业务系统运行速度降低。而这些历史数据中,有相当一...
原创
218阅读
0评论
0点赞
发布博客于 5 月前

【简介】数据仓库概述

什么是数据仓库?数据仓库是由数据仓库之父比尔·恩门(Bill Inmon)提出,数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合。主要用于组织积累的历史数据,并使用分析方法(OLAP、数据分析)进行分析整理,进而辅助决策,为管理者、企业系统提供数据支持,构建商业智能。数据仓库的特点面向主题数据仓库是为数据分析服务的,而数据分析任务是有明确的主题任务的。比如,要分析用户行...
原创
60阅读
0评论
0点赞
发布博客于 5 月前

【简介】数据仓库技术实现

数据仓库建设方案有两种,一种是传统架构的数据仓库,一种是大数据架构的数据仓库。传统数据仓库传统数据仓库是由单机数据库发展而来的。业务数据库一般是关系型数据库(RDBMS),那数据仓库在建设初期,也会选用关系型数据库,因为数据迁移起来方便,而且业务系统的改造成本也较小。但历史数据较为庞大,单个 RDBMS 节点即使增加了大容量硬盘,也无法满足存储需求怎么办?那就多个 RDBMS 节点组成 MP...
原创
87阅读
0评论
0点赞
发布博客于 5 月前

【简介】MPP&分布式架构

MPP 架构什么是 MPP?MPP 架构是传统数据仓库中常见的技术架构,将单机数据库节点组成集群,从而提升处理性能。集群中,这些节点间使用非共享架构,每个节点拥有独立的磁盘存储和内存系统,在计算过程中独立运行,而不必去关心整个集群的状态,也不关心其他节点存储的数据信息。每台数据节点通过专用网络或者商业通用网络互相连接,在计算过程中,如果需要用到其他节点的数据,使用网络进行数据传输、协同计...
原创
388阅读
0评论
1点赞
发布博客于 5 月前

【简介】常见数据仓库产品

传统数据仓库在企业中,传统数据仓库的技术选型,较多的还是 Oracle RAC、DB2、Teradata。选择 Greenplum 的企业也有很多。Oracle RACOracle RAC(Real Application Clusters)是 Oracle 集群版本;商业数据库;它不属于 MPP 架构。MPP 架构是非共享架构,而 Oracle 各节点之间共享磁盘资源。Oracle 在...
原创
286阅读
0评论
0点赞
发布博客于 5 月前

【架构】数据仓库架构设计

数仓主流架构数据仓库在不同企业,它的架构也会有所差异。但分层和基本功能上大同小异,可能命名上有所不同,或者根据企业的业务特点做了一定的定制。现在国内主流的架构还是以阿里为参考,整体架构如图所示:从图中色块的不同,也能大体看到架构整体上分为四部分:ETL、ODS、CDM、ADS。按照数据流动的方向,从下而上依次进行讲解。ETLETL 是数据同步模块,表示将数据从来源端经过抽取(extr...
原创
68阅读
0评论
0点赞
发布博客于 5 月前

【架构】ETL 流程

ETL 基本概念ETL 是将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL 过程是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。ETL 规则的设计和实施约占整个数据仓库搭建工作量的 60%~80%。数据抽取(Extraction)对不同数据源的...
原创
30阅读
0评论
0点赞
发布博客于 5 月前

【架构】数据积存功能之 ODS 层

操作数据层 ODS在数据仓库的整体架构中讲到,ODS 层的数据需与原业务数据保持一致,且不允许修改,从而完成历史数据积存的功能。数据管理但在实际企业开发中,ODS 层的数据是原始数据的一个扩充集,在保留所有原始数据的情况下,会增加一些字段用来进行数据管理。如下图所示,为表增加 update_time 字段标识数据进入数据仓库的时间,from 字段标识数据的源系统,update_type 字...
原创
71阅读
0评论
0点赞
发布博客于 5 月前

【架构】数据分析功能之 DWD、DWS、ADS 层

数据明细层(DWD)数据明细层对 ODS 层的数据除了进行清洗、标准化之外,还会进行维度退化。维度是指对表中数据的一种组织方式,如时间、分类、地域;这些维度属性,在业务数据库中,会被拆分成多张表进行存储,这些表被称为维度表。如下图所示,商品表和它的分类维度表(一、二、三级分类),按照范式标准一共拆分成了 4 张表。但在数据仓库产品中,一旦涉及到 join 关联操作,会消耗大量的资源,且降...
原创
868阅读
0评论
2点赞
发布博客于 5 月前

【建模】不同系统的建模方法

OLTP 系统建模方法OLTP 系统,即在线事务处理系统;企业的业务数据库就是属于 OLTP 范畴,它主要的操作是随机读写。为了保证数据的一致性、减少冗余,经常使用关系模型。在关系模型中,使用三范式来减少冗余。OLAP 系统建模方法OLAP 系统概述OLAP 系统,即在线联机分析系统,数据仓库就属于这一类。它主要操作是分析查询;关注数据整合,以及分析、处理性能。但是三范式的设计,在分...
原创
26阅读
0评论
0点赞
发布博客于 5 月前

【建模】ROLAP 维度模型

在数据仓库的 ROLAP 模型中,维度模型是被使用最多、最经典的一种模型。能够提高数据仓库的分析计算性能。在维度模型中,表被分为维度表、事实表,维度表围绕事实表进行解释。其中事实表是一张表的基本数据,而维度表则是对数据的一种组织方式,常用于不同维度对数据进行组织。如图所示,商品表为事实表,而分类表则是维度表。在实际生活中,按照维度去对数据进行筛查是非常常见的一种手段。如在购物网站购买手机时...
原创
34阅读
0评论
0点赞
发布博客于 5 月前

【建模】MOLAP 建模方法

建模原理MOLAP 是一种用空间换时间的方式。既然 OLAP 的特点是满足快速的复杂分析查询,而它对性能的影响主要体现在多种维度的组合、聚合上。所以,与其查询的时候进行计算,不如直接将结果预先计算出来,然后进行存储,这样便可以对之后的查询性能带来极大的提升。但这样也损失了灵活性,并需要大量的空间用于存储。那这种预计算结果以什么形式存储呢?Cube 模型。Cube 模型Cube 模型是以多维...
原创
16阅读
0评论
0点赞
发布博客于 5 月前

【建模】多维分析

OLAP 多维分析OLAP 主要操作是复杂查询,可以多表关联,使用 COUNT、SUM、AVG 等聚合函数。对于这些复杂查询操作,OLAP 做了直观的定义和分类,将其称为多维分析;其中包括钻取、切片、切块、旋转。钻取钻取是对维度不同层次的分析,通过改变维度的层次来变换分析的粒度,包括上卷(Roll-up)、下钻(Drill-down)。上卷(Roll-up),也称为向上钻取,指从低层次到...
原创
25阅读
0评论
0点赞
发布博客于 5 月前

【最佳实践】数仓中的表类型

维度建模中表的类型在维度建模中,表类型分为事实表、维度表,而事实表又可以细分为事务事实表、周期快照事实表、累积快照事实表。事实表事实表存储的数据一般是指一个现实存在的业务对象,比如用户,商品,商家,销售员等等,属于查询结果中的核心数据。维度表维度表一般是指对应一些业务状态,代码的解释表。也可以称之为码表。在查询过程中,对数据起到筛选、组织作用。通常使用维度对事实表中的数据进行统计、聚合...
原创
68阅读
0评论
0点赞
发布博客于 5 月前

【最佳实践】ETL 同步策略

全量同步数据初始化装载的时候,一定使用的是全量同步的方式。全量同步数据时,如果数据量过大,会导致 ETL 流程非常慢,甚至周期会长达几个月。对于结构化数据,常用工具采用的是 JDBC 的方式直接连接到数据库进行抽取,所以会对数据库端带来极大的负载和压力,降低数据库端的稳定性。当然 JDBC 方案如果可行,那它是最简单的方式。如果存在风险,或者周期过长,可以采用抽取数据库日志的方式,这种架构需要...
原创
55阅读
0评论
0点赞
发布博客于 5 月前

【最佳实践】任务调度

为什么需要任务调度?任务调度在一个大型计算集群中是非常必要的。首先它可以完成任务的定时执行,而且在集群中需要指定特定的节点来完成。以数据仓库为例,数据抽取任务需要在业务数据库节点进行,并且为了不影响业务的正常运行,通常在凌晨定时执行;而数据分析计算,需要在数据仓库节点运行。其次它可以解决任务单元间的依赖关系,如数据仓库中的数据处理流程首先是 ETL,然后依次在数据仓库中进行 ODS、DWD、...
原创
23阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】项目&数据概述

项目背景某电商企业,因数据积存、分析需要,筹划搭建数据仓库;并能能够提供数据分析的访问接口,以供分析人员进行数据分析任务。本次需要实现的是项目一期,需要完成数仓搭建,并完成用户复购率的分析计算,支持业务查询需求。复购率计算复购率是指在一段时间间隔内,多次重复购买产品的用户,占全部人数的比率。企业需要统计各个一级品类下,品牌月单次复购率,和多次复购率。需要的数据示例如下图所示:数据描述...
原创
27阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】架构设计&环境规划

数据仓库架构图根据企业的需求,业务数据存储在 MySQL 中,选择 Sqoop 作为 ETL 工具,HDFS 临时保存 Sqoop 抽取的数据。数据仓库部分选择主流的 Hive,并使用 Tez 进行优化;其中 ADS 层的数据会导出到 MySQL 中,便于前端业务进行快速调用。使用 Presto 作为快速查询的工具,Azkaban 作为调度工具。数据的生成会使用脚本来进行;整个 ETL 流程...
原创
17阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】环境搭建

虚拟机准备安装说明 & 文件下载下载并安装 Virtual Box,准备并安装 3 台 CentOS 7.2 的虚拟机,主机名命名为 Node01、Node02、Node03。虚拟机的安装可以使用纯系统镜像,安装后配置主机名。但过程会比较繁琐,学习环境讲求开箱即用,尽量少地在环境上花费时间,否则会打击学习的热情。所以,也可以直接导入已经配置好的虚拟机镜像文件,方便使用。使用纯镜像安装,下附...
原创
33阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】项目流程&数据生成

项目开发流程整体项目的开发流程是:业务数据生成,在 MySQL 数据库中生成当天的数据ETL 数据导入,通过 Sqoop 对 MySQL 当天日期的数据进行抽取,并存放到 HDFS 中在 Hive 中创建 ODS 层,编写脚本,完成 HDFS 数据接入在 Hive 中创建 DWD 层,编写脚本,完成 ODS 层数据导入在 Hive 中创建 DWS 层,编写脚本,导入 DWD 层数据...
原创
32阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】ETL 数据导入

操作说明数据已经在 MySQL 中生成,接下来就开始进行数据仓库的搭建环节。首先最重要的,也是首要的流程便是 ETL。这个阶段,因为是对结构化数据进行抽取,所以直接使用 Sqoop 工具即可。Sqoop 工具被安装到了 Node03 中,所以在 Node03 中编写脚本调用 Sqoop 进行数据抽取;而脚本化的编写也有助于之后的自动化执行。操作流程1. 进入 Sqoop 安装节点,即 Nod...
原创
149阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】ODS 层创建&数据接入

操作说明此时已经将数据从 MySQL 中导入到 HDFS 中了,接下来就需要将数据导入到数据仓库的 ODS 层中,完成原始数据的存储。这个部分分为两个阶段,首先在 Hive 中创建 ODS 层的所有表结构,表结构与源系统(MySQL)一致。之后,使用脚本将 HDFS 中存储的数据导入到 Hive 数据仓库的 ODS 层中。ODS 层创建1. 进入 Hive 安装节点(Node03),启动 ...
原创
153阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】DWD 层创建&数据接入

DWD 层分析DWD 层的作用是对 ODS 层的数据进行清洗,但因为业务数据库的数据质量很高,所以只需要去除空数据即可。除了数据清洗外,DWD 层还需要对 ODS 层的数据进行维度退化。而所有的表中,分类表可以被退化,维度合并到商品表中。即为商品表增加 6 列,分别存放一二三级品类的名称和 ID,并删除三张分类表。DWD 层创建在 DWD 层,基本保留所有表,然后减少分类表,并入到商品表...
原创
145阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】DWS 层创建&数据接入

DWS 层分析DWS 层的功能是将具有相同分析主题的 DWD 层数据,聚合成宽表模型,便于数据分析与计算。当然主题的归纳一般具有通用性,后续也可能会随着分析业务的增加而扩展。现在从业务数据的 5 张表中,归纳出了用户行为宽表、用户购买商品明细表,其它的主题大家也可以自行发挥。从订单表、用户表、支付流水表中抽取字段,形成用户行为宽表。从订单详情表、商品表、用户表,抽取字段形成用户购买商品明...
原创
48阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】ADS 层复购率统计

ADS 层分析ADS 层需要在 DWS 层的数据上计算复购率,并存储结果表。复购率可以从 DWS 层的用户购买商品明细表中进行计算。其中品牌 id、一级品类 id、一级品类名可以从用户购买商品明细表中直接获取,统计月份、统计日期也可以从当前时间获取。剩下的购买人数、购买 2 次及以上人数、单次复购率、购买 3 次及以上人数、多次复购率,需要从用户购买商品明细表中的当日下单数进行计算。购买...
原创
53阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】ADS 层数据导出

为了业务系统进行更快速的查询,需要将 ADS 层的结果数据导出到 MySQL 中,这个过程因为涉及到数据流转,所以需要通过 ETL 工具 Sqoop 来进行。MySQL ADS 层创建1. 在 Node02,MySQL 节点的 /home/warehouse/sql 目录下编写 mysql_sale_ddl.sql,创建与 ADS 层结果表一致的数据表:mkdir -p /home/ware...
原创
87阅读
0评论
0点赞
发布博客于 5 月前

【项目实战】Azkaban 自动化调度

现在整个数据仓库的流程已经打通,并且所有脚本也已经封装完成。但从业务数据库抽取数据,一般选择在夜间进行,而且数据仓库的整个处理流程是有先后关系的,所以需要使用自动化调度工具来进行定时、控制依赖关系。现使用 Azkaban 作为数据仓库的调度工具。接下模拟新一天的数据生成,并使用 Azkaban 完成整个数据处理过程的自动调度。测试数据生成在 Node02,即 MySQL 安装节点中执行 SQ...
原创
57阅读
0评论
0点赞
发布博客于 5 月前

【课后作业】GMV 成交总额计算

在项目实战后,大家应该对数据仓库的整体流程有了一个较为清晰的认识。除了复购率的计算,接下来在原有数仓已经搭建成功的基础上,尝试着来完成 GMV 的计算任务,巩固知识的同时也体会下真实的工作内容。下面讲解和分析具体的作业内容。作业内容计算 GMV(成交总额),需要计算的字段如图所示,包含付款和未付款部分;最终将结果导出到 MySQL。要求:独立编写为 Shell 脚本,使用 Azkaban ...
原创
57阅读
0评论
0点赞
发布博客于 5 月前

【课后作业】ADS 层创建&数据接入

因为数据仓库已经创建完成,所以直接基于已有的 DWS 层进行计算。计算 GMV 的 ADS 层具体操作下面会具体进行讲解。ADS 层创建1. 在 Node03 节点,/home/warehouse/sql 目录下编写 ads_gmv_ddl.sql,创建 DWS 层数据表:vim /home/warehouse/sql/ads_gmv_ddl.sqlSQL 内容如下:-- 使用数据库 ...
原创
33阅读
0评论
0点赞
发布博客于 5 月前

【课后作业】ADS 层数据导出

ADS 层数据计算完成后,接下来使用 Sqoop 将数据导出到 MySQL 中。MySQL ADS 创建在 MySQL 节点(Node02)的 /home/warehouse/sql 目录下编写 mysql_gmv_ddl.sql,创建数据表:vim /home/warehouse/sql/mysql_gmv_ddl.sqlSQL 脚本如下:-- 进入数据库use mall;--...
原创
46阅读
0评论
0点赞
发布博客于 5 月前

【课后作业】Azkaban 自动化调度

最后,将完成的 Shell 脚本交由 Azkaban 进行自动化调度。具体步骤讲解如下。MySQL 数据生成在 Node02 节点的 MySQL 中执行 SQL,生成数据:mysql -uroot -pDBa2020*use mall;CALL init_data('2020-06-13',300,200,300,FALSE);Azkaban 任务编写编写 Azkaban 运行 j...
原创
34阅读
0评论
0点赞
发布博客于 5 月前

npm安装Electron解决方案

npm安装Electron解决方案Electron使用npm安装时,因为是国外的镜像源,所以速度会非常慢。而使用cnpm如下命令进行安装时,又会出现安装失败的问题:npm install electron -gexecute post install 1 scripts...[1/1] scripts.postinstall electron@6.0.3 run "node instal...
原创
16707阅读
1评论
1点赞
发布博客于 2 年前

spark集群模式下textFile读取file本地文件报错解决

前言如果在spark-shell中使用textFile(“file://path”)演示,在local模式下是没有问题的,因为毕竟就是在本机运行,读取本地的文件。但是如果spark-shell --master指定spark集群的话,这样运行就会有问题,会报找不到文件的错误。解决方案那么解决的方案其实也比较简单,就是在所有的集群节点上相同的path下上传该文件。然后在textFile(“fi...
原创
5985阅读
2评论
0点赞
发布博客于 3 年前

typecho嵌入html或markdown代码

前言最近一直在使用markdown进行写作,而且博客又迁移到了typecho上,所以markdown格式的代码怎么迁移过来就成了一些问题。博主的方法是将Markdown转换成html格式,然后粘贴到typecho中。但是typecho不像wordpress支持直接html格式的粘贴,需要做一些调整。下面就给大家介绍一下markdown的转换和html的粘贴。markdown转html一般的...
原创
4931阅读
0评论
0点赞
发布博客于 3 年前

centos7防火墙开放端口,附开放samba特定端口实例

前言搭建samba的时候,如果是在内网\测试环境中,可以直接关闭防火墙,但是如果是在外网情况下,需要对防火墙开放某些端口。开放的具体步骤,下面我们来看。 操作步骤1.添加端口firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)2.重新载入fire...
原创
10147阅读
0评论
2点赞
发布博客于 3 年前

centos7文件共享服务器nfs搭建

前言相对于samba来说,如果仅仅只是希望搭建一个linux之间进行文件共享的服务器,而不是所有异构的系统之间共享的话,nfs是一个不错的选择。但是客户端如果想要共享nfs服务器上的文件,则必须安装nfs-utils客户端才能共享成功。各有优劣,下面来讲nfs的搭建。 搭建步骤1.安装yum -y install nfs-utils rpcbind 2.启动服务,先启...
原创
2237阅读
0评论
0点赞
发布博客于 3 年前

wordpress安装PHP Warning: Use of undefined constant DB_USER - assumed 'DB_USER' 问题解决

问题原因出现这个问题,主要是因为在定义常量的时候,PHP版本不一致导致的些许语法的不同,所以需要根据自己安装的wordpress来更换不同的php版本。 问题解决将php7.2更换为php5.6,刷新界面。问题解决。...
原创
4993阅读
0评论
1点赞
发布博客于 3 年前

centos7使用samba搭建文件共享服务器

前言因为最近需要一台服务器作为文件共享服务器,避免各种大文件在传输的时候需要从资料节点进行scp分发操作。目前有两种方法,一种是使用nfs进行搭建,另外一种是使用samba搭建。两种方法都有优劣,nfs功能相对简单,只支持linux之间进行文件共享,samba支持各种异构服务器之间进行文件共享,功能比较多。但是要共享nfs服务器上的文件,必须要在各个节点上安装客户端,而samba不需要安装客户...
原创
4455阅读
1评论
8点赞
发布博客于 3 年前

服务器物理机使用ESXI虚拟化并划分虚拟机

前言最近因为增加了一台物理机,所以需要对物理机进行虚拟化后划分虚拟机。下面主要来介绍物理机划分虚拟机的操作步骤。 物理机虚拟化1. 下载VMware-VMvisor-Installer-6.0.0.update01-3029758.x86_64.iso注意下载对应的版本,官方的版本有特定版登录官网:https://www.vmware.com/cn.html找到对应...
原创
20281阅读
2评论
8点赞
发布博客于 3 年前

几款常见开源php博客体验

前言博主因为准备写一个博客系统,所以参考一下开源的博客有没有合适的。对下面几款php博客进行了安装和使用。对每个博客的首页、后台、写作页面进行了截图。大家可以对照参观,选择自己心仪的博客。EMLog首页相对简洁,后台就不敢恭维了,比较杂乱,写作的时候也比较不舒服。Typecho这几款里相对整洁的一款,首页、后端都比较简洁,文章编写上也比较像博客的书写方式。...
原创
15952阅读
2评论
1点赞
发布博客于 3 年前

从linux服务器进行下载,除了ftp还有哪些方法

前言因为需要从centos服务器上下载系统镜像源,但是因为本机是windows,所以无法通过scp进行直接获取,但ftp又比较麻烦。于是就找到了两种解决方案,文件小于4G,如果客户端是xshell的话,使用lrzsz;如果文件大于4G的话,直接放到httpd目录下,开启www服务,然后浏览器访问ip进行下载。下面是两种方法的具体操作。lrzsz1.安装yum install l...
原创
1763阅读
0评论
0点赞
发布博客于 3 年前

Linux面板体验与推荐

前言因为博主最近看到linux面板这样的产品,就顺手安装了比较热门的几个国内面板,体验了一下各个面板的情况。大体功能上基本大同小异,主要是软件源的安装、界面的安排和使用上有一些差别。下面带大家看一下这几个热门的面板,AMH、AppNode、WDAP、宝塔。希望大家看后可以做出自己的选择。 AMH收费情况:收费,最低一个月6月使用情况:软件下载功能比较齐全,支持89个组件下载...
原创
10179阅读
3评论
0点赞
发布博客于 3 年前

使用CSS去除Bootstrap阴影、边框,并让背景透明

前言在使用Bootstrap的时候,要实现下拉列表的背景透明,并去除阴影、边框。没有找到bootstrap官方的解决方案,只能手动通过css来去除。实现步骤背景透明:background-color:rgba(0,0,0,0);去除阴影:box-shadow: none;去除边框:border:none;在响应的元素上添加对应的CSS即可。...
原创
10594阅读
0评论
0点赞
发布博客于 3 年前

SSH免密码登录配置

前言博主在搭建hdfs集群时,需要进行免密码登录,查找了很多方法,最后发现还是这种最直接和方便。代码下附。步骤1. 生成公钥ssh-keygen -t rsa注:一路回车即可,即使用SSH默认配置。 2. 公钥分发ssh-copy-id '服务器IP或hostname' 注:想要免密登录哪台服务器,把公钥复制到哪台服务器上。...
原创
119阅读
0评论
0点赞
发布博客于 3 年前

PhpStorm+Wamp配置debug web调试

前言在学习php的时候,如果直接报错没有debug,排错过程是很痛苦的。所以配置了一下phpstrom的debug。步骤下面会为大家详细带来。步骤1. 打开wamp的php.ini文件,将3个enable配置项打开:[xdebug]zend_extension ="D:/wamp/bin/php/php5.6.35/zend_ext/php_xdebug-2.5.5-5.6-vc11.dll"...
原创
1899阅读
0评论
0点赞
发布博客于 3 年前

JS (intermediate value).Format is not a function问题解决

前言最近项目遇到一个问题,就是在javascript中使用new Date().Format("YYYY-mm-dd")的时候,会出现报错现象,直接导致界面无法正常显示。下面为大家解答一下。 问题详情new Date().format("YYYY-mm-dd")javascript调用上述代码报错,(intermediate value).Format is not a fu...
原创
30013阅读
6评论
3点赞
发布博客于 3 年前

使用react-navigation动态改变当前状态栏title

前言正在使用react native构建自己的第二款APP,遇到了之前没有遇到的一些问题,就是点击下面的tabbar的时候,上面的状态栏问题无法动态改变。查阅了一些资料也没有头绪,最后去官网看了一下文档,解决后为有同样问题的大家分享一下步骤。步骤1. 重构navigationOptions使得可以接收参数static navigationOptions = ({ navigation }) =&g...
原创
4873阅读
0评论
0点赞
发布博客于 3 年前

多云服务器kafka环境搭建并接收flume日志数据

前言如果看过博主之前的文章,也可以了解到我正在搭建一个大数据的集群,所以花了血本弄了几台服务器。终于在flume将日志收集到日志主控flume节点上后,下一步要进行消息队列的搭建了。中间遇到过很多坎坷和坑,下面就为大家讲解一下搭建过程和注意事项,最终的成果是kafka搭建成功并接受flume主控传来的数据。环境服务器:CentOS7.2JDK: jdk1.8.0_161flume: apache-...
原创
316阅读
0评论
0点赞
发布博客于 3 年前

使用flume搭建日志收集系统

前言自动生成日志的打点服务器完成了,日志便可以顺利生成了。接下来就要使用flume对日志进行收集,即将日志产生的节点收集到一个日志主控节点上去,这样的目的是便于在主控节点上为不同的日志打上不同的标签,从而推送到kafka上,供不同的消费者来使用。下面为大家介绍一下如何使用flume搭建自己的日志收集系统。环境操作系统: CentOS7 * 2Flume版本:flume-ng-1.6.0-cdh5....
原创
1025阅读
0评论
0点赞
发布博客于 3 年前

nginx的安装和打点服务器配置

前言大数据的基石就是海量的数据,所以,一个真实的数据源头是大数据的起始。因为最近在做一个大数据的平台,准备做一个打点服务器来产生数据。下面为大家介绍一下打点服务器的制作。步骤1. 安装nginx官网下载nginx并上传到服务器,解压之后进入主目录下执行:./configure --prefix=目标路径注:此处可能需要安装依赖,否则会报错,使用yum安装zlib-devel、pcre-devel然...
原创
660阅读
0评论
0点赞
发布博客于 3 年前

使用Git+Shell自动化部署发布springboot WEB应用

前言    之前因为自己部署上线自己的博客系统,使用了SpringBoot自带的tomcat在服务器端直接运行gradle bootRun,而且用的是手动发布,就是自己打包好程序后上传到服务器端,然后再运行。这样带来一个问题就是,不好统一管理,自己修改代码后,还需要进行一系列繁杂的手动操作,效率是很低下的。网上有很多框架的时候,因为是个人使用,所以嫌重,于是自己搞了一套使用git + shell自...
原创
1444阅读
0评论
0点赞
发布博客于 3 年前

使用git将本地项目推送到码云私有仓库

前言之前博主一直是使用手动发布项目的,所以效率上是很费时的。最近因为搞了几台服务器,发布自己项目的时候感觉很痛苦。于是准备暂时打造一个自动化的发布脚本,第一步当然是将代码传到github上,因为码云上有免费的仓库,就直接用码云上手了。下面是将本地的代码使用git推到码云的步骤。环境操作系统:WIN10软件环境:git, Git Bash步骤1. 打开Git Bash, 生成公钥ssh-keygen...
原创
12707阅读
1评论
3点赞
发布博客于 3 年前

Python3使用Scrapy快速构建第一款爬虫

前言最近因为想要构建自己的应用程序,所以需要用到爬虫,然后就开始了爬虫的鼓捣和学习。为了让大家更快的入门一款爬虫,为大家讲解一下scrapy的基本原理,和快速上手使用,爬取的页面是伯乐在线,大家可以去提前熟悉一下。环境搭建操作系统:WIN10IDE: 使用的是全家桶Pycharm1. 全局安装scrapypip install scrapy -g2. 创建一个存放项目的文件夹mkdir Spide...
原创
360阅读
0评论
0点赞
发布博客于 3 年前

ElasticSearch配置外网访问,开放9200端口

前言最近在搭建自己的博客系统,其中搜索功能用到了elasticsearch,在进行本地与服务器联调的时候发现elasticsearch默认不开放外网访问。所以折腾了一下。下面给大家讲一下配置流程,亲测可用。配置流程1. 进入elasticsearch主目录下vim config/elasticsearch.yml 2. 添加下面内容 network.host: 0.0.0.0 http.port...
原创
11204阅读
0评论
1点赞
发布博客于 3 年前

react native使用WebView加载本地html部署方案

前言最近自己编写的react native安卓程序准备部署一下,发现调用的webview是本地的html文件,即url的格式是: http://localhost:8081/..这样的, 所以打包之后会出现加载不到页面的问题。所以下面就讲一下怎么样去修改,以便部署到线上不出问题。步骤1. 将html文件和相关的js/css等文件复制到asserts目录下    --即存放bundle包的目录,建议...
原创
2726阅读
0评论
0点赞
发布博客于 3 年前

CentOS7服务器NodeJS安装

前言    因为最近完工了一个react native的app,准备上线,所以试用了一个云服务器搭建运行环境试试手。下面是自己安装nodejs服务的一些步骤。安装步骤1. 安装gityum install git -y注:安装git是用来自动执行下载到本地的shell脚本,即下面要下载的nvm安装脚本。2. 安装nvm服务,这个是用来管理node版本的工具,可以在服务器上切换不同的node环境打开...
原创
894阅读
0评论
0点赞
发布博客于 3 年前

CentOS7, mysql主从同步数据库配置

前言    最近免费试用了一下云服务器,然后在两台服务器上安装了Mysql并搭建了主从同步数据库。mysql数据库的安装,大家可以去查看我的另一篇博客文章,下面为大家介绍搭建步骤及原理。原理    mysql主节点即master节点在每次对数据库执行操作后会将操作写入到本地的二进制日志(binary log)中,从节点slave会使用I/O Thread线程去监听和读取主节点的binary log...
原创
649阅读
1评论
0点赞
发布博客于 3 年前

Centos7服务器用户和权限管理配置

前言    要限制服务器用户的权限,是一个服务器运行良好的重要内容。之前因为需要搭建elasticsearch服务,所以必须要创建一个elasticsearch用户(当然,只要不是root用户就成)。因为这个用户存在的意义只是来启动和维护elasticsearch服务,所以根据最小化原则,需要对它的权限进行控制。下面给大家讲一下怎么去创建和配置一个用户的权限。以下所有的操作均在root用户下执行,...
原创
2803阅读
0评论
0点赞
发布博客于 3 年前

react native打包apk时配置gradle阿里云maven仓库加速依赖下载

前言使用react native进行打包apk时,因为maven仓库的原因会导致某些依赖和包没有添加成功,会导致一些问题。所以做法就是将gradle中的仓库地址进行配置。而且配置过程中有一些注意事项要注意。问题详解进入android目录下,找到buid.gradle文件,对下面两部分进行修改:buildscript { repositories { maven{ url '...
原创
1432阅读
0评论
0点赞
发布博客于 3 年前

React Native打包apk错误: 找不到符号import com.facebook.react.ReactNativeHost;

前言打包apk的时候,遇到一个很神奇的问题,就是报错说找不到符号MainApplication.java:6: 错误: 找不到符号import com.facebook.react.ReactNativeHost;而且连续报了8个错误,后来查阅了很多文档,发现只有英文的帖子里有解决方法,最后拜读了一下,下面为大家解答一下问题详解很明显,这种错误是没有导入相应的包所导致的。所以很大的可能会是包管理工...
原创
5252阅读
0评论
3点赞
发布博客于 3 年前

Gradle打包问题Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0

前言使用gradle打包react native的时候,出现了如下报错,下面和大家说一下解决的具体办法Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0问题详解从字面意思来看,是因为当前项目使用了gradle版本过渡时候的语法和特性,而本地环境的gradle版本太高,不...
原创
55213阅读
15评论
1点赞
发布博客于 3 年前

React Natived打包报错java.io.IOException: Could not delete path '...\android\support\v7'解决

问题详情React Native打包apk时在第二次编译时候报错:java.io.IOException: Could not delete path 'D:\mycode\reactnative\SecondTest\android\app\build\generated\source\r\release\android\support\v7问题解决直观上看是没有删除某个文件,产生的IOExc...
原创
4085阅读
0评论
1点赞
发布博客于 3 年前

react native打包apk

前言最近自己的react native app已经完成了,博主想将其打包成android apk运行在安卓端的手机上。然后遇到了一系列的问题。经过一段时间的踩坑,已经成功打包成apk文件并在手机端正常运行和显示。下面介绍一下react native打包成android apk的原理和步骤。基本原理react native程序在调试的时候,在虚拟机端是通过连接本地node服务来获取js文件,所以可以...
原创
377阅读
0评论
0点赞
发布博客于 3 年前

React Navigation参数传递动态修改navigationOptions->title

前言博主最近在写react native,发现Navigator只剩下NavigatorIOS可以使用,要想在安卓上使用Navigator,可以使用官方推荐的React-Nativation。因为对ES的语法不熟,加上需要看文档慢慢鼓捣,所以总有些坑得慢慢躺。下面讲的这个问题是动态修改Navigator的title。问题描述navigation跳转的时候,传递参数后,需要跳转后的页面接收,并且修改...
原创
4734阅读
0评论
0点赞
发布博客于 3 年前

IDEA启动的静态web服务不能使用ip访问解决办法

前言在开发react native程序时候,使用夜神模拟器中的app调用本地IDEA中启动的html文件,出现一些问题。本地可以使用localhost:63342/项目/路径/xx.html进行访问,但是将localhost换成ip地址时则无法进行访问。折腾了好久,最后发现一些问题。下面进行防躺坑指点。问题描述模拟器中程序无法使用ip访问本地IDEA中启动的html静态文件,并且在IDEA中设置了...
原创
9041阅读
6评论
2点赞
发布博客于 3 年前

使用夜神模拟器运行React Native躺坑详解

前言近期需要使用React Native进行开发,所以需要安装环境。但是因为显卡是AMD的,并且硬件原因,导致出现很多问题。直接导致的最大问题就是不能运行模拟器。所以,最后使用夜神模拟器来代替。接下来为大家详细描述博主在环境安装过程中趟过的坑。问题描述和解决办法博主是使用IDEA直接进行开发,AS的安装大家可以看我的另外一篇博文。夜神模拟器下载好之后,启动模拟器,cmd进入自己的React Nat...
原创
4076阅读
1评论
0点赞
发布博客于 3 年前

Android Studio安装躺坑

前言近期需要做一款APP,所以要安装AS,结果各种实力躺坑。为了防止大家也陷入安装问题,下面给大家分享一些技巧和解决方案。问题描述AS下载问题,安装问题,SDK问题解决方案AS被墙掉之后不可以直接访问谷歌,但是可以从https://developer.android.google.cn/studio/index.html下载这个网址是谷歌的中国域名并且下载之后会自动跳转到安装步骤上,跟着安装就好另...
原创
100阅读
0评论
0点赞
发布博客于 3 年前

windows自动化批处理删除文件

前言最近发现某软件删除某几个文件夹之后,就可以再次免费试用,但试用期结束之后需要再次重复删除。于是想到了批处理命令,大家可以创建txt文件,然后编辑命令后将文件后缀改成bat,然后双击运行即可完成批量删除操作。下面给大家讲解一下我查到和实验的结果。问题描述使用bat文件批处理删除某几个文件、文件夹问题解决删除文件del /s /q /s 路径删除目录rd /s /q 路径注:/s ---&gt;...
原创
3538阅读
0评论
1点赞
发布博客于 3 年前

Python3将API返回的bytes解码为str

前言在调用API的时候,有些API会返回bytes类型的串,格式如下:b'{"status":"0","msg":"ok","result":{"type":"google","from":"zh-cn","to":"en","text":"\xe4\xb8\x
原创
923阅读
0评论
0点赞
发布博客于 3 年前