scala

SCALA-DAY01

那年仲夏 提交于 2020-11-01 13:44:45
1 scala简介 面向对象和面向函数 静态类型提高效率 运行在JVM和JS上 特点 优雅 简洁 速度快 兼容HADOOP生态 spark是scala编写的 函数式编程有利于数据流式处理 2 scala环境搭建 2.1 环境变量配置 下载 windows环境 解压 --系统--高级设置--系统环境变量 配置SCALA_HOME linux环境 解压 配置 /etc/profile 2.2 IDEA搭建scala项目 2.2.1 安装scala插件 retstart 重启IDEA 2.2.2 new project // 1 object中的所有的内容默认是static object Demo1 { // 等同于java的main方法 程序的入口 def main(args: Array[String]): Unit = { // 打印数据 简洁 println("hello scala") } } 在scala中有class和object两种 object中的内容默认是static修饰的 , 静态的 ,所以main方法写在object中才能执行 3 数据类型 Any 类似于java中的Object 所有类的父类 Any AnyVal 数值 AnyRef 引用类有关 : 1 java的所有的类 2 scala的任意类 (scala类和集合类工具类) 在scala中所有的类型都是对象

没错!这份Apache星标80k的Kafka互联网实战PDF,可以让你从入门到精通!

瘦欲@ 提交于 2020-11-01 03:01:42
Apache Kafka 是由Apache软件基金会开发的一个开源消息系统项目,由Scala写成。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。 Kafka是一个分布式的、分区的、多复本的日志提交服务。它通过一种独一无二的设计提供了一个消息系统的功能,让我一起来看看关于Apache Kafka的实战操作吧! 由于整个PDF文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友 可以 三连文章 后台私信我【学习】或者查看下方即可获得免费领取。 第1章 认识Apache Kafka 1.1 Kafka快速入门 1.2 消息引擎系统 1.3 Kafka概要设计 1.4 Kafka基本概念与术语 1.5 Kafka使用场景 第2章 Kafka发展历史 2.1 Kafka的历史 2.2 Kafka版本变迁 2.3 如何选择Kafka版本 2.4 Kafka与Confluent 第3章 Kafka线上环境部署 3.1 集群环境规划 3.2 伪分布式环境安装 3.3 多节点环境安装 3.4 验证部署 3.5 参数设置 第4章 producer开发 4.1 producer概览 4.2 构造producer 4.3 消息分区机制 4.4 消息序列化 4.5 producer拦截器 4.6 无消息丢失配置 4.7 消息压缩 4.8 多线程处理 第5章

你真知道如何高效用mapPartitions吗?

烈酒焚心 提交于 2020-10-31 07:31:35
1. mappartition简介 首先,说到mapPartitions大家肯定想到的是map和MapPartitions的对比。大家都知道mapPartition算子是使用一个函数针对分区计算的,函数参数是一个迭代器。而map只针对每条数据调用的,所以存在访问外部数据库等情况时mapParititons更加高效。 mapPartitions函数: /** * Return a new RDD by applying a function to each partition of this RDD. * * `preservesPartitioning` indicates whether the input function preserves the partitioner, which * should be `false` unless this is a pair RDD and the input function doesn't modify the keys. */ def mapPartitions[U: ClassTag]( f: Iterator[T] => Iterator[U], preservesPartitioning: Boolean = false): RDD[U] = withScope { val cleanedF = sc.clean(f)

Flink DataStream编程指南

℡╲_俬逩灬. 提交于 2020-10-31 06:34:10
Flink 程序是执行分布式集合转换 ( 例如, filtering, mapping, updating state, joining, grouping, defining windows, aggregating) 的常规程序。集合创建于原始的数据源 ( 例如,通过从文件读取, kafka 主题或从本地内存集合中进行创建 ) 。通过 sinks 返回结果,例如将数据写入(分布式)文件或标准输出 ( 例如,命令行终端 ) 。 Flink 程序以各种上下文运行,独立或嵌入其他程序中。执行可能发生在本地 JVM 或许多机器的集群上。取决于数据源的类型,即有界或无界源,您将编写批处理程序或流式程序,其中 DataSet API 用于批处理, DataStream API 用于流式传输。 一, DataSet and DataStream Flink 有一个特殊的类 DataSet 和 DataStream 来表示程序中的数据。您可以将它们视为不可变的数据集合,可以包含重复的数据。在 DataSet 的情况下,数据是有限的,而对于 DataStream ,元素的数量可以是无限制的。 这些集合在一些关键方面与常规 Java 集合不同。 首先,它们是不可变的,这意味着一旦创建它们就不能添加或删除元素。 你也不能简单地检查里面的元素。 最初通过在 Flink 程序中添加一个源来创建一个集合

[Spark学习] Spark RDD详解

痴心易碎 提交于 2020-10-31 06:29:46
文章目录 什么是RDD RDD的主要属性 RDD的组成 RDD的分区(Partition) RDD分区的特征 RDD分区与任务执行的关系 RDD的分区器(Partitioner) RDD的逻辑执行计划(Lineage) RDD的依赖关系(Dependencies) 窄依赖(Narrow Dependency) 宽依赖(Wide Dependency) RDD与Task/Stage的关系 Task Stage 什么是RDD RDD(Resilient Distributed Datasets),弹性分布式数据集,是Spark的基本数据结构。 它是一个 不可变 的 分布式 对象集合。 RDD中的每个数据集被划分为 逻辑分区 ,其可以在集群的 不同节点上计算 。 RDD可以包含任何类型的Python,Java或Scala对象,包括用户定义的类。 形式上,RDD是 只读的 分区 记录 集合 。 可以通过读取外部存储系统中的数据集(如HDFS,HBase或提供Hadoop输入格式的任何数据源等)、转换现有数据集合或对其他RDD的数据进行转换来创建RDD。 RDD是一个支持 容错 集合,可以 并行操作 。 RDD的主要属性 从RDD的内部定义来看,每个RDD拥有以下五个主要属性: 分区列表 与其他RDD的依赖关系列表 计算分片(split)的函数 (可选)

一文详解「负载均衡」技术,分布式架构

别等时光非礼了梦想. 提交于 2020-10-28 13:42:12
阅读本文大概需要 6.5 分钟。 作者: itfly http://www.cnblogs.com/itfly8/p/5043435.html 面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。 从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们可以采取冗余的方式。将相同的应用部署到多台机器上。解决访问统一入口问题,我们可以在集群前面增加负载均衡设备,实现流量分发。 负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。 本文是负载均衡详解的第一篇文章,介绍负载均衡的原理,负载均衡分类(DNS负载均衡,HTTP负载均衡,IP负载均衡,链路层负载均衡,混合型P负载均衡)。部分内容摘自读书笔记。 01 负载均衡原理 系统的扩展可分为纵向(垂直)扩展和横向