自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员学习圈

行胜于言、质胜于华

  • 博客(665)
  • 收藏
  • 关注

原创 Lambda 架构详解-2

1.架构简介 Lambda架构是大数据架构的一种,其作用无非是存储-处理-展示数据。关于其介绍,网上多篇博客已珠玉在前,这里不再赘述。可参见:2.架构之组成2.1 batch layer 如图可知,优选是Hive和Pig,次选是Spark、Hadoop;2.2 speed layer 如图可知,优选是Spark Streaming和Str...

2019-01-17 18:00:09 712

原创 Lambda 架构详解-1

1.为什么要用Lambda Architecture 在大数据处理系统中,数据处理的可靠性和实时性是一对矛盾,往往不可兼得。可靠性是指在任何异常出现的情况下,数据处理都能够做到不重不丢,并且最终得到准确的结果。实时性是指数据从输入到处理完毕输出的时间间隔。一般来说,对于像Hadoop MapReduce这样的批处理系统来说,可靠性很高,而实时性很差;对于Storm这样的流式处理系统来说,...

2019-01-17 17:30:44 11574 16

原创 大数据架构选择

1.简介 大数据是收集、整理、处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称。虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性、规模,以及价值在最近几年才经历了大规模扩展。 处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据。数据的计算则是指从大量单一数据点中提取信息和见解的过程。...

2019-01-17 17:00:10 605

原创 Bug的严重程度(Severity)和Bug修复优先级(Priority)如何定义

    Priority()和Severity(严重程度)是Bug的两个重要属性。通常,人员在提交Bug时,只定义Bug的Severity, 即该Bug的严重程度,而将Priority交给Project Leader 或Team Leader来定义,由他们来决定该Bug被修复的优先等级。某种意义上来说,Priority的定义要依赖于Severity,在大多数情况下,Severity越严重,那这个B...

2019-01-17 15:18:10 3206

原创 sonar 使用详解

    想要养成良好的编码习惯吗?想要防微杜渐,修复可能引发故障的代码缺陷吗? 代码内聚性指标、代码复杂度、代码的重复性检查、包之间的依存度以及代码冲突性等,可以非常直观的通过sonar看到这些数据。    学习地址:https://www.sonarqube.org/...

2019-01-17 15:00:59 2276

原创 Spark_FAQ

 该篇我们将会从如下几个方向进行Spark性能调优的学习:    • Spark的监控    • Spark调优要点    • Spark数据倾斜调优    • Spark资源运行参数调优    • Spark程序开发调优    • Spark Shuffle调优    • JVM GC优化 1.Spark的监控    • Spark Web UI:Sp...

2019-01-16 21:58:06 448

原创 Spark 性能调优

 该篇我们将会从如下几个方向进行Spark性能调优的学习:    • Spark的监控    • Spark调优要点    • Spark数据倾斜调优    • Spark资源运行参数调优    • Spark程序开发调优    • Spark Shuffle调优    • JVM GC优化 1.Spark的监控    • Spark Web UI:Sp...

2019-01-16 15:36:08 600

原创 Spark 内核解析

该篇我们将会从如下几个方向进行学习Spark的内核机制:    • Spark的通信架构    • Spark的脚本解析    • Spark的交互流程    • Spark的Shuffle过程    • Spark的内存管理    • Spark的部署模式 1.Spark 通信架构    Spark作为分布式计算框架,多个节点的设计与相互通信模式是其重要的组成...

2019-01-16 12:00:27 607

原创 Spark GraphX 简单介绍

    Spark GraphX是一个分布式的图处理框架。社交网络中,用户与用户之间会存在错综复杂的联系,如微信、QQ、微博的用户之间的好友、关注等关系,构成了一张巨大的图,单机无法处理,只能使用分布式图处理框架处理,Spark GraphX就是一种分布式图处理框架。    下面以一个简单的示例进行说明:1. POM文件    在项目的pom文件中加上Spark GraphX的包:...

2019-01-14 14:20:50 945

原创 Spark MLlib 简单介绍

1.机器学习介绍    机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。     机器学习算法是从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。 机器学习可分为以下几...

2019-01-14 13:31:33 9654 1

原创 Spark Streaming 解析-7x24 不间断运行

1.检查点机制    检查点机制是我们在Spark Streaming中用来保障容错性的主要机制。与应用程序逻辑无关的错误(即系统错位,JVM崩溃等)有迅速恢复的能力.它可以使Spark Streaming阶段性地把应用数据存储到诸如HDFS或Amazon S3这样的可靠存储系统中, 以供恢复时使用。具体来说,检查点机制主要为以下两个目的服务。    • 控制发生失败时需要重算的状态数...

2019-01-14 11:36:10 763

原创 Spark Streaming 解析-Caching / Persistence

    和RDDs类似,DStreams同样允许开发者将流数据保存在内存中。也就是说,在DStream上使用persist()方法将会自动把DStreams中的每个RDD保存在内存中。当DStream中的数据要被多次计算时,这个非常有用(如在同样数据上的多次操作)。对于像reduceByWindow和reduceByKeyAndWindow以及基于状态的(updateStateByKey)这种操作...

2019-01-14 11:16:41 192

原创 Spark Streaming 解析-累加器和广播变量

    累加器(Accumulators)和广播变量(Broadcast variables)不能从Spark Streaming的检查点中恢复。如果你启用检查并也使用了累加器和广播变量,那么你必须创建累加器和广播变量的延迟单实例从而在驱动因失效重启后他们可以被重新实例化。如下例述:object WordBlacklist {  @volatile private var instanc...

2019-01-13 22:25:39 682

原创 Spark Streaming 解析-输入转换和输出

1.初始化StreamingContextimport org.apache.spark._import org.apache.spark.streaming._val conf = new SparkConf().setAppName(appName).setMaster(master)val ssc = new StreamingContext(conf, Seconds(1))...

2019-01-11 15:53:23 824

原创 Spark Streaming 架构与抽象

    Spark Streaming使用“微批次”的架构,把流式计算当作一系列连续的小规模批处理来对待。Spark Streaming从各种输入源中读取数据,并把数据分组为小的批次。新的批次按均匀的时间间隔创建出来。在每个时间区间开始的时候,一个新的批次就创建出来,在该区间内收到的数据都会被添加到这个批次中。在时间区间结束时,批次停止增长。时间区间的大小是由批次间隔这个参数决定的。批次间隔一般设...

2019-01-11 13:01:57 399

原创 Spark Streaming 简单示例(WordCount)

1.Pom.xml 加入以下依赖:<dependency>    <groupId>org.apache.spark</groupId>    <artifactId>spark-streaming_2.11</artifactId>    <version>${spark.version}</version...

2019-01-11 10:51:07 218

原创 Spark Streaming 简单介绍

1.什么是Spark Streaming    Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map...

2019-01-11 00:22:41 897

原创 Spark SQL 练习

1.数据说明(数据集是货品交易数据集)     每个订单可能包含多个货品,每个订单可以产生多次交易,不同的货品有不同的单价。   2.需求说明:    • 计算所有订单中每年的销售单数、销售总额    • 计算所有订单每年最大金额订单的销售额    • 计算所有订单中每年最畅销货品3.具体实现import org.apache.spark.SparkCon...

2019-01-10 17:38:26 1319

原创 Spark SQL数据的读取和存储

    Spark SQL 支持很多种结构化数据源,可以让你跳过复杂的读取过程,轻松从各种数据 源中读取到 Row 对象。这些数据源包括 Hive 表、JSON 和 Parquet 文件。此外,当你使用 SQL 查询这些数据源中的数据并且只用到了一部分字段时,Spark SQL 可以智能地只扫描 这些用到的字段,而不是像 SparkContext.hadoopFile 中那样简单粗暴地扫描全部数据...

2019-01-10 09:55:23 2286

原创 Spark SQL 解析-UDF,UDAF,开窗函数

1.UDF函数(用户自定义函数)    • 注册一个UDF函数   spark.udf.register("addname",(x:String) => "name:"+ x)    • spark.sql("select addname(name) as name  from people").show详细案例:scala>  val df = spark.read...

2019-01-09 22:02:07 357

原创 Spark SQL 解析-RDD、DataFrame、Dataset 三者之间转换

1.新的起始点SparkSession    在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫HiveContext,用于连接Hive的查询,SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用...

2019-01-09 19:25:28 1054

原创 Spark SQL简单示例(WordCount)

1.SparkSQL查询-SparkShell中使用1.employees.json原始数据如下:{"name":"Michael", "salary":3000}{"name":"Andy", "salary":4500}{"name":"Justin", "salary":3500}{"name&quo

2019-01-09 17:06:06 1037

原创 Spark SQL 简单介绍

1.什么是Spark SQL    • Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。    • 我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spar...

2019-01-09 15:20:23 306

原创 SparkCore-RDD 练习

1.原始数据如下:* 格式 :timestamp province city userid adid* 某个时间点 某个省份 某个城市 某个用户 某个广告  1516609143867 6 7 64 16 1516609143869 9 4 75 18 1516609143869 1 7 87 12 1516609143869 2 8 92 9* 注意: • 用户ID范...

2019-01-08 23:52:14 661

原创 SparkCore 累加器和广播变量(Spark编程进阶)

    本章介绍前几章没有提及的 Spark 编程的各种进阶特性,会介绍两种类型的共享变量: 累加器(accumulator)与广播变量(broadcast variable)。累加器用来对信息进行聚合,而 广播变量用来高效分发较大的对象。在已有的 RDD 转化操作的基础上,我们为类似查询 数据库这样需要很大配置代价的任务引入了批操作。为了扩展可用的工具范围,本章会介 绍 Spark 与外部程序交...

2019-01-08 23:33:39 528

原创 SparkCore 的输入输出

    在Spark生态体系中,SparkCore,SparkSql,SparkStream都有自己的输入输出,他们之间可以相互转换。相对来说。SparkCore的输入输出做的不是特别规范,SparkSql的输入输出做的比较规范,下面我们来学习的是SparkCore的输入输出。 1.文本文件输入输出    当我们将一个文本文件读取为 RDD 时,输入的每一行 都会成为RDD的一个元素。...

2019-01-08 18:38:39 382

原创 SparkCore-容易混淆的RDD算子区别(Scala版本)

1.map与flatMap的区别# 初始化数据val rdd1 = sc.parallelize(Array("hello world","i love you"))1.1  map# map算子rdd1.map(_.split(" ")).collect# map算子结果输出res0: Array[Array[String]] = Array(Array(hello, ...

2019-01-08 18:00:16 357

原创 SparkCore-键值对RDD详解

    键值对 RDD 是 Spark 中许多操作所需要的常见数据类型。本章就来介绍如何操作键值对 RDD。键值对 RDD 通常用来进行聚合计算。我们一般要先通过一些初始 ETL(抽取、转 化、装载)操作来将数据转化为键值对形式。键值对 RDD 提供了一些新的操作接口(比如 统计每个产品的评论,将数据中键相同的分为一组,将两个不同的 RDD 进行分组合并等)。 1.动机    Spar...

2019-01-08 17:39:18 369

原创 SparkCore-RDD编程详解

1.编程模型    在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据(saveAsTextFile等)。在Spark中,只有遇到action,才会执行RDD的计算(即延迟计...

2019-01-07 23:36:08 337

原创 SparkCore-RDD 简单介绍

1.RDD 为什么会产生    RDD是Spark的基石,是实现Spark数据处理的核心抽象。那么RDD为什么会产生呢?    Hadoop的MapReduce是一种基于数据集的工作模式,面向数据,这种工作模式一般是从存储上加载数据集,然后操作数据集,最后写入物理存储设备。数据更多面临的是一次性处理。    MR的这种方式对数据领域两种常见的操作不是很高效。第一种是迭代式的算法。比如机...

2019-01-07 22:55:13 197

原创 Spark 和 Hadoop 比较

直接比较Hadoop和Spark有难度,因为它们处理的许多任务都一样,但是在一些方面又并不相互重叠。比如说,Spark没有文件管理功能,因而必须依赖Hadoop分布式文件系统(HDFS)或另外某种解决方案。 0.Hadoop框架的主要模块包括如下:    • Hadoop Common    • Hadoop分布式文件系统(HDFS)    • Hadoop YARN ...

2019-01-07 17:26:25 418

原创 Spark 简单示例(WordCount)

1.执行第一个spark程序(standalone)  /opt/module/spark-2.1.1-bin-hadoop2.7/bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop102:7077 --executor-memory 1G --total-executor-co...

2019-01-07 16:10:10 3655

原创 Spark 运行模式

 spark部署在单台机器上面时,可以使用本地模式(Local)运行;当部署在分布式集群上面的时候,可以根据自己的情况选择Standalone模式(Spark自带的模式)、YARN-Client模式或者YARN-Cluster模式、Spark on Mesos模式。 1.本地单机模式所有的Spark进程都运行在一台机器或一个虚拟机上面。Spark任务提交的方式为:spark-...

2019-01-07 00:18:10 265

原创 Spark 集群安装

1.机器准备    准备三台Linux服务器,安装好JDK1.8。 2.下载Spark安装包    上传解压安装包:spark-2.1.1-bin-hadoop2.7.tgz 安装包到Linux上    解压安装包到指定位置:tar -zxvf /opt/software/spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/ 3.配...

2019-01-06 23:36:08 353

原创 Spark 简单介绍

1.Spark的产生背景 2.什么是Spark     http://spark.apache.org    Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。项目是用Scala进行编写。    目前,Spark生态系统已经发展成...

2019-01-06 17:58:11 226

原创 lombok 使用详解

1.Lombok是什么    现在看一下Lombok官方对其进行的解释:Lombok官网:https://projectlombok.org    第一句话,Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库。接着,不用再一次写额外的getter或者equals方法。翻译到这里其实就可以,后面是对Lombok早期应用的介绍。通过这两句话不难理解lombok其实就是帮助我...

2019-01-04 15:20:59 3660

原创 Swagger 使用详解

    前言:作为一个以前后端分离为模式开发小组,我们每隔一段时间都进行这样一个场景:前端人员和后端开发在一起热烈的讨论"哎,你这参数又变了啊","接口怎么又请求不通了啊","你再试试,我打个断点调试一下.."。可以看到在前后端沟通中出现了不少问题。    对于这样的问题,之前一直没有很好的解决方案,直到它的出现,没错...这就是我们今天要讨论的神器:swagger,一款致力于解决接口规范化、...

2019-01-04 11:10:05 951

原创 Springboot和SpringMVC区别

1.SpringBoot学习专栏 http://springboot.fun/2.springboot 练习代码 https://github.com/luomingkui/springboot

2019-01-04 11:00:03 981

原创 Springboot 的HelloWorld

 废话不多说,我们直接采用Maven构建一个SpringBoot的简单程序。 1.maven构建项目    • 访问:http://start.spring.io/    • 选择构建工具Maven Project、Spring Boot版本1.3.6以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.7,可参考下图所示:...

2019-01-03 00:30:06 231

原创 SpringBoot 简单介绍

1.什么是spring boot    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了...

2019-01-03 00:26:22 1073

空空如也

空空如也

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

TA关注的人

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