- 博客(19)
- 收藏
- 关注
原创 Shuffle机制的详细介绍
Shuffle机制 Shuffle是在Mapper之后,Reducer之前的操作 分区 默认分区时,若numReduceTask>1,会根据所求key的hashcode值进行分区 设置MAX_VALUES的目的是为了防止hashcode过大 分区时按照条件的不同进行分区,有几个分区就会有几个reduce 若numReduceTask=1,直接输出0号文件 分区主要需要写四个类,分别是partitioner类,mapper类,reducer类,driver类 导包的时候导最长的,最长的是最新的
2020-08-11 15:03:01
2126
原创 SparkStreaming和Flink详细对比
Spark Streaming 和 Flink 详细对比 第一部分 编程模型对比 1.1运行角色 Spark Streaming 运行时的角色(standalone 模式)主要有: 1)Master:主要负责整体集群资源的管理和应用程序调度; 2)Worker:负责单个节点的资源管理,driver 和 executor 的启动等; 3)Driver:用户入口程序执行的地方,即 SparkContext 执行的地方,主要是 DAG 生成、stage 划分、task 生成及调度; 4)Executor:负责执行
2020-11-23 13:51:11
1879
原创 Redis五种常用数据结构及操作
Redis五种常用数据结构及操作 key操作 操作 注释 KEYS PATTERN 查找符合格式的Key(*代替多个字符,?代替一个字符) TYPE KEY 返回KEY对应的值的类型 MOVE KEY DB 把一组键值对数据移动到另一个数据库中 DEL KEY [KEY …] 根据KEY进行删除,至少要指定一个KEY EXISTS KEY 检查指定的KEY是否存在。指定一个KEY时,存在返回1,不存在返回0。可以指定多个,返回存在的KEY的数量 RANDOMKEY 在现有
2020-11-08 11:23:35
281
原创 scala总结(最终篇)
第七章 模式匹配 Scala中的模式匹配类似与Java中的switch语法,但是scala从语法中补充了更多的功能,所以更加强大。 7.1 基本语法 模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分支开始,如果匹配成功,那么执行对应的逻辑代码,如果匹配不成功,继续执行下一个分支进行判断。如果所有case都不匹配,那么会执行case _分支,类似于Java中default语句。 val student1 = Student1("alice", 1
2020-09-26 13:30:04
504
原创 scala总结(集合篇)
第六章 集合 6.1集合简介 1)Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。 2)对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包 不可变集合:scala.collection.immutable 可变集合: scala.collection.mutable 3)Scala不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改。类似于java中的String对象 4)可变集合,
2020-09-23 18:30:08
446
原创 scala总结(面向对象篇)
第五章 面向对象 Scala的面向对象思想和Java的面向对象思想和概念是一致的。 Scala中语法和Java不同,补充了更多的功能。 5.1 Scala包 1)基本语法 package 包名.类名 2)Scala包的三大作用(和Java一样) (1)区分相同名字的类 (2)当类很多时,可以很好的管理类 (3)控制访问范围 5.1.1 包的命名 1)命名规则 只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。 2)案例实操 demo.class.exec1 //错误,因为 clas
2020-09-23 15:20:13
483
原创 scala总结(函数篇)
第四章 函数式编程 4.1 函数基础 4.1.1 函数基本语法 1)基本语法 2)案例实操 // 定义函数 def sayHi(name: String): Unit ={ println(s"hi, $name") } // 函数调用 sayHi("DongLiang") 4.1.2 函数与方法的区别 1)核心概念 (1)为完成某一功能的程序语句的集合,称为函数。 (2)类中的函数称之方法。 2)案例实操 (1)Scala语言可以在任何的语法结构中声明任
2020-09-23 11:01:09
399
原创 scala总结(基础篇)
第一章 变量和数据类型 1.1 注释 Scala的注释与Java的注释完全相同,分为单行注释,多行注释,文档注释 代码规范 (1)使用一次tab操作,实现缩进,默认整体向右边移动,用shift+tab整体向左移 (2)或者使用ctrl + alt + L来进行格式化 (3)运算符两边习惯性各加一个空格。比如:2 + 4 * 5。 (4)一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅 1.2 变量和常量 常量表示知行过程中不可改变的变量 在Java中 变量声明:变量类型 变量名称 = 初始值
2020-09-22 20:56:18
652
原创 HBase基础总结(下)
第五章 HBase优化 5.1 预分区 每一个region维护着startRow与endRowKey,如果加入的数据符合某个region维护的rowKey范围,则该数据交给这个region维护。那么依照这个原则,我们可以将数据所要投放的分区提前大致的规划好,以提高HBase性能。 1.手动设定预分区 create 'staff1','info',SPLITS => ['1000','2000','3000','4000'] 2.生成16进制序列预分区 create 'staff2','info',{
2020-09-11 19:59:15
514
原创 HBase基础总结(上)
第一章 HBase简介 1.1 HBase定义 HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。 1.2 HBase数据模型 逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map。 1.2.1 HBase逻辑结构 1.2.2 HBase物理存储结构 1.2.3 数据模型 1)Name Space 命名空间,类似于关系型数据库的database概念,
2020-09-11 19:54:56
522
原创 linux,shell,hadoop相关总结
总结 Linux&Shell相关总结 Linux常用命令 序号 命令 命令解释 1 top 查看内存 2 df -h 查看磁盘存储情况 3 iotop 查看磁盘IO读写(yum install iotop安装) 4 iotop -o 直接查看比较高的磁盘读写程序 5 netstat -tunlp | grep 端口号 查看端口占用情况 6 uptime 查看报告系统运行时长及平均负载 7 ps -aux 查看进程 Shell常用工具 1)awk、sed、c
2020-09-06 12:51:15
488
原创 Azkaban基础总结
第一章 Azkaban概述 1.1 为什么需要工作流调度系统 1)一个完整的数据分析系统通常都是由大量任务单元组成: Shell脚本程序,Java程序,MapReduce程序、Hive脚本等 2)各任务单元之间存在时间先后及前后依赖关系 3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行; 1.2 常见工作流调度系统 1)简单的任务调度:直接使用Linux的Crontab来定义; 2)复杂的任务调度:开发调度平台或使用现成的开源调度系统,比如Azkaban、Ooize、Airflow
2020-08-31 19:05:49
950
原创 kafka基础总结(下)
第四章 Kafka API 4.1 Producer API 4.1.1 消息发送流程 Kafka的Producer发送消息采用的是异步发送的方式。在消息发送的过程中,涉及到了两个线程——main线程和Sender线程,以及一个线程共享变量——RecordAccumulator。main线程将消息发送给RecordAccumulator,Sender线程不断从RecordAccumulator中拉取消息发送到Kafka broker。 相关参数: batch.size:只有数据积累到batch.size之
2020-08-29 14:32:22
470
原创 kafka基础总结(上)
第一章 Kafka概述 Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。 1.1 消息队列 1.1.1 传统消息队列的应用场景 使用消息队列的好处 1)解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)可恢复性 系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。 3)缓冲 有助于控制和优化数据流经过系统的速度,
2020-08-29 13:06:55
708
原创 flume基础总结
第一章 Flume概述 1.1 Flume定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS 1.2 Flume基础架构 Flume组成架构如下图所示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4DIIAnX-1598437334965)(D:\优快云\assets\flume基础架构.png)]
2020-08-26 18:31:57
814
原创 整理hive中常用函数
常用函数 常用日期函数 1.unix_timestamp:返回当前或指定时间的时间戳 select unix_timestamp(); select unix_timestamp('2008-08-08 08:08:08'); 2.from_unixtime:将时间戳转为日期格式 select from_unixtime(1218182888); select from_unixtime(unix_timestamp()); 3.current_date:当前日期 selec
2020-08-19 18:45:18
812
1
原创 梳理HIVE基础
一、Hive基本概念 1.1 hive是什么 hive是基于hadoop的一个数仓分析工具,hive可以将hdfs上存储的结构化的数据,映射成一张表,然后让用户写HQL(类SQL)来分析数据 tel up down 1383838438 1345 1567 1383838439 5345 1567 1383838440 1241 16577 1383838441
2020-08-18 14:15:56
758
1
原创 hadoop企业优化
Hadoop企业优化 MapReduce优化方法 数据输入 ①合并小文件:在执行MR任务前将小文件进行合并,大量的小文件会产生大量的Map任务,增大Map任务装载次数,而任务的装载比较耗时,从而导致MR运行较慢。 ②采用CombineTextInputFormat来作为输入,解决输入端大量小文件场景。 Map阶段 ①减少溢写次数:通过调整mapreduce.task.io.sort.mb及mapreduce.map.sort.spile.percent参数值,增大出发Spill的内存上限,减少Spill次数
2020-08-15 10:59:05
579
原创 hadoop中join的基本应用
join reduce join 工作原理 Map端的主要工作:为来自不同表或文件的key/value对打标签以区别不停来源的记录。然后用连接字段作为key,其余部分和新加部分的标志作为value,最后进行输出。 Reduce段主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并就ok了。 首先先看需求,以下面例子为例 需求分析:在下面需求中,我们需要四个类,一个是TableBean继承Writab
2020-08-12 21:27:37
641
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅