编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

Java编程

性能调优
大数据

性能调优

阅读(2774)

数据接收并行度调优通过网络接收数据时(比如Kafka、Flume),会将数据反序列化,并存储在Spark的内存中。如果数据接收称为系统的瓶颈,那么可以考虑并行化数据接收。每一个输入DStream都会在某个Worker的Executor上启动一个Receiver,该Receiver接收一个数据流。因此可以通过创建多个输入DStream,并且配置它们接收数据源不同的分区数据,达...

容错机制以及事务语义详解
大数据

容错机制以及事务语义详解

阅读(2634)

容错机制的背景要理解Spark Streaming提供的容错机制,先回忆一下Spark RDD的基础容错语义:RDD,Ressilient Distributed Dataset,是不可变的、确定的、可重新计算的、分布式的数据集。每个RDD都会记住确定好的计算操作的血缘关系,(val lines = sc.textFile(hdfs file); val words = lines.flatMap(); val pairs = words.map(); val wordCo...

部署、升级和监控应用程序
大数据

部署、升级和监控应用程序

阅读(2581)

部署应用程序有一个集群资源管理器,比如standalone模式下的Spark集群,Yarn模式下的Yarn集群等。打包应用程序为一个jar包,课程中一直都有演示。为executor配置充足的内存,因为Receiver接受到的数据,是要存储在Executor的内存中的,所以Executor必须配置足够的内存来保存接受到的数据。要注意的是,如果你要执行窗口长度为10分钟的窗口操作...

Checkpoint机制
大数据

Checkpoint机制

阅读(3280)

概述每一个Spark Streaming应用,正常来说,都是要7 * 24小时运转的,这就是实时计算程序的特点。因为要持续不断的对数据进行计算。因此,对实时计算应用的要求,应该是必须要能够对与应用程序逻辑无关的失败,进行容错。如果要实现这个目标,Spark Streaming程序就必须将足够的信息checkpoint到容错的存储系统上,从而让它能够从失败中进行恢...

缓存、持久化机制
大数据

缓存、持久化机制

阅读(3063)

与RDD类似,Spark Streaming也可以让开发人员手动控制,将数据流中的数据持久化到内存中。对DStream调用persist()方法,就可以让Spark Streaming自动将该数据流中的所有产生的RDD,都持久化到内存中。如果要对一个DStream多次执行操作,那么,对DStream持久化是非常有用的。因为多次操作,可以共享使用内存中的一份缓存数据。对于基于窗口的操...

Stream的output操作以及foreachRDD详解
大数据

Stream的output操作以及foreachRDD详解

阅读(4391)

output操作OutputMeaningprint打印每个batch中的前10个元素,主要用于测试,或者是不需要执行什么output操作时,用于简单触发一下job。saveAsTextFile(prefix, [suffix])将每个batch的数据保存到文件中。每个batch的文件的命名格式为:prefix-TIME_IN_MS[.suffix]saveAsObjectFile同上,但是将每个batch的数据以序列化对象的方式,保存到Seque...

大商创搜索结果不准确原因分析
PHP编程

大商创搜索结果不准确原因分析

阅读(2229)

最近,有使用大商创商城系统的客户跟我说,大商创的搜索结果不准确啊,于是来到了大商创的search.php页面看代码,也找到了所谓的搜索结果不准确的原因。首先大商创的搜索原理是,利用scws把关键词进行了中文分词,比如,客户搜索“便携式超声雾化器”这个词,那么通过scws进行中文分词,分词的结果是:便携式、超声、雾化器,加上原来的搜索词...

window滑动窗口以及热点搜索词滑动统计案例实战
大数据

window滑动窗口以及热点搜索词滑动统计案例实战

阅读(2773)

Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。比如下图中,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过了两秒钟,又会对最近三秒内的...

transform以及广告计费日志实时黑名单过滤案例实战
大数据

transform以及广告计费日志实时黑名单过滤案例实战

阅读(2897)

transform操作,应用在DStream上时,可以用于执行任意的RDD到RDD的转换操作。它可以用于实现,DStream API中所没有提供的操作。比如说,DStream API中,并没有提供将一个DStream中的每个batch,与一个特定的RDD进行join的操作。但是我们自己就可以使用transform操作来实现该功能。DStream.join(),只能join其他DStream。在DStream每个batch的R...

updateStateByKey以及基于缓存的实时wordcount程序
大数据

updateStateByKey以及基于缓存的实时wordcount程序

阅读(2491)

updateStateByKey操作,可以让我们为每个key维护一份state,并持续不断的更新该state。首先,要定义一个state,可以是任意的数据类型;其次,要定义state更新函数——指定一个函数如何使用之前的state和新值来更新state。对于每个batch,Spark都会为每个之前已经存在的key去应用一次state更新函数,无论这个key在batch中是否有新的数据。如果s...

人人商城开店版、分销版、商家版、VIP尊享版、企业开源版5个版本的区别
PHP编程

人人商城开店版、分销版、商家版、VIP尊享版、企业开源版5个版本的区别

阅读(6747)

人人商城目前有5个版本,很多人可能都被这5个版本搞乱了吧,下面就由编程入门为大家解释下5个版本的区别,首先从包含的功能上来说他们5个版本分别开店版>分销版>商家版>VIP尊享版>企业开源版。下面,我们来说说5个版本包含的具体功能吧。开店版的功能小程序、商城首页、商品管理、实体商品/虚拟商品/虚拟商品(卡密)/批发商品/记...

DStream的transformation操作概述
大数据

DStream的transformation操作概述

阅读(2208)

TransformationMeaningmap对传入的每个元素,返回一个新的元素flatMap对传入的每个元素,返回一个或多个元素filter对传入的元素返回true或false,返回的false的元素被过滤掉union将两个DStream进行合并count返回元素的个数reduce对所有values进行聚合countByValue对元素按照值进行分组,对每个组进行计数,最后返回<K, V>的格式reduceBy...

大商创如何重置或修改商家店铺登录密码?
PHP编程

大商创如何重置或修改商家店铺登录密码?

阅读(4782)

本文介绍如何修改或重置大商创商家的登录密码,实际运营过程中,忘记商家后台的用户名和密码也是非常常见的,具体步骤如下1、首先,登录大商创的后台,依次点击【商城】→【店铺】→【店铺列表】,我们以修改“万卓旗舰店”的店铺用户名为例,我们再单击【店铺管理】2、在大商创的“店铺-分派权限”页面的“店铺权限”页面,可以看到“登录名...

大商创如何重置或修改会员密码?
PHP编程

大商创如何重置或修改会员密码?

阅读(3105)

本文介绍如何修改或重置大商创会员的密码,具体步骤如下1、首先我们来到会员的列表页面,依次单击【平台】→【会员】→【会员列表】,比如我们需要修改“ecmoban”这个会员,我们再单击【查看】2、在【编辑会员账号】页面的【基本信息】页面,我们可以看到【新密码】和【确认密码】2个文本框,在这里重置或修改会员密码即可。经过上述的2步操...

输入DStream之Kafka数据源实战(基于Direct的方式)
大数据

输入DStream之Kafka数据源实战(基于Direct的方式)

阅读(2677)

基于Direct的方式这种新的不基于Receiver的直接方式,是在Spark 1.3中引入的,从而能够确保更加健壮的机制。替代掉使用Receiver来接收数据后,这种方式会周期性地查询Kafka,来获得每个topic+partition的最新的offset,从而定义每个batch的offset的范围。当处理数据的job启动时,就会使用Kafka的简单consumer api来获取Kafka指定offset范围的...

JDBC获取数据库信息:获取数据库中表的信息
Java编程

JDBC获取数据库信息:获取数据库中表的信息

阅读(4055)

ResultSet getTables(String catalog,String schemaPattern,String tableNamePattern,String types[]) throws SQLException 获得目录中可用的数据表的描述信息 函数参数列表 Catalog 表示一个目录名为String对象 SchemaPattern表示模式名的String对象 tableNamePattern 表示数据表名类型的String对象 ...

JDBC获取数据库信息:DatabaseMetaData获取数据库基本信息
Java编程

JDBC获取数据库信息:DatabaseMetaData获取数据库基本信息

阅读(4930)

数据库的基本信息包括数据库名,数据库支持的数据类型、数据库表的最大列数等。以下是常用的获取数据库信息的方法。 String getDriverName() throws SQLException 获取当前JDBC驱动程序的名字 String getDriverVersion() throws SQLException 获取当前JDBC驱动程序的版本 String getUserName()throws SQLException 获...

JDBC获取数据库信息:DatabaseMetaData获取数据库详细信息
Java编程

JDBC获取数据库信息:DatabaseMetaData获取数据库详细信息

阅读(4487)

使用JDBC可以连接不同的数据库,通常这些数据库之间会有一些差异,很多时候开发人员需要知道所使用的数据库的具体特性,比如数据库所使用的数据类型,是否支持存储过程、是否支持批量更新数据等,绝大多数的数据库详细信息都可以使用DatabaseMetaData对象获取到。 DatabaseMetaData对象提供了丰富的方法用于获取数据库的信息,比如ge...

JDBC操作存储过程:JDBC执行存储过程并返回结果集ResultSet
Java编程

JDBC操作存储过程:JDBC执行存储过程并返回结果集ResultSet

阅读(5263)

    前面讲了JDBC执行存储过程,返回简单值的案列,这篇文章我们来讲解下如何通过JDBC返回结果集ResultSet的案例。    操作数据库:mysql    操作目的:通过JDBC执行存储过程,返回ResultSet结果集。    mysql返回结果集还是很简单的,而 oracle 则需要使用游标来返回结果集了。   ...

JDBC操作存储过程:JDBC执行存储过程有IN参数,有OUT参数,并返回简单值
Java编程

JDBC操作存储过程:JDBC执行存储过程有IN参数,有OUT参数,并返回简单值

阅读(3707)

    前面我们讲了JDBC执行存储过程只有IN参数,没有OUT参数。这篇文章我们来讲下有IN参数,有OUT参数,并返回简单值的情况。    操作数据库:mysql    操作目的:建立一个名为sp_insertDetail的存储过程,该存储过程目的是在t_user中插入一条数据,并返回成功插入数据后,目前数据库里一共有几条数据。&n...

JDBC操作存储过程:JDBC执行存储过程只有IN参数,没有OUT参数
Java编程

JDBC操作存储过程:JDBC执行存储过程只有IN参数,没有OUT参数

阅读(3129)

    操作数据库:mysql    操作目的:建立一个名为sp_insertDetail的存储过程,该存储过程目的是在t_user中插入一条数据。    至于怎么通过JDBC创建存储过程,可以看下我们之前的文章:JDBC创建存储过程    该存储过程只有输入IN参数,没有输出OUT参数sp_insertDetail存储过程的代码如下,这...

JDBC操作存储过程:JDBC创建存储过程
Java编程

JDBC操作存储过程:JDBC创建存储过程

阅读(4067)

    操作数据库:mysql    操作目的:在codingwhy库里面创建名为sp_updateDetail的存储过程,用于更新某条数据记录    在执行JDBC创建存储过程的代码前,我们先来看下当前的数据库结构,如下图所示:    可以看到,其函数底下是没有任何存储过程的,并且有一条id为1,name为codingwhy的记录...

JDBC操作表:JDBC删除表数据记录
Java编程

JDBC操作表:JDBC删除表数据记录

阅读(3955)

    操作数据库:mysql    操作目的:通过JDBC在数据库中删除某表的数据记录。    在删除表数据记录之前,我们来看下当前的数据库情况,有一条ID为5,name为codignwhy的数据记录。如下图所示:    JDBC删除表数据记录的核心代码如下:String jdbcURL = "jdbc:mysql://lo...

JDBC操作表:JDBC查询表数据记录
Java编程

JDBC操作表:JDBC查询表数据记录

阅读(4741)

    操作数据库:mysql    操作目的:通过JDBC在数据库中查询某表的所有数据记录。    在查询记录之前,我们还是先看下当前的表记录,如下图所示:    方法一:通过名称方式查询数据记录    JDBC通过名称方式查询数据记录的核心代码如下:String jdbcURL = "...

JDBC操作表:JDBC添加单条数据并返回主键值
Java编程

JDBC操作表:JDBC添加单条数据并返回主键值

阅读(4200)

    操作数据库:mysql    操作目的:通过JDBC在数据库表中插入单条数据,并返回该数据自增长的ID值。    在通过JDBC向表中添加单条数据前,我们先来看下当前的数据库(前提是主键是自增长的方式),如果不知道怎么通过JDBC新建表,可以看之前的这篇文章:JDBC创建表    JDBC添加单条数据并...