- 博客(52)
- 资源 (2)
- 收藏
- 关注
原创 Spark内核架构--清晰图解
详细步骤:1.提交的jar包2.spark-submit提交到集群上运行3.在提交的机器上,运行sparkSubmit的main方法(通过反射的方式创建我们编写主类的实例对象,调用main方法,执行代码)4.当代码到SparkContext,开始初始化SparkContxt5.初始化SparkContext,创建DAGscheduler,TaskScheduler6、当T...
2019-04-18 14:19:06 365
原创 Streaming和Storm区别对比
一、 Spark Streaming与Storm的优劣分析这两个框架在实时计算领域中,都很优秀,只是擅长的细分场景并不相同。Spark Streaming仅仅在吞吐量上比Storm要优秀,但不是所有场景都那么注重吞吐量(集群的利用率比较高)事实上,Storm在实时延迟度上,比Spark Streaming就好多了,前者是纯实时,后者是准实时。而且,Storm的事务机制、健壮...
2019-04-18 14:13:04 630
原创 大数据实时计算原理--SparkStreaming
Spark Streaming,其实就是一种Spark提供的,对于大数据,进行实时计算的一种框架。它的底层,其实,也是基于我们之前讲解的Spark Core的。基本的计算模型,还是基于内存的大数据实时计算模型。而且,它的底层的组件或者叫做概念,其实还是最核心的RDD。 只不过,针对实时计算的特点,在RDD之上,进行了一层封装,叫做DStream。之前的Spark SQL,它...
2019-04-18 14:04:16 918 1
原创 Spark-SQL之每日top3热点搜索词案例统计
实现思路1、针对原始数据(HDFS文件),获取输入的RDD2、使用filter算子,去针对输入RDD中的数据,进行数据过滤,过滤出符合查询条件的数据。2.1 普通的做法:直接在fitler算子函数中,使用外部的查询条件(Map),但是,这样做的话,是不是查询条件Map,会发送到每一个task上一份副本。(性能并不好)2.2 优化后的做法:将查询条件,封装为Broadcast广播变...
2019-04-13 14:21:25 1227
原创 Spark-SQL性能优化
性能优化1、设置Shuffle过程中的并行度:spark.sql.shuffle.partitions(SQLContext.setConf())2、在Hive数据仓库建设过程中,合理设置数据类型,比如能设置为INT的,就不要设置为BIGINT。减少数据类型导致的不必要的内存开销。3、编写SQL时,尽量给出明确的列名,比如select name from students。不要写sel...
2019-04-13 14:18:43 1036
原创 Spark-SQL运行流程
Sprak SQL也是有lazy特性的,当你调用sql()执行SQL语句时,默认执行第一步-->>就是用SqlParser组件对SQL生成一个Unresolved LogicalPlan(调用了SqlParser的apply()方法,通过语法解析器,将SQL各部分组装成LogicalPlan,它是一课语法树---Tree) 然后将UL和SQLContext自身的实...
2019-04-13 14:16:27 818
原创 Spark-SQL之Hive,JDBC,JSON数据源
案例:利用json数据源执行sql -->> JSONDataSourcehttps://blog.csdn.net/S_Running_snail/article/details/89281218利用Hive数据源执行sql -->> HiveDataSourcehttps://blog.csdn.net/S_Running_snail/article/d...
2019-04-13 13:47:02 190
原创 Spark-SQL之JDBC数据源
JDBC数据源Spark SQL支持使用JDBC从关系型数据库(比如MySQL)中读取数据。读取的数据,依然由DataFrame表示,可以很方便地使用Spark Core提供的各种算子进行处理。创建方式:查询时连接Mysql:用Spark SQL处理JDBC中的数据是非常有用的。比如说,你的MySQL业务数据库中,有大量的数据,比如1000万,然后,你现在需要...
2019-04-13 13:35:56 463
原创 Spark-SQL之Hive数据源
Hive数据源Spark SQL支持对Hive中存储的数据进行读写。操作Hive中的数据时,必须创建HiveContext,而不是SQLContext。HiveContext继承自SQLContext,但是增加了在Hive元数据库中查找表,以及用HiveQL语法编写SQL的功能。除了sql()方法,HiveContext还提供了hql()方法,从而用Hive语法来编译sql。案例中讲解如下...
2019-04-13 13:31:56 454
原创 Spark-SQL之JSON数据源
JSON数据源Spark SQL可以自动推断JSON文件的元数据,并且加载其数据,创建一个DataFrame。可以使用SQLContext.read.json ()方法,针对一个元素类型为String的RDD,或者是一个JSON文件。但是要注意的是,这里使用的JSON文件与传统意义上的JSON文件是不一样的。每行都必须,也只能包含一个,单独的,自包含的,有效的JSON对象。不...
2019-04-13 13:26:10 321
原创 Spark-SQL之load和save操作
案例:Spark SQL的load,save的案例实战 -->> GenericLoadSaveload和save操作: 对于Spark SQL的DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作。load操作主要用于加载数据,创建出DataFrame;save操作,主要用于将DataFrame...
2019-04-13 13:07:19 471
原创 Spark-SQL之RDD转换为DataFrame
案例:(最下面)一、以编程方式动态指定元数据,将RDD转换为DataFrame -->> RDD2DataFrameProgrammatically二、使用反射的方式将RDD->>DataFrame -->> RDD2DataFrameReflectRDD转换为DataFrame之后的话,我们就可以直接针对HDFS等任何可以构建为RDD的数据,使...
2019-04-13 13:00:04 479
原创 scala--match模式匹配
scala中模式匹配,类似于Java中的swich case语法,即对一个值进行条件判断,然后针对不同的条件,进行不同的处理。但是Scala的模式匹配的功能比Java的swich case的功能要强大地多,Java的swich case语法只能对值进行匹配。但是Scala的模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配、对Array和List的元素情况进行匹配、对case class进...
2019-04-04 15:22:36 472
原创 scala--Map操作大全
object Map{ def main(args: Array[String]): Unit = { //引用可变,支持读写操作; var map = Map[String,String]("name" -> "song","age" -> "24","context1" -> "hello","context2" -> "world") ...
2019-04-04 15:16:22 276
原创 scala基础---数据结构
scala解释器:REPL:Read(取值)> Evaluation(求值)-> Print(打印)>Loop(循环)。 scala解器也被称为REPL,会快速编译 scala代码为字节码,然后交给JM来执行。1. 数据结构特点Scala同时支持可变集合和不可变集合,不可变集合从不可变,可以安全的并发访问。两个主要的包:不可变集合:scala.colle...
2019-04-04 14:58:30 355
原创 Spark中的CheckPoint是什么?功能是什么?
Checkpoint是什么?Checkpoint,是Spark提供的一个比较高级的功能。有的时候啊,比如说,我们的Spark应用程序,特别的复杂,然后呢,从初始的RDD开始,到最后整个应用程序完成,有非常多的步骤,比如超过20个transformation操作。而且呢,整个应用运行的时间也特别长,比如通常要运行1~5个小时。在上述情况下,就比较适合使用checkpoint功能。因为,对于特...
2019-03-10 11:03:14 1468
原创 有道云笔记快捷键大全+修改
有道云笔记快捷键设置介绍:您可以点击菜单-设置-快捷键来查看或修改下面是默认的快捷键:1.切换界面模块隐藏(快捷键:ctrl+←)显示(快捷键:ctrl+→);2.新建笔记(快捷键:ctrl+n);3.激活窗口(热键:ctrl+shfit+y);4.隐藏窗口的截屏方式(热键:ctrl+shfit+PrintScreen);5.同步(快捷键:F5);6.插入待办...
2019-03-09 17:48:31 16169 2
转载 scala apply方法
Scala比Java更面向对象的一个方面是Scala没有静态成员。替代品是,Scala有单例对象:singleton object。当单例对象与某个类共享同一个名称时,他被称作是这个类的伴生对象:companion object。你必须在同一个源文件里定义类和它的伴生对象。类被称为是这个单例对象的伴生类:companion class。类和它的伴生对象可以互相访问其私有成员。定义单例对象不...
2019-02-27 20:21:56 209
原创 Scala-Java实现Action--详解
本文用了Scala和Java两种语言书写,以便于理解主要涉及:1、reduce:2、collect:3、count:4、take:5、saveAsTextFile:6、countByKey:import java.util.Arrays;import java.util.List;import java.util.Map;import org.apache...
2018-12-20 20:49:29 227
原创 常用transformation详解
本文对于Spark中常用的transformation算子进行了实例详细讲解,注释上每一步写的很清晰并且分别以Java和Scala两种形式展现主要涉及:1、map:将集合中每个元素乘以22、filter:过滤出集合中的偶数3、flatMap:将行拆分为单词4、groupByKey:将每个班级的成绩进行分组5、reduceByKey:统计每个班级的总分6、sortBy...
2018-12-20 20:40:25 776
转载 map和flatmap的区别---scala
看下面的例子:abstract class List[T]{ def map[U](f: T => U): List[U] = this match { case first :: last = f(first) :: last.map(f) case Nil = Nil } def flatMap[U](f: T => List[U]): List[...
2018-12-19 14:10:38 322
原创 scala-wordcount详解
用scala语言写wordcount,主要也就那么几个流程,和mapreduce的思想步骤还是差不多的。下面我们来详细讲解一下:先看一下代码import org.apache.spark.{SparkConf, SparkContext}/** * @Date: 2018/12/17 9:03 */object wc_scala { def main(args: Arr...
2018-12-18 15:58:45 916
原创 scala隐式转换--案例详解
一、什么是隐式转换? 隐式转换将某种类型的对象转换成其他类型的对象。隐式转换可以手动指定 其最核心的就是定义隐式转换函数,即implicit conversion function。定义的隐式转换函数,只要在编写的程序内引入,就会被Scala自动使用。Scala会根据隐式转换函数的签名,在程序中使用到隐式转换函数接收的参数类型定义的对象时,会自动将其传入隐式转换函数,转换为另外...
2018-12-14 16:40:30 423
原创 scala模式匹配+案例教学
scala中模式匹配,类似于Java中的swich case语法,即对一个值进行条件判断,然后针对不同的条件,进行不同的处理。但是Scala的模式匹配的功能比Java的swich case的功能要强大地多,Java的swich case语法只能对值进行匹配。但是Scala的模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配、对Array和List的元素情况进行匹配、对case class进...
2018-12-14 12:18:00 410
原创 Scala自定义函数写法
1.规范化写法,scala 函数的返回值是最后一行代码;def addInt(a:Int,b:Int) : Int = {var sum : Int = a + bsum}Unit,是Scala语言中数据类型的一种,表示无值,相当于java中的Void,用作不返回任何结果的方法;def returnUnit(): Unit = {println("nothing!...
2018-12-14 11:12:33 1293
原创 五分钟明白---java 匿名内部类
匿名内部类首先要明白匿名,匿的是谁的名-----子类对象或实现类对象。也就是说匿名内部类就是父类的子类对象或者是接口的实现类对象我先介绍格式再用一个例子你就明白了两种格式:格式一:new 类A(){方法体}此时产生的是类A的子类对象;格式二:new 接口A(){方法体}此时产生的是接口A的实现类对象;一个简单的例子就让你明白 首先是我...
2018-12-12 11:07:25 311
转载 Redis常用命令--五大数据类型
几个基本的命令:exists key 测试指定key是否存在keys * 查询所有的keyexpire key seconds 为key指定过期时间ttl key ...
2018-11-27 19:56:50 274
转载 Redis端口--6379 的特殊含义
前几天Redis作者antirez同学在twitter上说将在下一篇博文中向大家解释为什么他选择6379作为默认端口号。而现在这篇博文出炉,在解释了Redis的LRU机制之后,如期向大家解释了采用6379作为默认端口的原因。6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。MERZ长期以来被antirez及其朋友当作愚蠢的代名词。 原文:...
2018-11-27 18:10:14 8949
原创 ACID和CAP&BASE
1、数据库事务正确执行的四个基本要素: ACID(传统数据库)这是传统数据库的四个要素,缺一不可原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这...
2018-11-26 19:38:32 192
转载 Hbase基本架构原理
1. HBase框架简单介绍 HBase是一个分布式的、面向列的开源数据库,它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。HBase使用和 BigTable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列,一个或多个列组成一个ColumnFamily,一个Fmaily下的列位于一...
2018-11-25 15:59:35 265
转载 spark可以替代hadoop吗?
我经常会从客户或者网上听到这个问题,尤其是最近几年。那么关于spark哪些被我们神化了,哪些又是真实的,以及它在“大数据”的生态系统中又是怎样的? 说实话,其实我把这个问题作为标题是有问题的,但是我们经常会这样问。Hadoop并不是一个单独的产品而是一个生态系统,而spark也是一样的。下面让我们来一个一个解释。目前Hadoop生态系统主要包括:HDFS—Hadoop分布式文件系统。它是一...
2018-11-24 08:26:16 1806
原创 Hive中join操作及用法---详解
实验准备数据首先要准备两个文档,用来下面做join操作>>a.txt1,a2,b3,c4,d7,y8,u>>b.txt2,bb3,cc7,yy9,pp 建表:create table a(id int,name string)row format delimited fields termin...
2018-11-21 09:09:37 1224
转载 Hive中order by,sort by, distribute by, cluster by区别,用法详解
1. order by Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。 这里跟传统的sql还有一点...
2018-11-20 15:15:45 463 2
原创 Hadoop常用端口号
Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以及HTTP访问。而随着Hadoop周边组件的增多,完全记不住哪个端口对应哪个应用,特收集记录如此,以便查询。 这里包含我们使用到的组件:HDFS, YARN, HBase, Hive, ZooKeeper:组件 节点 默认端口 配置 用途说明...
2018-11-20 14:41:11 1502
原创 Hive数据存储
1、Hive中所有的数据包存储在HDFS中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFile等)2、只需要在创建表的时候告诉Hive 数据中的列分隔符和行分隔符,Hive就可以解析数据。(不懂hive中数据分割符的可以看我的这一篇:https://blog.csdn.net/S_Running_snail/article/details/8...
2018-11-19 20:10:17 305
原创 hive指定数据切分格式--row format
创建表时需要指定数据切分格式,会用到ROW FORMAT关键字。下面是java集合框架图,存入hive的数据就是集合中的某一种所以在创建标的时候就可以指定分隔符:第一个--<字段>,由[ , ]分割----------FIELDS TERMINATED BY ',' 第二个是--<Array形式>,元素与元素之间由[ - ]分割----------COLL...
2018-11-19 18:59:37 3560
原创 Hadoop生态圈组件
1、HDFS(hadoop分布式文件系统)是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。client:切分文件,访问HDFS,与那么弄得交互,获取文件位置信息,与DataNode交互,读取和写入数据。namenode:主节点,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户 端请求。DataNode:slave节点,存...
2018-11-17 21:05:22 812
转载 Hadoop2.6 ---- MapReduce工作原理
MapReduce得整个工作原理下面对上面出现的一些名词进行介绍ResourceManager:是YARN资源控制框架的中心模块,负责集群中所有的资源的统一管理和分配。它接收来自NM(NodeManager)的汇报,建立AM,并将资源派送给AM(ApplicationMaster)。NodeManager:简称NM,NodeManager是ResourceManager在每台机器的...
2018-11-14 19:13:14 180
转载 排序算法--冒泡,选择,插入
1、冒泡排序 冒泡排序是一种极其简单的排序算法,也是我所学的第一个排序算法。它重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下:比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。 对每一对相邻元素作同样...
2018-11-14 17:24:27 158
原创 数据仓库和数据库的区别
数据库:是一种逻辑概念,通过数据库软件来实现存放数据。数据库由很多表组成,表是二维的,一张表里面有很多字段。字段一字排开,对数据就一行一行的写入表中。数据库的表,在于能够用二维表现多维的关系。如:oracle、MySQL、SQL Server等。 数据仓库:从逻辑上理解,数据库和数据仓库没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大德多。...
2018-11-13 21:57:57 855
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人