- 博客(160)
- 资源 (6)
- 收藏
- 关注
原创 二十三种设计模式--系列篇(一)
“设计模式”最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)等 4 位作者合作出版了《设计模式:可复用面向对象软件的基础》一书,在此书中收录了 23 个设计模式。
2022-12-29 11:39:32
482
3
原创 大数据-Hive(五)
大数据-Hive(五)hive调优1、Fetch抓取 Fetch抓取是指,==Hive中对某些情况的查询可以不必使用MapReduce计算== 例如:select * from score; 在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台 在hive-default.xml.template文件中 ==hive.fetch.tas...
2020-12-25 15:15:06
444
原创 大数据-Hive(四)
大数据-Hive(四)Hive的参数传递Hive命令行 查看hive命令的参数 [hadoop@node03 ~]$ hive -help语法结构hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S] -i 从文件初始化HQL。 -e从命令行执行指定的HQL...
2020-12-25 13:53:19
922
原创 大数据-SparkStreaming(十)
大数据-SparkStreaming(十)什么是ScalikeJDBCScalikeJDBC是Scala开发人员基于SQL的简洁数据库访问库。该库自然包装JDBC API,为您提供易于使用且非常灵活的API。更重要的是,QueryDSL使您的代码类型安全且可重用。ScalikeJDBC是一个实用且适合生产的产品。 将此库用于实际项目。IDEA项目中导入相关库<!-- https://mvnrepository.com/artifac...
2020-09-30 08:05:57
214
原创 大数据-SparkStreaming(九)
大数据-SparkStreaming(九)SparkStreaming调优调整BlockReceiver的数量案例演示:val kafkaStream = { val sparkStreamingConsumerGroup = "spark-streaming-consumer-group" val kafkaParams = Map( "zookeeper.connect" -> "node01:218...
2020-09-30 07:57:26
287
原创 大数据-SparkStreaming(八)
大数据-SparkStreaming(八)SparkStreaming应用程序如何保证Exactly-Once要想让一个SparkStreaming的程序保证Exactly-Once,那么从如下三个角度出发 :(1)接收数据:从Source中接收数据。(2)转换数据:用DStream和RDD算子转换。(3)储存数据:将结果保存至外部系统。案例演示:pom.xml添加内容如下<dependency> ...
2020-09-30 07:45:10
172
原创 大数据-SparkStreaming(七)
大数据-SparkStreaming(七)SparkStreaming语义At most once 一条记录要么被处理一次,要么没有被处理。 At least once 一条记录可能被处理一次或者多次,可能会重复处理。 Exactly once 一条记录只被处理一次,它最严格,实现起来也是比较困难。数据被处理且只被处理一次。SparkStreaming与Kafka整合SparkStreaming整合Kafka官方文档http://spa...
2020-09-29 14:02:29
239
原创 大数据-SparkStreaming(六)
大数据-SparkStreaming(六)数据丢失如何处理利用WAL把数据写入到HDFS中步骤一:设置checkpoint目录streamingContext.setCheckpoint(hdfsDirectory)步骤二:开启WAL日志sparkConf.set("spark.streaming.receiver.writeAheadLog.enable", "true")步骤三:需要reliable rec...
2020-09-29 13:50:12
214
原创 大数据-SparkStreaming(五)
大数据-SparkStreaming(五)SparkStreaming和SparkSQL整合pom.xml里面添加<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.3.3</version>...
2020-09-29 13:42:53
186
原创 大数据-SparkStreaming(四)
大数据-SparkStreaming(四)OutputforeachRDDpackage com.kaikeba.streamingimport java.sql.DriverManagerimport org.apache.log4j.{Level, Logger}import org.apache.spark.SparkConfimport org.apache.spark.streaming.{Seconds, Stream...
2020-09-29 13:34:24
124
原创 大数据-SparkStreaming(三)
大数据-SparkStreaming(三)Transformation 高级算子updateStateByKey需求:sparkStreaming接受socket数据实现所有批次的单词次数累加package com.kaikeba.streamingimport org.apache.spark.SparkConfimport org.apache.spark.streaming.dstream.{DStream, Receive...
2020-09-29 11:25:57
189
原创 大数据-SparkStreaming(二)
大数据-SparkStreaming(二)数据源socket数据源需求:sparkStreaming实时接收socket数据,实现单词计数业务处理流程图安装socket服务首先在linux服务器node01上用yum 安装nc工具,nc命令是netcat命令的简称,它是用来设置路由器。我们可以利用它向某个端口发送数据。 yum -y install nc#执行命令向指定的端口发送数据nc -lk 9999 代...
2020-09-29 11:18:01
218
原创 大数据-SparkStreaming(一)
大数据-SparkStreaming(一)SparkStreaming简介SparkStreaming是对于Spark核心API的拓展,从而支持对于实时数据流的可拓展,高吞吐量和容错性流处理。数据可以由多个源取得,例如:Kafka,Flume,Twitter,ZeroMQ,Kinesis或者TCP接口,同时可以使用由如map,reduce,join和window这样的高层接口描述的复杂算法进行处理。最终,处理过的数据可以被推送到文件系统,...
2020-09-28 18:27:28
301
原创 大数据-代码开发(三)
大数据-代码开发(三)SparkSQL自定义数据源,并将结果数据下沉到HBase中importjava.utilimportjava.util.Optionalimportcom.travel.utils.HbaseToolsimportorg.apache.hadoop.hbase.TableNameimportorg.apache.hadoop.hbase.client._importorg.apa...
2020-09-28 17:26:22
317
原创 大数据-代码开发(二)
大数据-代码开发(二)Java实现Hbase表的预分区package com.travel.hbase;import com.travel.common.Constants;import com.travel.utils.HbaseTools;import org.apache.commons.lang3.StringUtils;import org.apache.hadoop.hbase.HColumnDescrip...
2020-09-28 17:17:37
426
原创 大数据-代码开发(一)
大数据-代码开发(一)SparkStreaming程序消费kafka里面的数据,实现自主维护offset到hbasepackage com.travel.programAppimport java.util.Dateimport java.util.regex.Patternimport com.travel.common.{ConfigUtil, Constants, DateUtils}import org.apache...
2020-09-28 17:02:30
1040
原创 大数据-phoenix
大数据-phoenix由于Hbase当中的数据查询方式比较单一,查询形式比较固定,所以一般都会对Hbase实现二级索引的开发,通过二级索引去更加方便快速的查询Hbase当中的数据,我们也可以通过phoenix与Hbase整合的方式实现通过jdbc的方式去查询Hbase当中的数据。下载phoenix的安装包并解压下载地址:http://archive.apache.org/dist/phoenix/这里我使用的是 ...
2020-09-27 11:39:24
1649
原创 大数据-MaxWell
大数据-MaxWell(一)MaxWell的基本介绍Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它的常见应用场景有ETL、维护缓存、收集表级别的dml指标、增量到搜索引擎、数据分区迁移、切库binlog回滚方案等。官网(http://maxw...
2020-09-27 10:56:01
1481
原创 大数据-Spark调优(三)
大数据-Spark调优(三)Spark在Driver上对Application的每一个stage的task进行分配之前,都会计算出每个task要计算的是哪个分片数据,RDD的某个partition;Spark的task分配算法,优先会希望每个task正好分配到它要计算的数据所在的节点,这样的话就不用在网络间传输数据;但是通常来说,有时事与愿违,可能task没有机会分配到它的数据所在的节点,为什么呢,可能那个节点的计算资源和计算能力都...
2020-09-21 16:08:10
481
原创 大数据-Spark调优(一)
大数据-Spark调优(一)分配更多的资源分配更多的资源是性能优化调优的王道,就是增加和分配更多的资源,这对于性能和速度上的提升是显而易见的,基本上,在一定范围之内,增加资源与性能的提升,是成正比的;写完了一个复杂的spark作业之后,进行性能调优的时候,首先第一步,就是要来调节最优的资源配置;在这个基础之上,如果说你的spark作业,能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,公司资源有限;那么才是...
2020-09-21 15:56:52
1912
原创 大数据-Spark调优(二)
大数据-Spark调优(二)尽量避免使用shuffle类算子shuffle描述spark中的shuffle涉及到数据要进行大量的网络传输,下游阶段的task任务需要通过网络拉取上阶段task的输出数据,shuffle过程,简单来说,就是将分布在集群中多个节点上的同一个key,拉取到同一个节点上,进行聚合或join等操作。比如reduceByKey、join等算子,都会触发shuffle操作。如果有可能的话,要尽量避免使用shuf...
2020-09-21 15:56:44
385
原创 大数据-SparkSQL(五)
大数据-SparkSQL(五)sparksql中自定义函数自定义UDF函数代码开发package com.kaikeba.sqlimport org.apache.spark.sql.api.java.UDF1import org.apache.spark.sql.types.StringTypeimport org.apache.spark.sql.{DataFrame, SparkSession}//TODO:自定...
2020-09-20 15:09:55
228
原创 大数据-SparkSQL(四)
大数据-SparkSQL(四)Sparksql 操作hivesql添加依赖<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.11</artifactId> <version>2.3.3</version></dependenc...
2020-09-20 15:03:03
186
原创 大数据-SparkSQL(三)
大数据-SparkSQL(三)DataSet概述DataSet是什么DataSet是分布式的数据集合,Dataset提供了强类型支持,也是在RDD的每行数据加了类型约束。 DataSet是在Spark1.6中添加的新的接口。它集中了RDD的优点(强类型和可以用强大lambda函数)以及使用了Spark SQL优化的执行引擎。RDD、DataFrame、DataSet的区别假设RDD中的两行数据长这样那么DataFra...
2020-09-20 11:10:31
242
原创 大数据-SparkSQL(一)
大数据-SparkSQL(一)Shark是专门针对于spark的构建大规模数据仓库系统的一个框架。Shark与Hive兼容、同时也依赖于Spark版本,Hivesql底层把sql解析成了mapreduce程序,Shark是把sql语句解析成了Spark任务;随着性能优化的上限,以及集成SQL的一些复杂的分析功能,发现Hive的MapReduce思想限制了Shark的发展。最后Databricks公司终止对Shark的开发决定单独开发一个框...
2020-09-20 10:44:19
282
原创 大数据-Spark(八)
大数据-Spark(八)DAG有向无环图生成DAG是什么DAG(Directed Acyclic Graph) 叫做有向无环图(有方向,无闭环,代表着数据的流向),原始的RDD通过一系列的转换就形成了DAG。下图是基于单词统计逻辑得到的DAG有向无环图:DAG划分stagestage是什么一个Job会被拆分为多组Task,每组任务被称为一个stage。stage表示不同的调度阶段,一个spark job...
2020-09-19 14:44:39
824
原创 大数据-Spark(七)
大数据-Spark(七)RDD的依赖关系RDD和它依赖的父RDD的关系有两种不同的类型,窄依赖(narrow dependency)和宽依赖(wide dependency)。窄依赖:窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用。map/flatMap/filter/union等这些算子操作是窄依赖,所有的窄依赖不会产生shuffle。 宽依赖 :宽依赖指的是多个子RDD的...
2020-09-19 11:55:39
312
原创 大数据-Spark(六)
大数据-Spark(六)RDD常用的算子操作演示为了方便前期的测试和学习,可以使用spark-shell进行演示:spark-shell --master local[2]mapval rdd1 = sc.parallelize(List(5, 6, 4, 7, 3, 8, 2, 9, 1, 10))//把rdd1中每一个元素乘以10rdd1.map(_*10).collectfilterval r...
2020-09-19 11:25:55
226
原创 大数据-Spark(二)
大数据-Spark(五)RDD的概念RDD(Resilient Distributed Dataset)弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。Resilient: 表示弹性,rdd的数据是可以保存在内存或者是磁盘中。 Distributed:它内部的元素进行了分布式存储,方便于后期进行分布式计算。 Dataset: 就是一个集合,存储很多数据。RDD的...
2020-09-19 11:15:29
400
原创 大数据-Spark(四)
大数据-Spark(四)通过IDEA开发spark程序构建maven工程,添加pom依赖 <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> &l...
2020-09-18 15:14:06
242
原创 大数据-Spark(三)
大数据-Spark(三)初识spark程序普通模式提交 (指定活着的master地址)bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://node01:7077 \--executor-memory 1G \--total-executor-cores 2 \examples/jars/spark-exam...
2020-09-18 15:07:51
251
原创 大数据-Spark(二)
大数据-Spark(二)Spark集群安装部署前置条件搭建好zookeeper集群1.下载安装包 https://archive.apache.org/dist/spark/spark-2.3.3/spark-2.3.3-bin-hadoop2.7.tgz 2.规划安装目录/kkb/install3.上传安装包到服务器4.解压安装包到指定的安装目录tar -zxvf spark-2.3.3-bin-h...
2020-09-18 14:50:01
315
原创 大数据-Spark(一)
大数据-Spark(一)Spark的概念Apache Spark™ is a unified analytics engine for large-scale data processing.spark是针对于大规模数据处理的统一分析引擎。spark是在Hadoop基础上的改进,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式...
2020-09-18 14:27:57
3684
原创 大数据-scala(十三)
大数据-scala(十三)隐式转换和隐式参数隐式转换Scala提供的隐式转换和隐式参数功能,是非常有特色的功能。是Java等编程语言所没有的功能。它可以允许你手动指定,将某种类型的对象转换成其他类型的对象或者是给一个类增加方法。通过这些功能,可以实现非常强大、特殊的功能。隐式转换其核心就是定义一个使用 implicit关键字修饰的方法 实现把一个原始类转换成目标类,进而可以调用目标类中的方法。隐式参数所谓的隐式参...
2020-05-13 10:15:33
249
原创 大数据-scala(十二)
大数据-scala(十二)异常处理捕获异常在Scala里,借用了模式匹配的思想来做异常的匹配,以下为scala中try...catch异常处理的语法格式:try { // 代码}catch { case ex:异常类型1 => // 代码 case ex:异常类型2 => // 代码}finally { // 代码}示例:try { val...
2020-05-13 10:09:11
162
原创 大数据-scala(十一)
大数据-scala(十一)模式匹配和样例类scala有一个十分强大的模式匹配机制,可以应用到很多场合。 java switch case switch语句 类型查询 以及快速获取数据 并且scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配。匹配字符串//todo:匹配字符串object CaseDemo01 extends App{ //定义一个数组 val arr=Array("h...
2020-05-12 09:55:29
182
原创 大数据-scala(十)
大数据-scala(十)scala面向对象编程之trait特质特质是scala中代码复用的基础单元 它可以将方法和字段定义封装起来,然后添加到类中 与类继承不一样的是,类继承要求每个类都只能继承一个超类,而一个类可以添加任意数量的特质。 特质的定义和抽象类的定义很像,但它是使用trait关键字作为接口使用使用extends来继承trait(scala不论是类还是特质,都是使用extends关键字) 如果要继承多...
2020-05-11 14:19:49
178
原创 大数据-scala(九)
大数据-scala(九)scala面向对象编程之继承继承extendsscala和Java一样,使用extends关键字来实现继承。可以在子类中定义父类中没有的字段和方法,或者重写父类的方法。示例一:实现简单继承class Person1 { var name = "super" def getName = this.name}class Student1 extends Person1obje...
2020-05-11 13:56:36
189
原创 大数据-scala(八)
大数据-scala(八)scala面向对象编程之类类的定义scala是支持面向对象的,也有类和对象的概念。示例:定义一个Customer类,并添加成员变量/成员方法 添加一个main方法,并创建Customer类的对象,并给对象赋值,打印对象中的成员,调用成员方法。class Customer { var name:String = _ var sex:String = _ val register...
2020-05-11 11:12:44
272
Spark调优 Spark应用程序性能优化
2020-09-21
scala语言知识点.xmind
2020-05-13
HDFS读写流程.xmind
2020-04-03
HDFS.xmind
2020-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人