自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 Spark Streaming中的Receiver方式和直连方式

Spark Streaming从Kafka中接受数据的时候有两种方式,一种是使用Receiver的老方法,另一种是使用直连的方法1.Receiver方式Receiver是使用Kafka高级消费者API实现的,与所有接收器一样,从Kafka通过Receiver接收的数据存储在Spark执行器中,然后由Spark Streaming启动的作业处理数据但是,在默认配置下,此方法可能会在失败时...

2018-10-31 11:45:01 2201 1

原创 Spark Streaming中的基本抽象DStream

DStream是Spark Streaming提供的基本抽象,它表示连续的数据流,可以是从源接收的输入数据流,也可以是通过转换输入流生成的已处理数据流。在内部,DStream由一系列连续的RDD表示,这是Spark对不可变分布式数据集的抽象,DStream中的每个RDD都包含来自特定时间间隔的数据,对DStream进行操作就是对RDD进行操作,如下图所示举个例子来说明一下,就拿前面一直在用...

2018-10-31 11:05:23 918

原创 可以持续累加Kafka中数据的Spark Streaming

在前面的案例中已经将Spark Streaming整合了,但是你会发现,那个程序只能实时计算当前输入的一条数据,并不能做到累加,所以下面的代码就是解决这个问题的,我们依然以词频统计为例1.首先放出代码:package cn.ysjhimport org.apache.spark.{HashPartitioner, SparkConf}import org.apache.spark....

2018-10-30 18:19:24 165

原创 Spark Streaming整合Kafka

前面的文章 第一个Spark Streaming案例程序 中使用socket server来写入数据,可以很明显的看出使用每次打印出的结果都只是当前输入的,并不能累加之前发的数据一起计算,多个程序一起读取数据的话,也会出现重复读取数据的情况,而且如果机器出现故障,也不能知道数据读取到哪了,所以实际中使用肯定不会使用socket,这时候就要使用之前已经学习过的Kafka了,Kafka有很明显的优势,...

2018-10-29 20:27:14 212

原创 第一个Spark Streaming案例程序

前面的文章大概的介绍了Spark Streaing流式处理框架,说的通俗点,实际上就是在Spark Core的基础上进行了封装,然后将小批次的数据进行处理,处理完了进程并不会停止,而是会一直存在,这样只要有数据进来,就会进行处理,从而实现了流式处理下面就来一个实例进行感受:这里选择使用Linux下的nc工具来产生socket数据,然后Spark Streaming从这个socket ser...

2018-10-29 18:32:12 229

原创 实时计算Spark Streaming初识

Spark Streaming是核心Spark API的扩展,可实现实时数据流的可扩展,高吞吐量,容错流处理。数据可以从许多来源(如Kafka,Flume,Kinesis或TCP套接字)中获取,并且可以使用以高级函数表示的复杂算法进行处理map,例如reduce,join和window。最后,处理后的数据可以推送到文件系统,数据库和实时仪表板。实际上,也可以在数据流上应用Spark的机器学习和图形...

2018-10-28 09:20:30 414

原创 IntelliJ IDEA常用配置

IntelliJ IDEA最大的转变就在于工作空间概念的转变,取消了工作空间的概念,并且在IDEA当中,Project和Module是作为两个不同的概念,简单来说,IDEA不需要设置工作空间,因为每一个Project都具备一个工作空间,对于每一个IDEA的项目工程(Project)而言,它的每一个子模块(Module)都可以使用独立的JDK和MAVEN。这对于传统项目迈向新项目的重构添加了极大的便...

2018-10-25 17:34:14 202

原创 SparkSQL的CSV数据源和Parquet数据源

1.CSV数据源package cn.ysjh0014.SparkSqlimport org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}object SparkSqlCsv { def main(args: Array[String]): Unit = { val session: SparkSes...

2018-10-25 14:15:16 497 1

原创 SparkSQL的Json数据源

SparkSql可以读取Json类型的文件代码示例:package cn.ysjh0014.SparkSqlimport org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}object SparkSqlJson { def main(args: Array[String]): Unit = { ...

2018-10-24 22:03:44 184

原创 SparkSQL程序报错:(null) entry in command string: null chmod 0644

之前在写将mysql数据库中的数据取出然后以Json格式写入文件中的时候报 (null) entry in command string: null chmod 0644 错误,找了好久终于在网上找到解决办法我的程序是在windows下边跑的,没有在集群上解决方法:在 https://github.com/SweetInk/hadoop-common-2.7.1-bin 中下载hado...

2018-10-24 21:17:02 3896

原创 SparkSQL写入多种文件格式

需求:将数据库中的数据读取出来并以text  json  csv  parquet四种格式写入到本地文件或者hdfs中csv格式:能够以excel的形式打开 代码实现:package cn.ysjh0014.SparkSqlimport java.util.Propertiesimport org.apache.spark.sql._object SparkSqlJd...

2018-10-24 21:11:27 2048

原创 SparkSQL的JDBC数据源

通过JDBC连接到关系型数据库,然后可以读取表的信息以及表中的数据,既可以将结果查询展示出来,也可以将查询到的结果重新写入到数据库中直接上代码:package cn.ysjh0014.SparkSqlimport java.util.Propertiesimport org.apache.spark.sql._object SparkSqlJdbc { def main...

2018-10-24 10:59:53 295

原创 Spark2.0新特性

1.更简单支持标准的SQL和简化的APISpark 2.0依然拥有标准的SQL支持和统一的DataFrame/Dataset API,但我们扩展了Spark的SQL 性能,引进了一个新的ANSI SQL解析器并支持子查询,Spark 2.0可以运行所有的99个TPC-DS的查询,这需要很多的SQL:2003个功能在编程API方面,我们已经简化了API统一Scala/Java下的Da...

2018-10-23 21:54:55 795

原创 SparkSQL中自定义聚合(UDAF)函数

在学习Hive的时候我们已经了解到当内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user defined function)用户自定义函数类别分为以下三种:1).UDF:输入一行,返回一个结果(一对一),在上篇案例 使用SparkSQL实现根据ip地址计算归属地二 中实现的自定义函数就是UDF,输入一个十进制的ip地址,返回一个省份2).UDTF:输入...

2018-10-23 20:29:05 3047

原创 使用SparkSQL实现根据ip地址计算归属地二

在使用SparkSQL实现根据ip地址计算归属地一 中虽然实现了最终目的,但是当数据量大的时候Join的代价是很大的,因为其他机器上都没有这个ip地址规则,所以要想进行比较只能从其他机器上拉过来再进行比较,那么如何进行优化呢,我们通过之前的使用SparkCore中的RDD的操作方式很容易就会想到将ip地址规则给缓存起来,即在每台机器上都有IP地址规则,这样就不用从其他机器上拉取了,也就减少了大量的...

2018-10-22 18:08:40 599

原创 在Docker中搭建LAMP环境

如果按照传统思想,搭建LAMP环境肯定是一个一个安装,但是在Docker中不一样,可以进行一键安装,不需要复杂的操作1.下载LAMP镜像docker pull tutum/lamp2.生成容器docker run --name=ys --hostname=ys -i -t -p 80 -p 3306 tutum/lamp /bin/bash这时候就安装结束了,在ys这个容器...

2018-10-20 11:02:35 1049

原创 Spark是否能替代Hive

在实际生产环境中已经形成了离线以Hive为主,Spark为辅, 实时处理用Flink的大数据架构体系及Impala, Es,Kylin等应用查询引擎但是有很多学习Spark的程序员普遍认为Spark必然会替代Hive成为新的一代大数据仓库标准同时,培训市场也出现了Hive已经落后,学习大数据只要学习Spark相关言论但结合实际工作的情况来看,这类说法和实际情况并不相符,本文针对数据仓库...

2018-10-20 09:45:00 10274

原创 使用SparkSQL实现根据ip地址计算归属地一

之前使用过RDD实现过这个案例,如果不知道可以去参考我写的博文,这里要实现的就是在之前那个基础上进行修改的,具体实现思路就是将ip地址规则和访问日志文件中的数据进行整理然后转换成DataFrame之后注册成表,然后写Sql语句进行Join操作具体代码实现:package cn.ysjh0014.SparkSqlimport cn.ysjh0014.TestIpimport org...

2018-10-19 18:06:53 704

原创 SparkSQL2.x中的join操作

前面讲了各种各样的案例,总的来说就是SparkSQL1.x和SparkSQL2.x的不同编程方式,以及创建DataFrame的不同方式和使用Sql,DataFrame API编程的方式但是上边的案例中都是一张表,没有进行多表的联合,即使用join,下面就来使用代码详细的理解join如何进行操作先上代码:package cn.ysjh0014.SparkSqlimport org....

2018-10-19 17:24:46 697

原创 使用SparkSQL2.x的SQL方式实现WordCount

代码里面有很详细的说明代码实现:package cn.ysjh0014.SparkSqlimport org.apache.spark.sql.{DataFrame, Dataset, SparkSession}object SparkSQLWordCount { def main(args: Array[String]): Unit = { //创建SparkS...

2018-10-18 12:19:55 664

原创 SparkSQL入门案例之四(SparkSQL2.x)

前几个案例讲的都是都是SparkSQL1.x的编程,所以这里就讲SparkSQL2.x的编程直接上代码,这里的代码是在前边案例的基础上的:package cn.ysjh0014.SparkSqlimport org.apache.spark.SparkConfimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.ty...

2018-10-18 11:55:10 372

原创 SparkSql入门案例之三(Spark1.x)

案例一和案例二中是将RDD转换成DataFrame的方法不同,但是在转换后都是使用SQL的方式来编程的,这里就用DataFrame API(DSL   特定领域编程语言)的方式来实现直接上代码:package cn.ysjh0014.SparkSqlimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.types._...

2018-10-18 11:26:03 317

原创 SparkSQL入门案例之二(SparkSQL1.x)

SparkSQL入门案例一中的思路主要是:1).创建SparkContext2).创建SQLContext3).创建RDD4).创建一个类,并定义类的成员变量5).整理数据并关联class6).将RDD转换成DataFrame(导入隐式转换)7).将DataFrame注册成临时表8).书写SQL(Transformation)9).执行Action还有另外一种思路和写法:...

2018-10-17 20:01:52 138

原创 SparkSQL入门案例之一(SparkSQL1.x)

SparkSQL 1.x和2.x的编程API有一些变化,企业中都有使用,所以这里两种方式都将使用案例进行学习先使用SparkSQL1.x的案例开发环境跟之前开发SparkCore程序的一样,IDEA+Maven+Scala1.导入SparkSQL的pom依赖在之前的博文  Spark案例之根据ip地址计算归属地中的pom依赖中加上下面的依赖即可<dependency&g...

2018-10-17 19:10:33 256

原创 使用IDEA+Maven+jersey构建RESTful Web Services入门案例

1.首先在WEB项目2.创建好之后点击项目右键,点Add Frameworks Support给项目添加Maven框架3.创建好之后的项目结构如下图所示4.添加pom.xml依赖<dependencies> <dependency> <groupId>org.glassfish.jersey.cont...

2018-10-17 12:59:38 1566

原创 Spark SQL概述

1.什么是Spark SQLSpark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用,将SQL解析成特殊的RDD(DataFrame),然后在Spark集群上运行2.为什么要学习Spark SQL我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写Map...

2018-10-17 11:10:53 351

原创 Linux命令之vi编辑器命令详解

1.vi编辑器有三种模式: 插入模式   命令模式    转义模式2.单文本常用命令详解(vi 文件名)  命令分类 命令模式下输入 功能说明 进入插入模式 i 在当前光标之前插入 a 在当前光标之后插入 o ...

2018-10-14 20:26:36 251

原创 Spark案例之根据ip地址计算归属地四

之前案例三中的ip地址规则是在Driver端的机器磁盘中存储着的,但是现在如果实在hdfs中存储着的又该如何实现呢首先要分析清楚才能实现,存储在hdfs中并不像想象中的那么容易,首先代码实在Driver端写的,在Driver端写从hdfs中取出ip地址规则的代码会触发action,然后生成Task,分发到Executor端执行,因为日志文件比较大,所以存储在hdfs中的时候是会分区存储的,这样...

2018-10-14 19:23:48 410

原创 Spark案例之根据ip地址计算归属地三

案例二中已经详细的通过图和介绍详细的说明了在Spark集群中根据ip地址计算归属地并将结果保存到mysql数据库中的运行流程,下面就来做具体的实现现在的环境就如案例二中说的一样,ip地址规则是保存在Driver端的机器磁盘中,而日志文件是保存在hdfs中,所以现在需要首先在Driver端拿到ip地址规则,然后通过广播变量使Executor端能够拿到ip地址规则,然后取出hdfs中的日志文件,将...

2018-10-14 19:07:56 323

原创 Spark案例之根据ip地址计算归属地二

之前的是单机版的根据ip地址计算归属地,当数据量小的时候还可以,但是在大数据实际生产中是不行的,必须将它改造成一个Spark程序,然后在Spark集群上运行Spark程序和单机版的程序不一样,下面来仔细分析一下Spark程序的运行流程首先是一个Spark集群,集群中有Master和Worker,启动Master和Worker之后,Worker会和Master建立连接并向Master发送...

2018-10-13 15:51:04 446

原创 Spark案例之根据ip地址计算归属地一

1.需求根据访问日志中的ip地址计算出访问者的归属地,并且按照省份,计算出访问次数,最后将计算好的结果写入到Mysql中2.思路分析  1)整理访问日志中的数据,切分出ip字段,然后将ip字段转换成十进制  2)加载ip地址的规则,取出有用的字段,然后将数据缓存到内存中(Executor中的内存)  3)将访问日志中的ip与ip地址的规则进行匹配(使用二分查找进行匹配)  ...

2018-10-13 08:12:44 929

原创 在IDEA中使用Scala语言编写WordCount程序

1.使用IDEA创建Maven项目2.导入pom.xml文件<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> ...

2018-10-11 20:24:40 2136

原创 在Spark Shell中编写WordCount程序

Spark Shell是一个交互式的命令行,里面可以写Spark程序(Scala语言),也是一个客户端,用于提交Spark程序1.启动Spark Shellbin/spark-shell 上边是没有指定Master地址的启动方式,启动后用的是spark的local模式运行的,是模拟了spark集群运行的过程bin/spark-shell --master spark://c...

2018-10-11 12:32:19 3190

原创 执行第一个Spark程序

我们这里使用官方的Spark自带的一个程序来体验一下Spark的运行Spark自带的例子是利用蒙特·卡罗算法求PI在Spark目录下执行下面命令bin/spark-submit \>--master spark://cdh0:7077 \>--class org.apache.spark.examples.SparkPi \examples/jars/spark-e...

2018-10-10 20:22:01 750

原创 Spark高可用集群安装

在之前的文章Spark集群安装中,已经详细的介绍了Spark分布式集群的安装方法Spark集群启动后执行jps命令,主节点上有Master进程,其他子节点上有Work进行,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠具体实现步骤如下:1.Spark集群规划这里有三台主机:    cd...

2018-10-10 19:07:15 384

原创 Spark集群安装搭建

1.下载SparkSpark是一个独立的内存计算框架,如果不考虑存储的话,可以完全独立运行,因此这里就只安装Spark集群Spark下载地址:       http://spark.apache.org/downloads.html选择好Spark和Hadoop的版本之后就可以下载了,从2.0版本开始,Spark默认使用Scala2.112.上传解压将Spark的压缩包上传...

2018-10-08 20:44:16 353

原创 Spark的特点

1.快没有接触Spark之前就听说Spark快,比Hadoop快很多很多与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上,Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流2.易用Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用,而...

2018-10-08 19:46:00 562

原创 Spark概述

1.什么是SparkSpark官方网站:       http://spark.apache.org/Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spa...

2018-10-08 19:39:39 104

原创 Scala模式匹配 match case

1.匹配字符串/类型/守卫val arr = Array("YoshizawaAkiho", "YuiHatano", "AoiSola")val i = Random.nextInt(arr.length)println(i)val name = arr(i)println(name)name match {case "YoshizawaAkiho" => p...

2018-10-05 16:39:32 3938

原创 Scala面向对象二

1.抽象类在Scala 中,使用 abstract 修饰的类称为抽象类, 在抽象类中可以定义属性、未实现的方法和具体实现的方法abstract class Animal {println("Animal's constructor ....")** 定义一个 name 属性val name: String = "animal"** 没有任何实现的方法 def slee...

2018-10-05 16:28:13 154

空空如也

空空如也

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

TA关注的人

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