自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Oak_Komorebi的博客

大数据初学者

  • 博客(47)
  • 收藏
  • 关注

原创 ElasticSearch 启动报错

单机启动elasticsearch时报以下错误:[2021-09-23T12:06:53,553][INFO ][o.e.b.BootstrapChecks ] [XCVt0xH] bound or publishing to a non-loopback address, enforcing bootstrap checksERROR: [2] bootstrap checks failed[1]: max file descriptors [4096] for elasticsearch

2021-09-23 15:00:12 1803

原创 大数据之Spark(九):Spark Streaming 概述

一、流式计算简介1.1 流式计算理解流式计算,最形象的例子,就是小明的往水池中放(入)水又放(出)水的案例。流式计算就像水流⼀样, 数据连绵不断的产生,并被快速处理,所以流式计算拥有如下⼀些特点:数据是无界的(unbounded) 数据是动态的 计算速度是非常快的 计算不止一次 计算不能终⽌ 反过来看看⼀下离线计算有哪些特点: 数据是有界的(Bounded) 数据静态的 计算速度通常较慢 计算只执行一次 计算终会终止 在大数据计算领域中,通常所...

2021-08-23 22:57:58 1632

原创 大数据之Spark(八):Spark Task 启动原理

启动流程如下图所示:Spark Task 启动流程一、名词解释1、CoarseGrainedSchedulerBackend:由Driver启动。是一个阻塞等待coarse-grained executors来连接的SchedulerBackend。CoarseGrainedSchedulerBackend向ExecutorBackend端发送的消息主要如下:(1)RegisteredExecutor:回复ExecutorBackend注册功能,ExecutorBackend接到后会创建E.

2021-08-21 22:11:58 703

原创 大数据之Spark(七):Spark 任务调度

任务调度分为两个主要模块:DAGScheduler和TaskScheduler。它们负责将用户提交的计算任务按照DAG划分为不同的阶段并且将不同阶段的计算任务提交到集群进行最终的计算,整个过程如下图所示:任务调度逻辑视图在Spark应用启动时,会初始化SparkContext对象。在SparkContext中,会创建SchedulerBackend、DAGScheduler、TaskScheduler。具体涉及三个主要类:DAGScheduler:前面图示(DAG的阶段划分)中的源码.

2021-08-21 21:56:09 381

原创 大数据之Spark(六):Spark Shuffle 原理

Spark Shuffle分为Write和Read两个过程。在Spark中负责shuffle过程的执行、计算、处理的组件主要是 ShuffleManager,其是一个trait,负责管理本地以及远程的block数据的shuffle操作。所有方法如下图所示:ShuffleManager定义的方法由SparkEnv的shuffleManager管理主要方法解释:registerShuffle:注册ShuffleDependency,同时获取一个ShuffleHandle(后面根据Sh.

2021-08-21 21:42:14 311

原创 大数据之Spark(五):DAGScheduler 的任务划分

Spark是如何根据DAG生成计算任务呢?根据依赖关系将DAG划分为不同的阶段(Stage)。对于窄依赖,由于分区依赖关系的确定性,分区的转换处理可以在同一个线程里完成,窄依赖被划分到同一个执行阶段;对于宽依赖,由于Shuffle的存在,只能在父RDD Shuffle处理完成后,才能开始接下来的计算。因此宽依赖就是阶段划分的依据,具体划分规则:从后往前,遇到宽依赖切割为新的Stage。每个Stage由一组并行的Task组成。如下图所示。1、阶段划分从RDD G开始中,G依赖于B和F,先处理B

2021-08-21 21:17:08 734

原创 大数据之Spark(三):RDD 依赖

一、RDD 依赖窄依赖(narrow dependency)说明:父RDD与子RDD是窄依赖时,父RDD的每个分区只被一个子RDD分区使用一次窄依赖分为两种:一种是一对一的依赖,即 OneToOneDependency 还有一个是范围的依赖 RangeDependency ,它仅仅被 org.apache.spark.rdd.UnionRDD 使⽤。 UnionRDD 是 把多个RDD合成⼀个RDD,这些RDD是被拼接而成,每个父RDD的 Partition 的相对顺序不会变,只不过每个父

2021-08-21 21:01:10 585

原创 大数据之Kafka(三):Kafka 与 Flume的整合及架构之道

一、Kafka和Flume的整合1.1 部署实施Flume主要是做日志数据(离线或实时)的采集。下图显示的是flume采集完毕数据之后,进行的离线处理和实时处理两条业务线,本文将介绍flume和kafka的整合处理。创建整合的topic# kafka-topics.sh --create \--topic flume-kafka \--zookeeper bigdata01:2181/kafka \--partitions 3 \--replication-factor 3.

2021-08-21 20:40:46 2309

原创 大数据之Kafka(二):Kafka 的基本操作及编程API

一、Kafka的topic操作1.1 kafka的topic的操作topic是kafka非常重要的核心概念,用来存储各种类型的数据,所以最基本的就需要学会如何在kafka中创建、 修改、删除的topic,以及如何向topic生产消费数据。关于topic的操作脚本:kafka-topics.sh1. 创建topic[root@bigdata01 bin]# kafka-topics.sh --create \> --topic oak \ ## 指定要创建的topic的名称&g

2021-08-21 14:57:25 365

原创 大数据之Kafka(一):Kafka 简介及分布式集群的安装

1.1 消息队列为什么要使用消息队列?消息 Message 网络中的两台计算机或者两个通讯设备之间传递的数据。例如说:⽂本、⾳乐、视频等内容。 队列 Queue ⼀种特殊的线性表(数据元素⾸尾相接),特殊之处在于只允许在⾸部删除元素和在尾部追加元素(FIFO)。⼊队、出队 消息队列 MQ 消息+队列,保存消息的队列。消息的传输过程中的容器;主要提供⽣产、消费接⼝供外部调⽤做数据的存储和获取。1.2 消息队列的分类MQ主要分为两类...

2021-08-19 23:08:07 347

转载 大数据之Hive(十一):Hive大厂面试真题(建议收藏)

1. hive内部表和外部表的区别未被external修饰的是内部表,被external修饰的为外部表。区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理; 内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这

2021-08-18 09:22:12 1250

转载 大数据之Hive(十):Hive企业级性能优化

Hive性能问题排查的方式当我们发现一条SQL语句执行时间过长或者不合理时,我们就要考虑对SQL进行优化,优化首先得进行问题排查,那么我们可以通过哪些方式进行排查呢。经常使用关系型数据库的同学可能知道关系型数据库的优化的诀窍-看执行计划。如Oracle数据库,它有多种类型的执行计划,通过多种执行计划的配合使用,可以看到根据统计信息推演的执行计划,即Oracle推断出来的未真正运行的执行计划;还可以看到实际执行任务的执行计划;能够观察到从数据读取到最终呈现的主要过程和中间的量化数据。可以说,在Orac

2021-08-17 20:18:20 216

转载 大数据之Hive(九):Hive千亿级数据倾斜

数据倾斜问题剖析数据倾斜是分布式系统不可避免的问题,任何分布式系统都有几率发生数据倾斜,但有些小伙伴在平时工作中感知不是很明显,这里要注意本篇文章的标题—“千亿级数据”,为什么说千亿级,因为如果一个任务的数据量只有几百万,它即使发生了数据倾斜,所有数据都跑到一台机器去执行,对于几百万的数据量,一台机器执行起来还是毫无压力的,这时数据倾斜对我们感知不大,只有数据达到一个量级时,一台机器应付不了这么多的数据,这时如果发生数据倾斜,那么最后就很难算出结果。所以就需要我们对数据倾斜的问题进行优化,尽量避免或

2021-08-17 20:16:44 629

转载 大数据之Hive(八):Hive SQL底层执行原理

本节结构采用宏观着眼,微观入手,从整体到细节的方式剖析 Hive SQL 底层原理。第一节先介绍 Hive 底层的整体执行流程,然后第二节介绍执行流程中的 SQL 编译成 MapReduce 的过程,第三节剖析 SQL 编译成 MapReduce 的具体实现原理。Hive 底层执行架构我们先来看下 Hive 的底层执行架构图, Hive 的主要组件与 Hadoop 交互的过程:Hive底层执行架构在 Hive 这一侧,总共有五个组件: UI:用户界面。可看作我们提交SQL语句的.

2021-08-17 20:15:17 1451

转载 大数据之Hive(七):Hive执行计划

Hive SQL的执行计划描述SQL实际执行的整体轮廓,通过执行计划能了解SQL程序在转换成相应计算引擎的执行逻辑,掌握了执行逻辑也就能更好地把握程序出现的瓶颈点,从而能够实现更有针对性的优化。此外还能帮助开发者识别看似等价的SQL其实是不等价的,看似不等价的SQL其实是等价的SQL。可以说执行计划是打开SQL优化大门的一把钥匙。要想学SQL执行计划,就需要学习查看执行计划的命令:explain,在查询语句的SQL前面加上关键字explain是查看执行计划的基本方法。学会explain,能够给我们工

2021-08-17 20:13:55 842

转载 大数据之Hive(六):Hive Sql 大全(建议收藏)

本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类:一、DDL语句(数据定义语句):对数据库的操作:包含创建、修改数据库对数据表的操作:分为内部表及外部表,分区表和分桶表二、DQL语句(数据查询语句):单表查询、关联查询hive函数:包含聚合函数,条件函数,日期函数,字符串函数等行转列及列转行:lateral view 与 explode 以及 reflect窗口函数与分析函数其他一些窗口函数hive的DDL语法对数据库的操作 创建数据库.

2021-08-17 20:11:38 2437

转载 大数据之Hive(五):存储与压缩

5.1 Hive存储格式Hive支持的存储数的格式主要有:TEXTFILE(行式存储) 、SEQUENCEFILE(行式存储)、ORC(列式存储)、PARQUET(列式存储)。5.1.1 行式存储和列式存储上图左边为逻辑表,右边第一个为行式存储,第二个为列式存储。行存储的特点:查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。select *列存储的特点:因为每个字段...

2021-08-17 20:07:31 224

转载 大数据之Hive(四):Hive计算引擎

目前Hive支持MapReduce、Tez和Spark 三种计算引擎。4.1 MR计算引擎MR运行的完整过程:Map在读取数据时,先将数据拆分成若干数据,并读取到Map方法中被处理。数据在输出的时候,被分成若干分区并写入内存缓存(buffer)中,内存缓存被数据填充到一定程度会溢出到磁盘并排序,当Map执行完后会将一个机器上输出的临时文件进行归并存入到HDFS中。当Reduce启动时,会启动一个线程去读取Map输出的数据,并写入到启动Reduce机器的内存中,在数据溢出到磁盘时会对数据进行再

2021-08-17 20:04:26 1568

转载 大数据之Hive(三):Hive数据抽样

当数据规模不断膨胀时,我们需要找到一个数据的子集来加快数据分析效率。因此我们就需要通过筛选和分析数据集为了进行模式 & 趋势识别。目前来说有三种方式来进行抽样:随机抽样,桶表抽样,和块抽样。3.1 随机抽样关键词:rand()函数。使用rand()函数进行随机抽样,limit关键字限制抽样返回的数据,其中rand函数前的distribute和sort关键字可以保证数据在mapper和reducer阶段是随机分布的。案例如下:select*fromtable_namew...

2021-08-17 20:02:35 585

转载 大数据之Hive(二):Hive 表类型

2.1 Hive 数据类型Hive的基本数据类型有:TINYINT,SAMLLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,TIMESTAMP(V0.8.0+)和BINARY(V0.8.0+)。Hive的集合类型有:STRUCT,MAP和ARRAY。Hive主要有四种数据模型(即表):内部表、外部表、分区表和桶表。表的元数据保存传统的数据库的表中,当前hive只支持Derby和MySQL数据库。2.2 Hive 内部表Hive中的内部表和传统数

2021-08-17 19:59:32 1059

转载 大数据之Hive(一):Hive 概览

1.1 hive的简介Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。其本质是将SQL转换为MapReduce/Spark的任务进行运算,底层由HDFS来提供数据的存储,说白了hive可以理解为一个将SQL转换为MapReduce/Spark的任务的工具,甚至更进一步可以说hive就是一个MapReduce/Spark Sql的客户端为什么要使用hive ?主要的原因有以下几点: 学习MapReduce的成本比较高, 项目

2021-08-17 19:48:15 311

原创 大数据之Spark(四):Spark SQL

一、SparkSQL的发展1.1 概述SparkSQL是Spark⽣态体系中的构建在SparkCore基础之上的⼀个基于SQL的计算模块。 SparkSQL的前身不叫SparkSQL,⽽叫Shark,最开始的时候底层代码优化,sql的解析、执⾏引擎等等完全基于 Hive,总是Shark的执⾏速度要⽐hive⾼出⼀个数量级,但是hive的发展制约了Shark,所以在15年中旬的时候, shark负责⼈,将shark项⽬结束掉,重新独⽴出来的⼀个项⽬,就是sparksql,不再依赖hive,做了独⽴的发

2021-08-16 21:21:13 1109

原创 大数据之Spark(二):Spark RDD

五、Spark RDD 介绍RDD(Resilient Distributed Dataset):弹性分布式数据集,是Spark中最基本的数据抽象,它代表⼀个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩 性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用⼯作集,这极大地提升了查询速度。RDD特性:# RDD源码中的说明Internally, each RDD is characterized by fi

2021-08-11 23:17:40 663

原创 大数据之Spark(一):Spark 概述

一、Spark是什么?Spark是基于DAG(有向无环图)的内存计算引擎.二、Spark的安装部署Spark和MapReduce效率不同的原因:Spark把运算的中间数据存放在内存,迭代计算效率更高;mapreduce的中间结果需要落地,需要保存到磁盘,这样必然会有磁盘io操作,影响性。Standalone模式单机(Master+Worker同时运行)ly@hadoop00 spark-2.2.0-bin-hadoop2.7 % echo $SPARK_HOME/Us

2021-08-10 20:05:30 328

原创 Scala OOP

一、继承1 继承概念继承给编程带来的便利:提高了代码的复用性 提高了代码的扩展性和维护性二、抽象类与特质(trait)特质类似java中的接口:实现多继承的方式,和接口不同的是,trait中可以是非抽象成员,这一点和抽象类类似, 但是又不能拥有构造参数。abstract class AbsClazz(val name:String) {}//不能定义参数trait TraitDemo(val name:String) {val name:String //抽象字段val.

2021-08-05 21:03:47 130

原创 Scala高阶函数

高阶函数定义:高阶函数是指该函数的参数是函数,或者返回值是函数。集合map高阶函数数用法:def map[B](f: String => B): scala.collection.TraversableOnce[B]def map[B](f: Int => B): scala.collection.TraversableOnce[B]# 这里f的参数是String还是Int取决于集合中数据的类型val lst3=List(1,"a")def map[B](f: Any =&

2021-08-04 20:23:12 264

原创 IDEA 设置自动换行

如图所示 文件 -> 设置 ->编辑器 -> 常规 -> 自动换行将文件类型更改为 *.* 即可实现所有文件类型的自动换行。

2021-08-03 23:05:55 11042 1

原创 scala的集合类型

一、集合类型集合是⼀种用来存储各种对象和数据的容器。Scala 集合分为可变的和不可变的集合。1. 不可变集合可以安全的并发访问。 2. 可变集合可以在适当的地⽅被更新或扩展。这意味着你可以修改,添加,移除⼀个集合的元素。Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质,意味着 集合的基本特点是⽀持迭代遍历的。scala集合两个主要的包:# 不可变集合scala.collection.immutable (Scala默认采用.

2021-08-03 22:20:23 1526

原创 Scala基础语法

1 变量与类型val修饰的变量,相当于Java中final修饰的变量// 定义常量s1,使用字符串"1"赋值,自动推断为String类型,值不可变val s1 = "1"// 定义常量s2,手动指定类型为String,此时需要保证所赋值类型匹配val s2: String = "2"// 使用val定义基本数据类型时,值不可变,可以使用val重新定义注意:变量声明一定要初始化变量推断含义:声明变量时,可以不指定变量类型,编译器会根据赋值内容自动推断当前变量的类型。// 定

2021-08-02 20:37:27 534

原创 Scala中==、eq、ne和equals的区别

官方API定义:final def ==(arg0: Any): Boolean The expression x == that is equivalent to if (x eq null) that eq null else x.equals(that).//表达式x==that含义为:如果x eq null 则为that eq null 否则为x.equals(that)final def eq(arg0: AnyRef): Boolean Tests whether the argu

2021-08-02 17:41:38 588

原创 Hadoop的安装部署

1 本地模式搭建1.1 本地模式介绍- 特点:本地模式,即运⾏在单台机器上,没有分布式思想,使用的是本地⽂件系统。- ⽤途:本地模式主要⽤于对MapReduce程序的逻辑进⾏调试,确保程序的正确。由于在本地模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。1.2 平台软件说明平台&软件 说明 操作系统 Windows7 或 Windows 10 或 Mac OS 虚拟软件 VMWare 或 Parallels .

2021-07-31 20:38:52 547

原创 Hadoop概述

1Hadoop的简要介绍Hadoop是Apache基⾦会旗下⼀个开源的分布式存储和分析计算平台,使⽤java语言开发,具有很好的跨平台性,可以运⾏在商⽤(廉价)硬件上,⽤户⽆需了解分布式底层细节,就可以开发分布式程序,充分使⽤集群的⾼速计算和存储。Apache lucene是⼀个应⽤⼴泛的⽂本搜索系统库。该项⽬的创始⼈道格·卡丁在2002 年带领团队开发该项⽬中的⼦项⽬Apache Nutch,想要从头打造⼀个⽹络搜索引擎系 统,在开发的过程中,发现了两个问题,⼀个是硬件的⾼额资⾦投⼊,另⼀个是.

2021-07-31 15:58:44 258

转载 Intellij IDEA 常用快捷键介绍

Ctrl快捷键 介绍 Ctrl + F 在当前文件进行文本查找(必备) Ctrl + R 在当前文件进行文本替换(必备) Ctrl + Z 撤销(必备) Ctrl + Y 删除光标所在行 或 删除选中的行(必备) Ctrl + X 剪切光标所在行 或 剪切选择内容 Ctrl + C 复制光标所在行 或 复制选择内容 Ctrl + D 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面(必备) Ctrl ...

2021-07-31 14:56:57 82

原创 Scala概述

1 Scala介绍1.1 Scala的来源Scala名字由来:Scalable Language两个单词相结合;意大利语中 scala意为“梯子”或“楼梯”,蕴含“更佳的编程语言”。Martin Odersky(马丁·奥德斯基)于2001年基于Funnel的工作开始设计Scala。Funnel是把函数式编程思想和Petri网相结合的一种编程语言。Martin Odersky先前的工作是Generic Java和javac(Sun Java编译器)。Java平台的Scala于2003年底/20

2021-07-28 20:55:38 434

原创 源码安装azkaban时报错

记录一下源码安装azkaban时遇到的错误。1.下载源码包官网地址为:https://github.com/azkaban/azkaban/archive/3.57.0.tar.gz2.将源码包上传服务器并解压源码包[root@qianfeng01 home]# tar -zxvf /home/azkaban-3.57.0.tar.gz -C /home/3、执行编译编译参考官网地址:https://azkaban.readthedocs.io/en/latest/getSt..

2021-07-27 21:26:50 368

转载 linux中的.rc文件介绍

在Linux中,最为常用的缩略语也许是“rc”,它是“runcomm”的缩写――即名词“run command”(运行命令)的简写。 rc”是任何脚本类文件的后缀,这些脚本通常在程序的启动阶段被调用,通常是Linux系统启动时。如/etc/rs是Linux启动的主脚本,而.bashrc是当Linux的bash shell启动后所运行的脚本。 .bashrc的前缀“.”是一个命名标准,它被设计用来在用户文件中隐藏那些用户指定的特殊文件;“ls”命令默认情况下不会...

2021-07-27 21:24:50 5485

原创 windows脚本部署到linux时报错

问题原因:Linux和windows下的回车换行符不兼容解决办法:使用文本编辑器修改文本格式,以notepad++为例,编辑->档案格式转换->转换为UNIX格式:

2021-07-24 10:48:35 665 2

原创 使用镜像网站解决github访问速度慢问题

最常用的镜像网站https://hub.fastgit.org使用方法:将路径中https://github.com换为https://hub.fastgit.org即可

2021-07-21 17:27:50 275

转载 HADOOP生态圈知识概述

一. hadoop生态概况Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。Hadoop的核心是HDFS、YARN和Mapreduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示:随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示:根据服务对象和层次分为:数据..

2021-07-17 16:49:39 3569 1

原创 Yarn资源管理器

1 YARN简介为克服Hadoop 1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop 1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架 YARN.Apache YARN(Yet another Resource Negotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平 台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。yarn被引⼊Hadoop

2021-07-10 21:04:43 795 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除