- 博客(92)
- 资源 (3)
- 收藏
- 关注
原创 Spark(1) - spark概述
开始spark之旅啦~~~在开始之前,我们要先搞清楚,什么是spark,我们为什么要学spark,有什么特点,然后整体了解整体spark框架模块。好了,我们开始吧!先给出官方地址:spark官网,学习资料很详细,对于学习者很友好Apache Spark官方地址1. 什么是spark官方定义:Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎。 Spark 最早源于一篇论文 Resilient Distributed Datase
2020-09-30 13:00:49 484
原创 Scala -- Scala中“_“的用法总结(持续更新)
1. 导包时,多引用的方法,和java中的*类似例如:import scala.collection.mutable._2. 访问元组时,和值一起使用表示第几个元素例如:val/var 元组名 = (元素1, 元素2, 元素3....)//获取第一个元素元组名._1//获取第二个元素元组名._23. 在方法转函数时,在方法名后面用<空格>加 ‘_’ 来进行转换例如:def method1(x:Int,y:Int):Int = x+yval f2 = method1&
2020-09-22 10:54:13 2273
原创 Scala(20) -- Scala的Akka(并发编程框架)
1. Akka并发编程框架简介1.1 Akka概述Akka是一个用于构建高并发、分布式和可扩展的基于事件驱动的应用工具包。Akka是使用scala开发的库,同时可以使用scala和Java语言来开发基于Akka的应用程序。1.2 Akka特性提供基于异步非阻塞、高性能的事件驱动编程模型内置容错机制,允许 Actor在出错时进行恢复或者重置操作超级轻量级的事件处理(每 GB堆内存几百万Actor)使用 Akka可以在单机上构建高并发程序,也可以在网络中构建分布式程序。1.3 Akka通信
2020-09-22 10:53:09 800
原创 Scala(19) -- scala的Actor
1. Actor介绍Scala中的Actor并发编程模型可以用来开发比Java线程效率更高的并发程序。我们学习Scala Actor的目的主要是为后续学习Akka做准备。1.1 Java并发编程的问题在Java并发编程中,每个对象都有一个逻辑监视器(monitor),可以用来控制对象的多线程访问。我们添加sychronized关键字来标记,需要进行同步加锁访问。这样,通过加锁的机制来确保同一时间只有一个线程访问共享数据。但这种方式存在资源争夺、以及死锁问题,程序越大问题越麻烦。线程死锁1.2
2020-09-22 10:52:49 205
原创 Scala(18) -- scala的集合(Iterable、Seq、Stack、Queue、Set、Map)
1. Iterable2. Seq3. Stack4. Queue5. Set6.Map7. 案例
2020-09-22 10:52:28 786 1
原创 Scala(13) -- scala高阶函数(作为值的函数、匿名函数、柯里化、闭包、控制抽象)
1. 高阶函数介绍Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是“头等公民”,它和Int、String、Class等其他类型处于同等的地位,可以像其他类型的变量一样被传递和操作。也就是说, 如果一个函数的参数列表可以接收函数对象 , 那么这个函数就被称之为 高阶函数 (High-Order Function) .像我们之前学习过的map方法,它就可以接收一个函数,完成List的转换。常用的高阶函数有以下几类:作为值的函数匿名函数闭包柯里化等等2. 作为值的函数在S
2020-09-21 12:47:14 272
原创 Scala(12) -- scala读写数据
1. 读取数据(按行、字符读取、读取单词和数字、从URL和其他数据源读取、读取二进制文件)2. 写入数据(往文件写数据、序列化和反序列化)3. 案例
2020-09-21 12:13:35 1255
原创 Scala(11) -- 模式匹配、Option类型、偏函数、正则表达式、异常处理、提取器(Extractor)
1. 模式匹配2. Option类型3. 偏函数4. 正则表达式5. 异常处理6. 提取器(Extractor)7. 案例
2020-09-21 11:55:06 375
原创 Scala(10) -- scala的数组、元组、列表、集、映射、迭代器、函数式编程
1. 数组2. 元组3. 列表4. 集5. 映射6. 迭代器(iterator)7. 函数式编程8. 案例
2020-09-21 11:22:37 507
原创 Scala(8) -- scala的特质(trait)
1. 特质入门2. 对象混入trait3. 使用trait实现适配器模式4. 使用trait实现模板方法模式5. 使用trait实现职责链模式6. trait的构造机制7. trait继承class8. 案例
2020-09-21 09:28:15 262
原创 Scala(6) -- scala类(成员变量、成员方法、修饰符)和对象
1. 类和对象2. 定义和访问成员变量3. 下划线初始化成员变量4. 定义和访问成员变量5. 访问权限修饰符6. 类的构造器7. 单例对象8. main方法9. 伴生对象10. 案例
2020-09-19 17:31:25 1850 2
原创 Scala(3) -- scala运算符
1. 算术运算符2. 赋值运算符3. 关系运算符4. 逻辑运算符5. 位运算符6. 案例1.3 算术运算符算术运算符指的就是 用来进行算术操作
2020-09-19 15:17:55 472
原创 Scala(2) -- scala入门、基础
1. 语言特点2. 输出语句3. scala常量4. scala变量5. 字符串6. 标识符7. 数据类型8. 类型转换9. 键盘录入10. 案例
2020-09-19 14:47:04 457
原创 Scala(1) -- Scala下载安装及idea环境配置
开始scala之途啦 ~~~开始之前我们还是要先知道,scala之父 – Martin·odersky(马丁·奥德斯基)哈哈哈 ~ 我很膜拜的一个大牛scala程序运行需要依赖于Java类库,那么必须要有Java运行环境,scala才能正确执行. 所以要编译运行scala程序,需要:JDK(JDK包含JVM)Scala编译器(Scala SDK)接下来,需要依次安装以下内容:安装JDK(这步骤就省略了)安装Scala SDK在IDEA中安装Scala插件1. 下载SKD安装并配
2020-09-19 11:31:59 263
原创 Kafka高级(3) -- Kafka监控工具Kafka-eagle
1. Kafka-Eagle简介2. 安装Kafka-Eagle3. Kafka度量指标
2020-09-18 08:39:30 627
原创 Kafka高级(6) -- Kafka配额限速机制(Quotas)
生产者和消费者以极高的速度生产/消费大量数据或产生请求,从而占用broker上的全部资源,造成网络IO饱和。有了配额(Quotas)就可以避免这些问题。Kafka支持配额管理,从而可以对Producer和Consumer的produce&fetch操作进行流量限制,防止个别业务压爆服务器。1. 限制producer端速率2. 限制consumer端速率3. 取消Kafka的Quota配置
2020-09-16 19:32:55 1899
原创 Kafka高级(5) -- Kafka中数据清理(Log Deletion)
Kafka的消息存储在磁盘中,为了控制磁盘占用空间,Kafka需要不断地对过去的一些消息进行清理工作。Kafka的每个分区都有很多的日志文件,这样也是为了方便进行日志的清理。在Kafka中,提供两种日志清理方式:1. 日志删除2. 日志压缩
2020-09-16 19:30:07 2065
原创 Kafka高级(4) -- Kafka原理
1. 分区的leader与follower Leader和Follower、查看某个partition的leader、AR、ISR、OSR、查看分区的ISR2. Kafka生产、消费数据工作流程 Kafka数据写入流程、Kafka数据消费流程3. Kafka的数据存储形式 存储日志4. 消息不丢失机制 broker数据不丢失、生产者数据不丢失、消费者数据不丢失5. 数据积压 使用Kafka-Eagle查看数据积压情况、解决数据积压问题
2020-09-16 19:25:20 437
原创 Kafka高级(2) -- Kafka高级(High Level)API与低级(Low Level)API
1. 高级API2. 低级API3. 手动消费分区数据
2020-09-16 18:57:36 956
原创 Kafka高级(1) -- kafka分区与副本机制
1. 生产者分区写入策略 轮询分区策略、 随机分区策略、按key分区分配策略、自定义分区策略2. 消费者组Rebalance机制 Rebalance再均衡、Rebalance的不良影响3. 消费者分区分配策略 Range范围分配策略、 RoundRobin轮询策略、 Stricky粘性分配策略4. 副本机制 producer的ACKs参数、acks配置为0、acks配置为1、acks配置为-1或all
2020-09-16 18:54:42 1239
原创 Kafka入门(7) -- Kafka生产者幂等性与事务
1. 幂等性1.1 简介拿http举例来说,一次或多次请求,得到地响应是一致的(网络超时等问题除外),换句话说,就是执行多次操作与执行一次操作的影响是一样的。如果,某个系统是不具备幂等性的,如果用户重复提交了某个表格,就可能会造成不良影响。例如:用户在浏览器上点击了多次提交订单按钮,会在后台生成多个一模一样的订单。1.2 Kafka生产者幂等性在生产者生产消息时,如果出现retry时,有可能会一条消息被发送了多次,如果Kafka不具备幂等性的,就有可能会在partition中保存多条一模一
2020-09-15 23:02:57 522
原创 Kafka入门(6) -- kafka架构
1 Kafka重要概念1.1 broker一个Kafka的集群通常由多个broker组成,这样才能实现负载均衡、以及容错broker是无状态(Sateless)的,它们是通过ZooKeeper来维护集群状态一个Kafka的broker每秒可以处理数十万次读写,每个broker都可以处理TB消息而不影响性能1.2 zookeeperZK用来管理和协调broker,并且存储了Kafka的元数据(例如:有多少topic、partition、consumer)ZK服务主要用于通知生产者
2020-09-15 22:55:13 147
原创 Kafka入门(5) -- Java编程操作Kafka
1. 同步生产消息到Kafka中1.1 需求接下来,我们将编写Java程序,将1-100的数字消息写入到Kafka中。1.2 开发步骤导入Maven Kafka POM依赖使用以下方式来编写第一个Kafka示例程序参考以下文档:参考文档创建用于连接Kafka的Properties配置创建一个生产者对象发送消息到指定 Topic关闭生产者参考代码:/** * 生产者程序:将1-100的数字消息写入到Kafka中 */public class _1ProducerTest
2020-09-15 22:48:32 1313
原创 Kafka入门(4) -- kafka基准测试
1. 基准测试基准测试(benchmark testing)是一种测量和评估软件性能指标的活动。我们可以通过基准测试,了解到软件、硬件的性能水平。主要测试负载的执行时间、传输速度、吞吐量、资源占用率等。1.1 基于1个分区1个副本的基准测试测试步骤:启动Kafka集群创建一个1个分区1个副本的topic: benchmark同时运行生产者、消费者基准测试程序观察结果1.1.1 创建topicbin/kafka-topics.sh --zookeeper node1:2181 --c
2020-09-15 22:44:43 331
原创 Kafka入门(3) -- kafka基础操作
1. 创建topic创建一个topic(主题)。Kafka中所有的消息都是保存在主题中,要生产消息到Kafka,首先必须要有一个确定的主题。# 创建名为test的主题bin/kafka-topics.sh --create --bootstrap-server node1:9092 --topic test# 查看目前Kafka中的主题bin/kafka-topics.sh --list --bootstrap-server node1:90922. 生产消息到Kafka使用Kafka内.
2020-09-15 22:29:26 345
原创 Kafka入门(2) -- kafka集群搭建
1. 搭建Kafka集群注: 搭建kafka之前,要有zookeeper集群支持将Kafka的安装包上传到虚拟机,并解压tar -zxvf kafka_2.12-2.4.1.tgz -C ../servers/cd kafka_2.12-2.4.1修改/export/servers/kafka_2.12-2.4.1/config目录下 server.properties# 指定broker的idbroker.id=0# 指定Kafka数据的位置log.dirs=/export/s
2020-09-15 22:25:47 175
原创 Kafka入门(1) -- 简介
消息队列了解kafka之前我们先来了解一下消息队列1. 消息队列简介1.1 什么是消息队列消息队列,英文名:Message Queue,经常缩写为MQ。从字面上来理解,消息队列是一种用来存储消息的队列。来看一下下面的代码:// 1. 创建一个保存字符串的队列Queue stringQueue = new LinkedList();// 2. 往消息队列中放入消息stringQueue.offer(“hello”);// 3. 从消息队列中取出消息并打印System.out.printl
2020-09-15 22:19:26 255
原创 Elasticsearch补充(3) --Linux集群安装ES
1 安装Elasticsearch1.1 创建普通用户ES不能使用root用户来启动,必须使用普通用户来安装启动。这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等。创建一个es专门的用户(必须)使用root用户在三台机器执行以下命令useradd erainm passwd erainm注: 这里我创建的是我的用户,第二个 passwd 用户名 后会设置自己的密码1.2 为普通用户erainm添加sudo权限为了让普通用户有更大的操作权限,我们一
2020-09-15 19:48:12 168
原创 ElasticSearch补充(2) -- ES中的核心概念
1.索引(index)2.映射(Mapping)3.字段(Field)4.类型(Type)5.文档(Document)6.集群(cluster)7.节点(node)8.分片和副本
2020-09-14 13:22:39 133
原创 ElasticSearch补充(1) -- Lucene全文检索库
大家都知道ES是基于Lucene的,说这么多ES,肯定还是得了解一下Lucene的1 什么是全文检索先说全文检索1.1 结构化数据与非结构化数据我们生活中的数据总体分为两种:结构化数据和非结构化数据。结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等磁盘上的文件1.2 搜索结构化数据和非结构化数据使用SQL语言专门搜索结构化的数据使用ES/Lucene/Solor建立倒排索引,根据关键字就可以搜索一些非
2020-09-14 13:14:35 166
原创 解决HBase运行MapReduce问题之Could not locate Hadoop executable: xxxx\bin\winutils.exe
配置以下环境变量HADOOP_HOME=< your local hadoop-ver folder >在PATH环境变量中添加:%HADOOP_HOME%\bin将winutils-master\hadoop-3.2.1\bin中的所有内容复制到HADOOP_HOME\bin目录中 可以从cdarlint下载,GitHub中重启IDEA,重新运行MapReduce程序引用https://github.com/cdarlint/winutils...
2020-09-14 12:25:46 217
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人