随笔分类 -  大数据基础

摘要:一、条件表达式if Scala 中的 if/else 语法结构与 Java 中的一样,唯一不同的是,Scala 中的 if 表达式是有返回值的。 object ScalaApp extends App { val x = "scala" val result = if (x.length == 5) 阅读全文
posted @ 2020-06-29 09:51 数据驱动 阅读(152) 评论(0) 推荐(0)
摘要:一、数据类型 1.1 类型支持 Scala 拥有下表所示的数据类型,其中 Byte、Short、Int、Long 和 Char 类型统称为整数类型,整数类型加上 Float 和 Double 统称为数值类型。Scala 数值类型的取值范围和 Java 对应类型的取值范围相同。 数据类型 描述 Byt 阅读全文
posted @ 2020-06-29 09:48 数据驱动 阅读(838) 评论(0) 推荐(0)
摘要:一、Scala简介 1.1 概念 Scala 全称为 Scalable Language,即“可伸缩的语言”,之所以这样命名,是因为它的设计目标是希望伴随着用户的需求一起成长。Scala 是一门综合了面向对象和函数式编程概念的静态类型的编程语言,它运行在标准的 Java 平台上,可以与所有的 Jav 阅读全文
posted @ 2020-06-29 09:42 数据驱动 阅读(530) 评论(0) 推荐(0)
摘要:一、部署模式 Flink 支持使用多种部署模式来满足不同规模应用的需求,常见的有单机模式,Standalone Cluster 模式,同时 Flink 也支持部署在其他第三方平台上,如 YARN,Mesos,Docker,Kubernetes 等。以下主要介绍其单机模式和 Standalone Cl 阅读全文
posted @ 2020-06-28 11:09 数据驱动 阅读(3681) 评论(0) 推荐(0)
摘要:一、状态分类 相对于其他流计算框架,Flink 一个比较重要的特性就是其支持有状态计算。即你可以将中间的计算结果进行保存,并提供给后续的计算使用: 具体而言,Flink 又将状态 (State) 分为 Operator State 与 Keyed State: 2.1 算子状态 算子状态 (Oper 阅读全文
posted @ 2020-06-28 10:44 数据驱动 阅读(690) 评论(0) 推荐(0)
摘要:一、窗口概念 在大多数场景下,我们需要统计的数据流都是无界的,因此我们无法等待整个数据流终止后才进行统计。通常情况下,我们只需要对某个时间范围或者数量范围内的数据进行统计分析:如每隔五分钟统计一次过去一小时内所有商品的点击量;或者每发生1000次点击后,都去统计一下每个商品点击率的占比。在 Flin 阅读全文
posted @ 2020-06-28 09:15 数据驱动 阅读(560) 评论(0) 推荐(0)
摘要:一、Data Sinks 在使用 Flink 进行数据处理时,数据经 Data Source 流入,然后通过系列 Transformations 的转化,最终可以通过 Sink 将计算结果进行输出,Flink Data Sinks 就是用于定义数据流最终的输出位置。Flink 提供了几个较为简单的 阅读全文
posted @ 2020-06-28 08:46 数据驱动 阅读(1318) 评论(0) 推荐(0)
摘要:一、Transformations 分类 Flink 的 Transformations 操作主要用于将一个和多个 DataStream 按需转换成新的 DataStream。它主要分为以下三类: DataStream Transformations:进行数据流相关转换操作; Physical pa 阅读全文
posted @ 2020-06-28 07:44 数据驱动 阅读(301) 评论(0) 推荐(0)
摘要:一、内置 Data Source Flink Data Source 用于定义 Flink 程序的数据来源,Flink 官方提供了多种数据获取方法,用于帮助开发者简单快速地构建输入流,具体如下: 1.1 基于文件构建 1. readTextFile(path):按照 TextInputFormat 阅读全文
posted @ 2020-06-27 21:49 数据驱动 阅读(618) 评论(0) 推荐(1)
摘要:一、安装 Scala 插件 Flink 分别提供了基于 Java 语言和 Scala 语言的 API ,如果想要使用 Scala 语言来开发 Flink 程序,可以通过在 IDEA 中安装 Scala 插件来提供语法提示,代码高亮等功能。打开 IDEA , 依次点击 File => settings 阅读全文
posted @ 2020-06-27 19:39 数据驱动 阅读(2346) 评论(0) 推荐(0)
摘要:一、Flink 简介 Apache Flink 诞生于柏林工业大学的一个研究性项目,原名 StratoSphere 。2014 年,由 StratoSphere 项目孵化出 Flink,并于同年捐赠 Apache,之后成为 Apache 的顶级项目。2019 年 1 年,阿里巴巴收购了 Flink 阅读全文
posted @ 2020-06-27 17:09 数据驱动 阅读(715) 评论(0) 推荐(0)
摘要:一、版本说明 Spark 针对 Kafka 的不同版本,提供了两套整合方案:spark-streaming-kafka-0-8 和 spark-streaming-kafka-0-10,其主要区别如下: spark-streaming-kafka-0-8 spark-streaming-kafka- 阅读全文
posted @ 2020-06-27 00:30 数据驱动 阅读(265) 评论(0) 推荐(0)
摘要:一、简介 Apache Flume 是一个分布式,高可用的数据收集系统,可以从不同的数据源收集数据,经过聚合后发送到分布式计算框架或者存储系统中。Spark Straming 提供了以下两种方式用于 Flume 的整合。 二、推送式方法 在推送式方法 (Flume-style Push-based 阅读全文
posted @ 2020-06-26 23:39 数据驱动 阅读(330) 评论(0) 推荐(0)
摘要:一、案例引入 这里先引入一个基本的案例来演示流的创建:获取指定端口上的数据并进行词频统计。项目依赖和代码实现如下: <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.12</artifactI 阅读全文
posted @ 2020-06-26 22:34 数据驱动 阅读(448) 评论(0) 推荐(0)
摘要:一、流处理 1.1 静态数据处理 在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中。应用程序根据需要查询数据或计算数据。这就是传统的静态数据处理架构。Hadoop 采用 HDFS 进行数据存储,采用 MapReduce 进行数据查询或分析,这就是典型的静态数据处理架构。 1.2 流 阅读全文
posted @ 2020-06-26 18:02 数据驱动 阅读(515) 评论(0) 推荐(0)
摘要:一、 数据准备 本文主要介绍 Spark SQL 的多表连接,需要预先准备测试数据。分别创建员工和部门的 Datafame,并注册为临时视图,代码如下: val spark = SparkSession.builder().appName("aggregations").master("local[ 阅读全文
posted @ 2020-06-26 17:44 数据驱动 阅读(517) 评论(0) 推荐(0)
摘要:一、简单聚合 1.1 数据准备 // 需要导入 spark sql 内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSession.builder().appName("aggregations").master("lo 阅读全文
posted @ 2020-06-26 17:22 数据驱动 阅读(2656) 评论(0) 推荐(0)
摘要:一、简介 1.1 多数据源支持 Spark 支持以下六个核心数据源,同时 Spark 社区还提供了多达上百种数据源的读取方式,能够满足绝大部分使用场景。 CSV JSON Parquet ORC JDBC/ODBC connections Plain-text files 注:以下所有测试文件均可从 阅读全文
posted @ 2020-06-26 16:52 数据驱动 阅读(1090) 评论(0) 推荐(0)
摘要:一、创建DataFrame和Dataset 1.1 创建DataFrame Spark 中所有功能的入口点是 SparkSession,可以使用 SparkSession.builder() 创建。创建后应用程序就可以从现有 RDD,Hive 表或 Spark 数据源创建 DataFrame。示例如 阅读全文
posted @ 2020-06-26 15:43 数据驱动 阅读(316) 评论(0) 推荐(0)
摘要:一、Spark SQL简介 Spark SQL 是 Spark 中的一个子模块,主要用于操作结构化数据。它具有以下特点: 能够将 SQL 查询与 Spark 程序无缝混合,允许您使用 SQL 或 DataFrame API 对结构化数据进行查询; 支持多种开发语言; 支持多达上百种的外部数据源,包括 阅读全文
posted @ 2020-06-26 10:54 数据驱动 阅读(919) 评论(0) 推荐(0)