摘要:
一、分区的概念 分区是RDD内部并行计算的一个计算单元,RDD的数据集在逻辑上被划分为多个分片,每一个分片称为分区,分区的格式决定了并行计算的粒度,而每个分区的数值计算都是在一个任务中进行的,因此任务的个数,也是由RDD(准确来说是作业最后一个RDD)的分区数决定。 二、为什么要进行分区 数据分区, 阅读全文
posted @ 2019-09-08 23:40
花未全开*月未圆
阅读(277)
评论(0)
推荐(0)
摘要:
一、RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执 阅读全文
posted @ 2019-09-08 23:25
花未全开*月未圆
阅读(295)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2019-09-08 23:06
花未全开*月未圆
阅读(4756)
评论(0)
推荐(0)
摘要:
object BasicSQLTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("BasicSQLTest") .getOrCreate() val sessionDf = spark.read.parqu... 阅读全文
posted @ 2019-09-08 23:05
花未全开*月未圆
阅读(258)
评论(0)
推荐(0)
摘要:
object CatalogApiTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("CatalogApiTest") .getOrCreate() //查看spark sql应用用的是哪一种catalog... 阅读全文
posted @ 2019-09-08 23:04
花未全开*月未圆
阅读(1055)
评论(0)
推荐(0)
摘要:
object ParquetFileTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("ParquetFileTest") .getOrCreate() //1: 将json文件数据转化成parquet文件数据 val df = spark.read.json(s" 阅读全文
posted @ 2019-09-08 23:03
花未全开*月未圆
阅读(557)
评论(0)
推荐(0)
摘要:
import com.twq.dataset.Utils._ import org.apache.spark.sql.{SaveMode, SparkSession} object FilePartitionTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("Fil 阅读全文
posted @ 2019-09-08 23:02
花未全开*月未圆
阅读(1320)
评论(0)
推荐(0)
摘要:
object JdbcDatasourceTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("JdbcDatasourceTest") .master("local") .getOrCreate() ... 阅读全文
posted @ 2019-09-08 23:01
花未全开*月未圆
阅读(869)
评论(0)
推荐(0)
摘要:
object CSVFileTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("CSVFileTest") .master("local") .getOrCreate() import spar... 阅读全文
posted @ 2019-09-08 23:00
花未全开*月未圆
阅读(4856)
评论(0)
推荐(1)
摘要:
阅读全文
posted @ 2019-09-08 22:59
花未全开*月未圆
阅读(1331)
评论(0)
推荐(0)
摘要:
数据源-基本操作load和save 阅读全文
posted @ 2019-09-08 22:58
花未全开*月未圆
阅读(2244)
评论(0)
推荐(0)
摘要:
Dataset创建 DataFrame创建 RDD&Dataset&DataFrame的转换 schema的定义以及复杂数据类型的用法 阅读全文
posted @ 2019-09-08 22:54
花未全开*月未圆
阅读(388)
评论(0)
推荐(0)
摘要:
一、Flume简介 flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。 但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核 阅读全文
posted @ 2019-09-08 21:52
花未全开*月未圆
阅读(265)
评论(0)
推荐(0)
摘要:
Spark Streaming通过push模式和pull模式两种模式来集成Flume push模式:Spark Streaming端会启动一个基于Avro Socket Server的Receiver来接收Flume中的avro sink发来的数据,这个时候Flume avro sink就是作为客户 阅读全文
posted @ 2019-09-08 21:42
花未全开*月未圆
阅读(472)
评论(0)
推荐(0)
摘要:
Kafka是一个分布式的Streaming处理平台,Kafka可以用于数据库中数据的导入导出,也可以用于实时流的处理,但是Kafka最核心的功能就是作为分布式的消息中间件。 Kafka集群是由多个Broker Server组成的,消息的发送者称为Producer,消息的消费者称为Consumer,t 阅读全文
posted @ 2019-09-08 21:39
花未全开*月未圆
阅读(1556)
评论(0)
推荐(0)
摘要:
将数据保存到MySQL中 import java.sql.DriverManager import org.apache.spark.storage.StorageLevel import org.apache.spark.streaming.{Seconds, StreamingContext} import org.apache.spark.{SparkConf, SparkContext} 阅读全文
posted @ 2019-09-08 20:45
花未全开*月未圆
阅读(179)
评论(0)
推荐(0)
摘要:
创建多个接收器 多个端口启动多个receiver在其他Executor,接收多个端口数据,在吞吐量上提高其性能。代码上: Receiver数据块的数量 数据一条一条接收,以一个块一个块的方式存储在内存中,多少条记录组成一个block块: batchInterval : 触发批处理的时间间隔 bloc 阅读全文
posted @ 2019-09-08 20:44
花未全开*月未圆
阅读(260)
评论(0)
推荐(0)
摘要:
数据处理的并行度 1、BlockRDD的分区数 (1)通过Receiver接受数据的特点决定 (2)也可以自己通过repartition设置 2、ShuffleRDD的分区数 (1)默认的分区数为spark.default.parallelism(core的大小) (2)通过我们自己设置决定 val 阅读全文
posted @ 2019-09-08 20:43
花未全开*月未圆
阅读(271)
评论(0)
推荐(0)
摘要:
Spark Streaming 官网参考:http://spark.apache.org/docs/latest/streaming-programming-guide.html 一、Spark Streaming的原理 Spark Streaming应用也是Spark应用,Spark Stream 阅读全文
posted @ 2019-09-08 20:41
花未全开*月未圆
阅读(310)
评论(0)
推荐(0)
摘要:
spark.streaming从不稳定到稳定状态,解决数据量接收数据时突然变大,使得无法及时处理数据,稳定性得到保证 开启方式: spark.streaming.backpressure.enabled = true Elastic Scaling(资源动态分配) Spark Batch Appli 阅读全文
posted @ 2019-09-08 20:39
花未全开*月未圆
阅读(219)
评论(0)
推荐(0)
摘要:
流计算语义(Semantics)的定义 每一条记录被流计算系统处理了几次 有三种语义: 1、At most once 一条记录要么被处理一次,要么没有被处理 2、At least once 一条记录可能被处理一次或者多次,可能会重复处理 3、Exactly once 一条记录只被处理一次 Zero 阅读全文
posted @ 2019-09-08 20:36
花未全开*月未圆
阅读(1257)
评论(0)
推荐(0)
摘要:
Spark Streaming的容错包括了三个地方的容错: 1、Executor失败容错:Executor的失败会重新启动一个新的Executor,这个是Spark自身的特性。如果Receiver所在的Executor失败了,那么Spark Streaming会在另外一个Executor上启动这个R 阅读全文
posted @ 2019-09-08 20:35
花未全开*月未圆
阅读(2608)
评论(0)
推荐(0)
摘要:
Spark Streaming应用也是Spark应用,Spark Streaming生成的DStream最终也是会转化成RDD,然后进行RDD的计算,所以Spark Streaming最终的计算是RDD的计算,那么Spark Streaming的原理当然也包含了Spark应用通用的原理。Spark 阅读全文
posted @ 2019-09-08 20:28
花未全开*月未圆
阅读(394)
评论(0)
推荐(0)
摘要:
NetworkWordCount ☛ DStream(Discretized Stream 离散化流)特点 一个依赖父DStream的列表(依赖利于容错) 一个生成RDD的时间间隔(Batch Interavl) 一个生成RDD的函数(DStream 到 RDD 的转换) 1、Spark Strea 阅读全文
posted @ 2019-09-08 20:26
花未全开*月未圆
阅读(282)
评论(0)
推荐(0)
摘要:
结果保存到HDFS中 将数据保存到MySQL中 阅读全文
posted @ 2019-09-08 20:17
花未全开*月未圆
阅读(279)
评论(0)
推荐(0)
摘要:
Basic相关API Join相关API TransformAPI WindowAPI batch interval - DStream产生的间隔,由StreamingContext指定 (这里设置为1s),控制RDD分区 window length - 窗口的长度,即一个窗口包含的RDD的个数 ( 阅读全文
posted @ 2019-09-08 20:16
花未全开*月未圆
阅读(490)
评论(0)
推荐(0)
摘要:
QueueStream(主要是做实验用) HdfsFileStream 阅读全文
posted @ 2019-09-08 20:13
花未全开*月未圆
阅读(273)
评论(0)
推荐(0)
摘要:
HDFS日志查看的两种方式:HDFS安装目录中的logs中和HDFS WEB UI上 HDFS安装目录中的logs中看日志 我们分别在master、slave1以及slave2上安装了HDFS,只是每台机器上安装的角色不一样而已。 在master安装的是NameNode和SecondaryNameN 阅读全文
posted @ 2019-09-08 19:51
花未全开*月未圆
阅读(9825)
评论(0)
推荐(0)
摘要:
JVM的启动 绝大部分的大数据技术都是建立在Java的JVM之上的。所以,我们对JVM的启动的了解是非常有必要的,当然,我们也不用非常深入的去了解这个,我们只需要把握两个非常关键的点即可: 当使用java命令启动了一个JVM之后,执行的是我们指定的主类中的main方法中的程序代码,这个方法里面的程序 阅读全文
posted @ 2019-09-08 19:47
花未全开*月未圆
阅读(3221)
评论(0)
推荐(0)
摘要:
我们在分布式存储原理总结中了解了分布式存储的三大特点: HDFS作为分布式存储的实现,肯定也具有上面3个特点。 HDFS分布式存储: 在HDFS中,数据块默认的大小是128M,当我们往HDFS上上传一个300多M的文件的时候,那么这个文件会被分成3个数据块: 所有的数据块是分布式的存储在所有的Dat 阅读全文
posted @ 2019-09-08 19:43
花未全开*月未圆
阅读(9544)
评论(0)
推荐(1)
摘要:
在NameNode中的Namespace管理层是负责管理整个HDFS集群文件系统的目录树以及文件与数据块的映射关系。以下就是Namespace的内存结构: 以上是一棵文件目录树,可见Namespace本身其实是一棵巨大的树。在这棵树中INodeFile表示文件,INodeDirectory表示文件目 阅读全文
posted @ 2019-09-08 19:36
花未全开*月未圆
阅读(2694)
评论(0)
推荐(0)
摘要:
DataNode心跳机制的作用讲解了DataNode的三个作用: 以上第1和第2个动作都是在DataNode启动的时候发生的,register的步骤主要功能是使得这个DataNode成为HDFS集群中的成员,DataNode注册成功后,DataNode会将它管理的所有的数据块信息,通过blockRe 阅读全文
posted @ 2019-09-08 19:34
花未全开*月未圆
阅读(2690)
评论(0)
推荐(0)
摘要:
NameNode堆内存估算 在HDFS中,数据和元数据是分开存储的,数据文件被分割成若干个数据块,每一个数据块默认备份3份,然后分布式的存储在所有的DataNode上,元数据会常驻在NameNode的内存中,而且随着数据量的增加,在NameNode中内存的元数据的大小也会随着增加,那么这个时候对Na 阅读全文
posted @ 2019-09-08 19:31
花未全开*月未圆
阅读(3765)
评论(0)
推荐(1)
摘要:
下图是HDFS的架构: 从上图中可以知道,HDFS包含了NameNode、DataNode以及Client三个角色,当我们的HDFS没有配置HA的时候,那还有一个角色就是SecondaryNameNode,这四个角色都是基于JVM之上的Java进程。既然是Java进程,那我们肯定可以调整这四个角色使 阅读全文
posted @ 2019-09-08 19:29
花未全开*月未圆
阅读(5071)
评论(1)
推荐(1)
摘要:
在HDFS集群的运维过程中,肯定会遇到DataNode的新增和删除,即上线与下线。这篇文章就详细讲解下DataNode的上线和下线的过程。 背景 在我们的微职位视频课程中,我们已经安装了3个节点的HDFS集群,master机器上安装了NameNode和SecondaryNameNode角色,slav 阅读全文
posted @ 2019-09-08 19:21
花未全开*月未圆
阅读(3538)
评论(0)
推荐(1)
摘要:
在HDFS中,提供了fsck命令,用于检查HDFS上文件和目录的健康状态、获取文件的block信息和位置信息等。 我们在master机器上执行hdfs fsck就可以看到这个命令的用法。 查看文件目录的健康信息 执行如下的命令: 其中有一个比较重要的信息,就是Corrupt blocks,表示损坏的 阅读全文
posted @ 2019-09-08 19:09
花未全开*月未圆
阅读(14480)
评论(0)
推荐(0)
摘要:
我们在安装HDFS的时候,我们在hdfs-site.xml配置过DataNode的数据存储的文件目录,如下: 目录/home/hadoop-twq/bigdata/dfs/data就是DataNode存放数据的地方,这个目录对应的存储介质就是普通的磁盘(DISK)。除了普通磁盘,存储介质其实还有固态 阅读全文
posted @ 2019-09-08 18:56
花未全开*月未圆
阅读(3303)
评论(0)
推荐(2)
摘要:
新建一个maven工程 我们先在IDEA中新建一个名为ObjectSizeFetcherAgent的maven工程,如下图: 在maven项目中的pom.xml中新增一个打jar包的插件,如下: 在项目的resources中新建一个名为META-INF的目录,在这个目录下新建一个名为MANIFEST 阅读全文
posted @ 2019-09-08 18:46
花未全开*月未圆
阅读(10876)
评论(0)
推荐(0)
摘要:
我们在如何获取一个Java对象所占内存大小的文章中写了一个获取Java对象所占内存大小的工具类(ObjectSizeFetcher),那么接下来,我们使用这个工具类来看一下Java中各种类型的对象所占内存的大小 基本类型 基本类型的内存占用情况如下表: 以上基本类型所占内存大小是Java规定的,引用 阅读全文
posted @ 2019-09-08 18:40
花未全开*月未圆
阅读(438)
评论(0)
推荐(0)
摘要:
我们在Java单个对象内存布局中讲解了单个简单的Java对象所占内存的大小的计算。那么这篇文章主要是讲解复杂Java对象所占内存大小的计算,我们把继承、复合的对象称为复杂对象 继承对象 然后重新打包,执行如下的命令: 得到的结果如下: 可以看出new Child()的内存大小为40字节,那么这个40 阅读全文
posted @ 2019-09-08 18:30
花未全开*月未圆
阅读(720)
评论(1)
推荐(0)

浙公网安备 33010602011771号