- 博客(63)
- 资源 (1)
- 收藏
- 关注

原创 Git Merge与Git Rebase 的区别及使用场景,附带案例解释
ii:git merge合并某分支到当前分支: git merge --no-ff 分支名 (正常合并)回到解决冲突之前的状态: git merge --abort使用时机和用法:可以将master分支pull下来,此时就会得知俩个分支的不同点,修改完成之后就后进行merge请求,请求同意后自己分支的代码就合并到master分支上去了。ui工具的操作底层指令以及含义:底层指令:git merge --no-ff 分支名 含义:在箭头所指的右侧图中本地分支weijiang/XQ与远程
2020-07-23 11:08:31
1243

原创 Kafka的使用介绍,大体功能简介
Kafka的大体功能使用介绍测试案例(zk:2181)(b-s:9092)结果whitelist zookeeper正确whitelist bootstrap-server正确blacklist zookeeper正确blacklist bootstrap-server需指定white,white在后指定blacklist zook...
2019-11-30 19:11:58
899

原创 Spark性能调优-----常规性能调优(一)最优资源配置
1.1.1常规性能调优一:最优资源配置 Spark性能调优的第一步,就是为任务分配更多的资源,在一定范围内, 增加资源的分配与性能的提升是成正比的, 实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。 资源的分配在使用脚本提交Spark任务时进行指定,标准的Spark任务提交脚本如代码清单2-1所示:代码清单2-1 标准Spark提交脚本/usr/op...
2019-11-29 21:42:12
303

原创 python实现天气查询
0.准备python版本2.7.5城市码和查询天气的api1.城市码 city.py#coding=utf-8 city = { '北京': '101010100', '海淀': '101010200', '朝阳': '101010300', '顺义': '101010400', '怀柔': '101010500', '通州': '101...
2019-11-13 19:29:19
875

原创 hive的练习题
hive的练习题1:编写sql实现每个用户截止到每月为止的最大单月访问次数和累 计到该月的总访问次数数据: userid,month,visitsA,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,8 B,2015-01,25 A,2015-01,5 A,2015-02,4 A,2015-02,6 B,2015-02,10 B,20...
2019-09-24 23:28:40
4906

原创 扩展hive函数 案列以及解释
扩展hive函数 案列以及解释1.rand();rand(int sedd)取随机数 返回值为double类型说明:返回一个0到1范围内的随机数。如果指定种子seed,则会等到一个稳定的随机数序列2.round(double n,a) :对输入的n数,保留a位小数,四舍五入,round(double a) 四舍五入3.ceil:向上取整select ceil(45.6); --4...
2019-09-24 23:27:52
852

原创 datax详解以及案例
一、dataX概览1.1 DataXDataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。1.2 FeaturesDataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以...
2019-09-24 23:25:45
4941

原创 Flume简介以及案例测试
参考借鉴:用户文档: http://flume.apache.org/FlumeUserGuide.html开发文档: http://flume.apache.org/FlumeDeveloperGuide.htmlFlume原理解析: https://www.cnblogs.com/zhangyinhua/p/7803486.html参考原文地址:https://blog.csdn.ne...
2019-09-21 11:54:53
611

原创 mysql索引及其优缺点
索引:提高查询速度(以空间换时间(B-Tree))索引(在MYSQL中也叫做键),是存储引擎用于快速找到记录的一种数据结构。索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取104个页面,...
2019-08-20 17:32:50
453
原创 hadoop之yarn
一:调度器总结目前,Hadoop作业调度器主要有三种:FIFO、Capacity Scheduler和Fair Scheduler。Hadoop2.7.2默认的资源调度器是Capacity Scheduler。具体设置详见:yarn-default.xml文件<property> <description>The class to use as the re...
2019-12-27 21:56:45
234
原创 hadoop之mapreduce
一:MapReduce1.谈谈Hadoop序列化和反序列化及自定义bean对象实现序列化?1)序列化和反序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带...
2019-12-27 21:21:33
279
原创 hadoop之hdfs
一:HDFS的读写流程写流程①:客户端向NameNode请求上传文件,namenode检查目标文件是否存在,父目录是否存在。②:namenode返回信息是否可以上传③:客户端请求第一个block上传到哪几个datanode服务器上④:namenode返回n个datanode节点,分别为dn1,dn2,dn3…⑤:客户端请求向dn1上传数据,dn1收到请求会继续调用dn2,然后依次调用,...
2019-12-27 20:46:02
218
原创 git 提交代码到集体工程(个人使用,参考学习)
首先,进入一个盘 cd d:新建一个目录 mkdir ./dmp进入目录 cd ./dmp进行初始化 git init然后把代码拉到本地 git pull https://github.com/Aidon-lyd/bap.git然后新建一个目录,把自己写的代码放进去然后将内容加进git git add .然后提交 git commit -m “Wei j...
2019-12-16 09:08:04
136
原创 flink的基本使用(概念),这俩篇就足够了(一)
flink的重要特点1.1 事件驱动型(Event-driven)事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。比较典型的就是以kafka为代表的消息队列几乎都是事件驱动型应用。与之不同的就是SparkStreaming微批次,如图: 事件驱动型:1.2:流与批的世界观流与批的世界观批处理的特点是有界、持久、大量,非常...
2019-12-14 09:52:49
975
原创 Spark 共享变量底层实现
Spark一个非常重要的特性就是共享变量。默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中,此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。Spark为此提供了两种共享变量,一种是Broadcast Variable(广播变量),另一种是Accumulator(累加变量)。Broadcast...
2019-12-05 14:30:13
172
原创 Spark 核心组件解析之BlockManager数据存储与管理机制
BlockManager是整个Spark底层负责数据存储与管理的一个组件,Driver和Executor的所有数据都由对应的BlockManager进行管理。Driver上有BlockManagerMaster,负责对各个节点上的BlockManager内部管理的数据的元数据进行维护,比如block的增删改等操作,都会在这里维护好元数据的变更。每个节点都有一个BlockManager,每个Bl...
2019-12-05 14:20:24
350
原创 Kafka痛点与Puslar介绍
Apache Kafka 作为一款成熟的消费队列得到了很广泛地运用. 但以 2019 年的角度来看, 存在一些痛点. 存储计算没有分离, 难以扩容和缩容没有 IO 隔离, 写高了读不动, 读高了写不动没有多租户IO 模型过于简单, 面对大量 topic 时性能下降严重消费模型有限, 无法利用部分业务可以接受消息无序的特点Puslar是一个非常优秀的开源系统,它的整体框架偏向于H...
2019-12-04 16:35:21
359
原创 Spark数据倾斜---数据倾斜之解决方案
2.1 解决方案一:聚合原数据1.避免shuffle过程·绝大多数情况下,Spark作业的数据来源都是Hive表,这些Hive表基本都是经过ETL之后的昨天的数据。为了避免数据倾斜,我们可以考虑避免shuffle过程,如果避免了shuffle过程,那么从根本上就消除了发生数据倾斜问题的可能。如果Spark作业的数据来源于Hive表,那么可以先在Hive表中对数据进行聚合,例如按照key进行...
2019-11-30 19:58:29
239
原创 Spark数据倾斜---(一)为何会数据倾斜
Spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题。例如,reduce点一共要处理100万条数据,第一个和第二个task分别被分配到了1万条数据,计算5分钟内完成,第三个task分配到了98万数据,此时第三个task可能需要10个小时完成,这使得整个Spark作业需要10个小时才能运行完成,这就是数...
2019-11-30 19:53:04
196
原创 Spark性能调优-----JVM调优
JVM调优对于JVM调优,首先应该明确,(major)full gc/minor gc,都会导致JVM的工作线程停止工作,即stop the world。1.4.1 JVM调优一:降低cache操作的内存占比静态内存管理机制根据Spark静态内存管理机制,堆内存被划分为了两块,Storage和Execution。Storage主要用于缓存RDD数据和broadcast数据,Executi...
2019-11-30 13:47:07
182
原创 Spark性能调优-----Shuffle调优
1.3.1Shuffle调优一:调节map端缓冲区大小在Spark任务运行过程中,如果shuffle的map端处理的数据量比较大,但是map端缓冲的大小是固定的,可能会出现map端缓冲数据频繁spill溢写到磁盘文件中的情况,使得性能非常低下,通过调节map端缓冲的大小,可以避免频繁的磁盘IO操作,进而提升Spark任务的整体性能。map端缓冲的默认配置是32KB,如果每个task处理640K...
2019-11-30 11:17:34
562
原创 Spark性能调优-----算子调优(五)reduceByKey本地聚合
reduceByKey相较于普通的shuffle操作一个显著的特点就是会进行map端的本地聚合,map端会先对本地的数据进行combine操作,然后将数据写入给下个stage的每个task创建的文件中,也就是在map端,对每一个key对应的value,执行reduceByKey算子函数。reduceByKey算子的执行过程如图2-8所示:使用reduceByKey对性能的提升如下:1.本地聚合...
2019-11-30 09:41:01
528
原创 Spark性能调优-----算子调优(四)repartition解决SparkSQL低并行度问题
常规性能调优中我们讲解了并行度的调节策略,但是,并行度的设置对于Spark SQL是不生效的,用户设置的并行度只对于Spark SQL以外的所有Spark的stage生效。Spark SQL的并行度不允许用户自己指定,Spark SQL自己会默认根据hive表对应的HDFS文件的split个数自动设置Spark SQL所在的那个stage的并行度,用户自己通spark.default.paral...
2019-11-30 09:39:21
1191
原创 Spark性能调优-----算子调优(三)filter与coalesce的配合使用
在Spark任务中我们经常会使用filter算子完成RDD中数据的过滤,在任务初始阶段,从各个分区中加载到的数据量是相近的,但是一旦进过filter过滤后,每个分区的数据量有可能会存在较大差异,如图2-6所示:根据图2-6我们可以发现两个问题:每个partition的数据量变小了,如果还按照之前与partition相等的task个数去处理当前数据,有点浪费task的计算资源;每个parti...
2019-11-30 09:37:34
557
原创 Spark性能调优-----算子调优(二)foreachPartition优化数据库操作
在生产环境中,通常使用foreachPartition算子来完成数据库的写入,通过foreachPartition算子的特性,可以优化写数据库的性能。如果使用foreach算子完成数据库的操作,由于foreach算子是遍历RDD的每条数据,因此,每条数据都会建立一个数据库连接,这是对资源的极大浪费,因此,对于写数据库操作,我们应当使用foreachPartition算子。与mapPartiti...
2019-11-30 09:35:47
513
原创 Spark性能调优-----算子调优(一)mappartitions
普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作。如果是普通的map算子,假设一个partition有1万条数据,那么map算子中的function要执行1万次,也就是对每个元素进行操作。如果是mapPartition算子,由于一个task处理一个RDD的partition,那么一个task只会执行一次function,function...
2019-11-30 09:34:00
213
原创 Spark性能调优-----常规性能调优(六)调节本地化等待时长
常规性能调优六:调节本地化等待时长Spark作业运行过程中,Driver会对每一个stage的task进行分配。根据Spark的task分配算法,Spark希望task能够运行在它要计算的数据算在的节点(数据本地化思想),这样就可以避免数据的网络传输。通常来说,task可能不会被分配到它处理的数据所在的节点,因为这些节点可用的资源可能已经用尽,此时,Spark会等待一段时间,默认3s,如果等待指...
2019-11-30 09:32:23
177
原创 Spark性能调优-----常规性能调优(五)Kryo序列化
默认情况下,Spark使用Java的序列化机制。Java的序列化机制使用方便,不需要额外的配置,在算子中使用的变量实现Serializable接口即可,但是,Java序列化机制的效率不高,序列化速度慢并且序列化后的数据所占用的空间依然较大。Kryo序列化机制比Java序列化机制性能提高10倍左右,Spark之所以没有默认使用Kryo作为序列化类库,是因为它不支持所有对象的序列化,同时Kryo需要...
2019-11-30 09:28:18
205
原创 Spark性能调优-----常规性能调优(四)广播大变量
1.1.4常规性能调优四:广播大变量默认情况下,task中的算子中如果使用了外部的变量,每个task都会获取一份变量的复本,这就造成了内存的极大消耗。一方面,如果后续对RDD进行持久化,可能就无法将RDD数据存入内存,只能写入磁盘,磁盘IO将会严重消耗性能;另一方面,task在创建对象的时候,也许会发现堆内存无法存放新创建的对象,这就会导致频繁的GC,GC会导致工作线程停止,进而导致Spark暂...
2019-11-30 09:26:09
254
原创 Spark性能调优-----常规性能调优(三)并行度调节
Spark作业中的并行度指各个stage的task的数量。关于task数量和stage数量的计算我在下边放一张图便于理解stage的数量等于该job的宽依赖(shuffle)的次数加1一个线程对应一个task,一个task执行的时候对应的一个分区,task只会在stage范围内执行,一个stage中会生成一到多个task,stage执行的时候是有顺序的,这样才能保证task的顺序性,!!...
2019-11-29 22:00:03
174
原创 Spark性能调优-----常规性能调优(二)RDD优化
1.2.1 RDD复用在对RDD进行算子时,要避免相同的算子和计算逻辑之下对RDD进行重复的计算,如图2-1所示:图2-1 RDD的重复计算对图2-1中的RDD计算架构进行修改,得到如图2-2所示的优化结果:图2-2 RDD架构优化1.2.2 RDD持久化在Spark中,当多次对同一个RDD执行算子操作时,每一次都会对这个RDD以之前的父RDD重新计算一次,这种情况是必须要避免的,...
2019-11-29 21:44:22
165
原创 robocode机器人案例
1、游戏规则:生命规则: 相撞损失:撞到墙时,生命点损伤度=Math.abs (velocity) * 0.5 -1。撞到另一个坦克时,移动停止,生命点损失6点,扣除积分1.2分。 击中损失:当子弹能量为1时,我们生命点损失=4 * power,如果子弹能量大于1,那么我们的生命损失+= 2 * (power-1)。 发射损失:如果我们的子弹打中别的坦克...
2019-11-13 19:42:51
2503
原创 单例模式(升级版)
设计模式单例 一个类只允许有一个对象,建立一个全局的访问点,提供出去供大家使用。 好处:可以让两个对象在完全没有关系的前提下,实现值的传递,降低了耦合性,提高了内聚性。懒汉public class Singleton { // 将自身实例化对象设置为一个属性,并用static修饰 private static Singleton instance; // 构造...
2019-11-13 19:31:19
121
原创 观察者模式
观察者模式(Observer Pattern)别名: 依赖,发布/订阅(Another Name: Dependents, Publish/Subscribe)概念定义对象间的一种一对多的依赖关系,当一个对象状态发生改变时,所有依赖它的对象都得到通知并被自动更新。如何使用?当一个对象的数据更新时,需要通知其他对象,而又不希望和被通知的对象形成紧耦合时示例比如我们有个天气服务(主题),...
2019-11-13 19:30:23
136
原创 mysql主从复制实现读写分离
mysql数据库的读写分离一:前言大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器来处理如此多的数据库连接操作,数据库必然会崩溃,特别是数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,下面就进入我们今天的主题。二:如何实现利用主从数据库来实现读写分离,从而分担主数据...
2019-11-11 08:33:19
77
原创 面试之mysql的四种存储引擎
MySQL常用的四种引擎的介绍(1):MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表支持3种不同的存储格式,分别是:静态表;动态表;压缩表静态表:表中的字段都是非变长字段,这样每个记录都是固定长度的,优点存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多(因为...
2019-10-25 17:19:41
191
转载 mysql数据库的主从同步,实现读写分离
目录前言1 分别在两台centos 7系统上安装mysql 5.72 master主服务器的配置2.1 配置文件my.cnf的修改2.2 创建从服务器的用户和权限2.3 重启mysql服务2.4 查看主服务器状态3 slave从服务器的配置3.1 配置文件my.cnf的修改3.2 重启mysql服务3.3 连接master主服务器3.4 启动slave数据同步3.5 查看...
2019-10-18 21:58:08
99
原创 flume采集数据到hdfs上为什么会生成很多的小文件呢?????
原文链接:https://blog.youkuaiyun.com/qq_32502511/article/details/85048594问题:flume监控的目录写入大文件的时候不能同步记录在hdfs中flume监控的目录写入大文件的时候,同步记录到hdfs中后变成多个小文件flume从kafka中读取数据下沉到hdfs中会生成很多小文件解决办法:更改flume的配置信息(主要更改滚动方式),滚动...
2019-10-12 00:29:56
1233
原创 Flume与Kafka二者的对比
原文链接:https://blog.youkuaiyun.com/gyshun/article/details/797105341:kafka和flume都是日志系统,kafka是分布式消息中间件,自带存储,提供push和pull存取数据功能。flume分为agent(数据采集器),collector(数据简单处理和写入),storage(存储器)三部分,每一部分都是可以定制的。比如agent采用RPC(T...
2019-10-10 15:14:49
433
原创 Kimball和Inmon方法论的适用场景比较
Kimball和Inmon是两种主流的数据仓库方法论,两者各有优势。本文简要的做一些比较,以帮助数据仓库实践。1 Inmon数据仓库Inmon数据仓库采用自上而下的方法。它将数据仓库定义为整个企业级的集中存储。数据仓库存放着最低的详细级别的原子数据。维度数据集市只是在数据仓库完成后才创建的。因此,数据仓库是企业信息工厂(CIF)的中心,它为交付商业智能提供逻辑框架。2 kimba...
2019-10-09 14:08:20
515
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人