![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
lijie_cq
It's never too old to learn
展开
-
Spark中的checkpoint作用与用法
checkpoint的意思就是建立检查点,类似于快照,例如在spark计算里面 计算流程DAG特别长,服务器需要将整个DAG计算完成得出结果,但是如果在这很长的计算流程中突然中间算出的数据丢失了,spark又会根据RDD的依赖关系从头到尾计算一遍,这样子就很费性能,当然我们可以将中间的计算结果通过cache或者persist放到内存或者磁盘中,但是这样也不能保证数据完全不会丢失,存储的这个内存出问题原创 2017-07-27 23:19:11 · 35079 阅读 · 7 评论 -
Spark中cache和persist的作用以及存储级别
在Spark中有时候我们很多地方都会用到同一个RDD, 按照常规的做法的话,那么每个地方遇到Action操作的时候都会对同一个算子计算多次,这样会造成效率低下的问题例如:val rdd1 = sc.textFile("xxx")rdd1.xxxxx.xxxx.collectrdd1.xxx.xxcollect上面就是两个代码都用到了rdd1这个RDD,如果程序执行的话,那么sc.textFile原创 2017-07-27 19:12:20 · 34478 阅读 · 0 评论 -
Flume直接到SparkStreaming的两种方式
一般是flume->kafka->SparkStreaming,如果非要从Flume直接将数据输送到SparkStreaming里面有两种方式,如下:第一种:Push推送的方式程序如下:package cn.lijieimport org.apache.log4j.Levelimport org.apache.spark.streaming.flume.FlumeUtilsimport or原创 2017-08-04 15:07:45 · 3118 阅读 · 0 评论 -
spark通过ip计算IP所在省份,以及广播变量的使用
其中需要一个IP段对应的码表内容大体如下(已经上传到csdn,下载地址:点击跳转下载页面):1,3708713472,3708715007,"河南省","信阳市","联通","221.14.122.0","221.14.127.255"2,3708649472,3708813311,"河南省",,"联通","221.13.128.0","221.15.255.255"3,3720390656,3原创 2017-07-26 16:03:44 · 1848 阅读 · 1 评论 -
RDD和Mysql互相操作
示例代码如下,记录下:package cn.lijie.businessimport java.sql.{Connection, DriverManager, PreparedStatement}import org.apache.spark.rdd.JdbcRDDimport org.apache.spark.{SparkConf, SparkContext}/** * Created wi原创 2017-07-26 17:09:36 · 1387 阅读 · 0 评论 -
spark的自定义partitioner
在hadoop的mapreduce中默认patitioner是HashPartitioner,我们可以自定义Partitioner可以有效防止数据倾斜, 在Spark里面也是一样,在Spark里也是默认的HashPartitioner, 如果自己想自己定义Partitioner继承org.apache.spark里面的Partitioner并且重写它里面的两个方法就行了.模板如下://只需要继承原创 2017-07-26 11:00:30 · 4186 阅读 · 3 评论 -
SparkStreaming计算WordCount简单示例
在之前的Spark程序中,我们是对RDD进行各种操作,SparkStreaming我们对DStream操作,其中DStream是discretized stream(离散流)的简写,官网对他的解释是:DStreams can be created either from input data streams from sources such as Kafka, Flume, and Kinesis原创 2017-08-02 15:43:48 · 3812 阅读 · 0 评论 -
spark的算子Tranformation和Action的使用demo
在spark中有两种算子:Tranformation和ActionTranformation: 中文为转换,他会延迟加载,当你执行了Tranformation的算子,spark并不会立即进行计算,而是会记录计算的元数据,比如你执行如下操作:sc.textFile("hdfs://cdhnode1:8030/wordcount")spark并不会把数据读入到RDD中,而是记录在那个地方读取,当遇到A原创 2017-04-09 19:16:46 · 1547 阅读 · 1 评论 -
SparkStreaming算子reduceByKeyAndWindow的使用
reduceByKeyAndWindow这个算子也是lazy的,它用来计算一个区间里面的数据,如下图:截图自官网,例如每个方块代表5秒钟,上面的虚线框住的是3个窗口就是15秒钟,这里的15秒钟就是窗口的长度,其中虚线到实线移动了2个方块表示10秒钟,这里的10秒钟就表示每隔10秒计算一次窗口长度的数据举个例子: 如下图我是这样理解的:如果这里是使用窗口函数计算wordcount 在第一个窗口(虚线窗原创 2017-08-08 15:00:36 · 11848 阅读 · 0 评论 -
sparksql 简单使用
第一种: 通过case classpackage cn.lijieimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.sql.SQLContext/** * Created by jie on 2017/7/31. */object SparkSql01 { def main(args:原创 2017-07-31 23:01:53 · 1000 阅读 · 0 评论 -
使用eclipse开发spark程序 wordcount 事例
建立一个maven工程,把src下的java文件夹改为scala或者新添加scala文件夹项目结构如下:pom配置文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven原创 2017-04-09 20:25:02 · 1040 阅读 · 0 评论 -
Kafka到SparkStreaming的两种方式
1.通过Receiver,这个是个高级API,不需要自己去维护offset主要代码:package cn.lijieimport org.apache.log4j.Levelimport org.apache.spark.streaming.kafka.KafkaUtilsimport org.apache.spark.streaming.{Seconds, StreamingContext}原创 2017-08-07 14:47:03 · 3776 阅读 · 0 评论