![](https://img-blog.csdnimg.cn/20200310233803888.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
大数据
分享大数据学习相关内容,以及在工作中遇到的大数据问题
程序员X小鹿
前互联网大厂程序员/AIGC爱好者/自由职业2年+
展开
-
Zookeeper(五)—— Zookeeper常用命令
本文主要介绍Zookeeper常用的一些操作命令,包括Zookeeper服务器端的命令和Zookeeper客户端的命令。原创 2020-03-15 20:23:06 · 256 阅读 · 0 评论 -
Zookeeper(四)——Zookeeper分布式安装
本文讲述Zookeeper的分布式安装。原创 2020-03-15 20:19:41 · 164 阅读 · 0 评论 -
Zookeeper(三)—— Zookeeper安装配置(本地模式)
本文介绍Zookeeper本地模式的安装配置,并对配置中常用的参数进行解释。原创 2020-03-15 20:14:58 · 466 阅读 · 0 评论 -
Zookeeper(二)—— Zookeeper内部原理
本文主要介绍Zookeeper的内部原理,包括Zookeeper是如何进行选举的,Znode节点类型,stat结构体,监听器原理以及Zookeeper写数据的流程。原创 2020-03-15 20:10:54 · 230 阅读 · 0 评论 -
Zookeeper(一)—— Zookeeper介绍
Zookeeper是一个开源的、分布式的,为分布式应用提供协调服务的Apache项目。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Hadoop和HBase的重要组件。原创 2020-03-15 18:08:11 · 307 阅读 · 0 评论 -
Kafka整合Spark Streaming之Direct模式
Kafka整合Spark Streaming的两种模式:Receiver模式和Direct直连模式。现在在生产中,一般都会选择Direct直连模式来进行Kafka和Spark Streaming的整合,而在生产中,遇到最多的两个问题就是丢数据和重复读的问题。本篇将重点介绍Direct模式,讲述Direct模式的原理,以及Direct模式存在的问题和相关的解决办法。原创 2020-03-15 17:15:20 · 933 阅读 · 0 评论 -
Kafka整合Spark Streaming —— Receiver模式
Kafka整合Spark Streaming的两种模式:Receiver模式和Direct直连模式。本篇先来介绍Receiver模式,讲述Receiver模式的原理,以及Receiver模式存在的问题和相关的解决办法。虽然在生产中,一般都会选择Direct直连模式来进行Kafka和Spark Streaming的整合,甚至在新版中已经将Receiver模式拿掉了,但了解一下总归是没有坏处的。如果想直接了解Direct模式,请看下篇 Kafka整合Spark Streaming之Direct模式原创 2020-03-15 17:03:59 · 401 阅读 · 0 评论 -
Kafka(四)—— Kafka集群部署
本文主要讲述Kafka在集群上的部署,以及Kafka常用的命令和配置参数相关说明。原创 2020-03-14 22:05:00 · 276 阅读 · 0 评论 -
Kafka(三)—— Kafka消费过程分析
消息由生产者发布到Kafka集群后,会被消费者消费。消息的消费模型有两种:推送模型(Push)和拉取模型(Pull)。原创 2020-03-14 18:37:22 · 414 阅读 · 0 评论 -
Kafka(二)—— Kafka生产过程分析
Kafka工作流分析:如果 replication-factor 设成了3,则topic A 的所有Partition都有三个副本。Producer的时候,只写主的Partition,即只往Leader里写,剩下两个Follower,Leader到Follower之间的数据,都是由Kafka内部同步的。备份完成之后,Kafka会告诉Producer,写入成功了。Consumer在消费的时候,也是只从Leader消费。原创 2020-03-14 17:30:52 · 300 阅读 · 0 评论 -
Kafka(一)—— Kafka介绍
Kafka是开源消息系统。最初由 LinkedIn 公司开发,2011年开源,2012年10月从 Apache 毕业。项目目标是为处理实时数据,提供一个统一、高通量、低等待的平台。本文主要引入Kafka的一些相关概念及Kafka架构。原创 2020-03-14 16:42:54 · 499 阅读 · 0 评论 -
Spark Streaming(七)—— Spark Streaming性能优化
本文从3方面介绍在生产中常用的Spark Streaming调优方式,减少批数据的执行时间(数据并行接受、数据并行处理、数据序列化),设置合理的批容量以及内存参数调优。原创 2020-03-14 15:12:07 · 401 阅读 · 0 评论 -
Spark Streaming(六)—— 检查点
流数据处理程序通常都是全天候运行,因此必须对应用中逻辑无关的故障(例如,系统故障,JVM崩溃等)具有弹性。为了实现这一特性,Spark Streaming需要checkpoint足够的信息到容错存储系统,以便可以从故障中恢复。原创 2020-03-13 16:56:45 · 385 阅读 · 0 评论 -
Spark Streaming(五)—— Spark Streaming缓存/持久化
与RDD类似,DStreams还允许开发人员将流数据保留在内存中。也就是说,在DStream上调用persist() 方法会自动将该DStream的每个RDD保留在内存中。如果DStream中的数据将被多次计算(例如,相同数据上执行多个操作),这个操作就会很有用。对于基于窗口的操作,如reduceByWindow和reduceByKeyAndWindow以及基于状态的操作,如updateSta...原创 2020-03-13 16:46:16 · 510 阅读 · 0 评论 -
Spark Streaming(四)—— Spark Streaming输出
输出操作允许DStream的操作推到如数据库、文件系统等外部系统中。本文主要以举例的方式讲述Spark Streaming常用的输出。原创 2020-03-13 16:44:36 · 274 阅读 · 0 评论 -
Spark Streaming(三)—— 高级数据源Flume
Spark Streaming 是一个流式计算引擎,就需要对接外部数据源来对接、接收数据。每一个输入流DStream和一个Receiver对象相关联,这个Receiver从源中获取数据,并将数据存入内存中用于处理。Spark Streaming的基本数据源(文件流、RDD队列流、套接字流)上篇已经介绍过了,而Spark Streaming的高级数据流主要有Kafka,Flume,Kinesis,Twitter等。本文主要介绍Flume作为高级数据源的使用。原创 2020-03-13 16:33:40 · 608 阅读 · 0 评论 -
Spark Streaming(二)—— Spark Streaming基本数据源
Spark Streaming 是一个流式计算引擎,就需要对接外部数据源。每一个输入流DStream和一个Receiver对象相关联,这个Receiver从源中获取数据,并将数据存入内存中用于处理。本文主要介绍三种基本的数据源:文件流、RDD队列流、套接字流。原创 2020-03-13 16:18:38 · 2491 阅读 · 0 评论 -
Spark Streaming(一)—— Spark Streaming介绍
介绍Spark Streaming的特点、概念及常用的实时计算引擎的对比,讲述Spark Streaming内部结构,StreamingContext对象创建的两种方式,离散流DStream及窗口。原创 2020-03-13 16:06:48 · 501 阅读 · 0 评论 -
Spark SQL(六)—— Spark SQL性能优化
性能调优主要是将数据放入内存中操作。把数据缓存在内存中,可以通过直接读取内存的值来提高性能。在RDD中,使用rdd.cache 或者 rdd.persist来进行缓存,DataFrame 底层是RDD,所以也可以进行缓存。原创 2020-03-13 15:01:06 · 480 阅读 · 0 评论 -
Spark SQL(五)—— Spark SQL数据源
文章目录1. 使用load(加载函数)、save(存储函数)2. Parquet文件2.1 把其他文件转换成Parquet文件2.2 支持Schema合并3. JSON文件4. JDBC4.1 方式一:read.format("jdbc")4.2 方式二:定义Properties类5. Hive5.1 配置Spark SQL支持Hive5.2 使用Spark SQL操作 Hive在Spark S...原创 2020-03-13 01:24:50 · 853 阅读 · 0 评论 -
Spark SQL(四)—— Spark SQL中的视图
文章目录视图是一个虚表,不存储数据DataFrame和Dataset都可以创建视图视图的两种类型:普通视图:createTempView,createOrReplaceTempView本地视图,只在当前Session中有效。当创建了一个新的Session,是不能访问到之前的视图的。会报“org.apache.spark.sql.AnalysisException: Ta...原创 2020-03-13 00:36:40 · 3855 阅读 · 0 评论 -
Spark SQL(三)—— Dataset
文章目录1. 创建Dataset1.1 方式一:使用序列1.2 方式二:使用JSON数据,将DataFrame转换成Dataset1.3 方式三:使用其他数据2. 操作Dataset2.1 基本操作2.2 多表关联Dataset 是 Spark 1.6 之后,对 DataFrame做的一个封装。为了解决DataFrame缺乏编译时类型安全这个问题。可以把Dataset理解成高级的DataFram...原创 2020-03-12 23:57:24 · 194 阅读 · 0 评论 -
Spark SQL(二)—— DataFrame
文章目录1. 创建DataFrame1.1 方式一:使用 case class 样本类。特点:支持模式匹配。1.2 方式二:使用Spark Session1.3 方式三:直接读取一个带格式的文件:JSON文件2. 操作DataFrame2.1 DSL语句2.2 SQL语句1. 创建DataFrame1.1 方式一:使用 case class 样本类。特点:支持模式匹配。// 1.定义表的sc...原创 2020-03-12 22:57:51 · 178 阅读 · 0 评论 -
Spark SQL(一)—— Spark SQL介绍
文章目录1. 什么是 Spark SQL2. 特点3. 为什么要学习Spark SQL4. 核心的概念:表(DataFrame 或 Dataset)1. 什么是 Spark SQLSpark SQL is Apache Spark’s module for working with structured data.Spark SQL是Spark用来处理结构化数据的一个模块。在 Spa...原创 2020-03-12 22:31:08 · 497 阅读 · 0 评论 -
Spark(九)—— WordCount
文章目录1. 在Spark Shell中编写WordCount程序2. 在IDEA中编写WordCount程序并提交到集群1. 在Spark Shell中编写WordCount程序启动Spark Shell集群模式:./spark-shell --master spark://node3:7077 --executor-memory 2g --total-executor-cores ...原创 2020-03-12 17:51:08 · 217 阅读 · 0 评论 -
Spark(八)—— RDD依赖关系和Spark任务中的Stage
依赖关系窄依赖比喻为独生子女。每一个父RDD分区,最多被子RDD的一个分区使用。eg:map,filter,union宽依赖多个子RDD分区,依赖同一个父RDD分区。eg:groupByKey任务划分阶段的依据:宽依赖DAG(Directed Acyclic Graph)叫做有向无环图,原始的RDD通过一系列的转换就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分...原创 2020-03-12 16:14:51 · 205 阅读 · 0 评论 -
Spark(七)—— RDD Checkpoint容错机制
概念:Lineage 血统理解:表示任务执行的生命周期(整个任务的执行过程)检查点(本质是通过将RDD写入Disk做检查点)是为了通过Lineage(血统)做容错的辅助,Lineage过长会造成容错成本过高,这样就不如在中间阶段做检查点容错,如果之后有节点出现问题而丢失分区,从做检查点的RDD开始重做Lineage,就会减少开销。检查点类型本地目录(不推荐)这种模式,需要将s...原创 2020-03-12 16:11:15 · 173 阅读 · 0 评论 -
Spark(六)—— RDD缓存机制
RDD通过persist方法或cache方法可以将前面的计算结果缓存(默认将RDD的数据缓存在内存中)。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供后面重用,以提高性能。通过查看源码发现cache最终也是调用了persist方法def persist():this.type = persist(StorageLevel....原创 2020-03-12 16:07:30 · 816 阅读 · 0 评论 -
Spark(五)—— Action算子
立即执行计算。动作含义reduce(func)通过func函数聚集RDD中的所有元素,这个功能必须是课交换且可并联的collect()在驱动程序中,以数组的形式返回数据集的所有元素count()返回RDD的元素个数first()返回RDD的第一个元素(类似于take(1))take(n)返回一个由数据集的前n个元素组成的数组takeSa...原创 2020-03-12 16:01:45 · 234 阅读 · 0 评论 -
Spark(四)—— Transformation算子
文章目录Transformation算子基本算子1. map(func)2. filter(func)3. flatMap4. 集合运算(union、intersection、distinct)5. 分组(groupByKey、reduceByKey、cogroup)6. 排序(sortBy、sortByKey)高级算子1. mapPartitionsWithIndex(func)2. aggre...原创 2020-03-12 15:59:40 · 987 阅读 · 0 评论 -
Spark(三)—— RDD
文章目录RDD概念1. 什么是RDD2. RDD特性3. RDD如何创建4. RDD类型RDD概念1. 什么是RDD弹性分布式数据集(Resilient Distributed Dataset)Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。不可变:不可变性是指每个 RDD 都是只读的,它所包含的分区信息是不可变的。由于已有的 RDD 是不可...原创 2020-03-12 14:11:13 · 241 阅读 · 0 评论 -
Spark(一)—— Spark介绍
文章目录1. 什么是Spark2. 为什么要学习Spark3. Spark特点4. Spark体系结构5. Spark运行机制及原理分析1. 什么是SparkApache Spark™ is a unified analytics engine for large-scale data processing.我的翻译:Spark是一个针对大规模数据处理的统一分析引擎。Spark是一种快...原创 2020-03-12 00:11:21 · 211 阅读 · 0 评论 -
Flume(三)—— Flume案例
文章目录1. 案例一:监控端口数据2. 案例二:监测(实时读取)本地文件到HDFS3. 案例三:实时读取目录文件到HDFS4. 案例四:扇出5. 案例五:扇入6. 案例六:Flume拦截器6.1 时间拦截器6.2 主机名拦截器6.3 UUID拦截器6.4 查询替换拦截器6.5 正则过滤拦截器6.6 正则抽取拦截器6.7 自定义拦截器7. 案例七:Flume对接Kafka8. 案例八:Kafka对接...原创 2020-03-11 17:52:41 · 716 阅读 · 0 评论 -
Flume(二)—— Flume安装部署
下载Flume安装包到本地,然后上传至服务器/usr/local。在XShell中使用rz上传,sz下载。如果没有rz,sz命令,通过 yum install lrzsz安装。解压到当前目录并重命名,删除安装包。# 解压到当前目录tar -zxvf apache-flume-1.9.0-bin.tar.gz# 解压后删除安装包rm -rf apache-flume-1.9.0...原创 2020-03-11 17:03:14 · 226 阅读 · 0 评论 -
Flume(一)—— Flume介绍
文章目录1. Flume简介2. Flume角色3. Flume传输过程4. 扇入扇出5. Source、Channel、Sink的类型总结1. Flume简介Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务。Flume基于流式架构,容错性强,也很灵活简单。Flume、Kafka用来实时进行数据收集,Spark、Flink用来实时处理数据,impala用...原创 2020-03-11 17:00:32 · 165 阅读 · 0 评论 -
Azkaban(三)—— Azkaban任务
文章目录1. 案例一:单一job2. 案例二:创建有依赖关系的多个job3. 案例三:使用Azkaban调度java程序4. 案例四:HDFS操作任务5. 案例五:MapReduce任务(见案例二)6. 案例六:Hive脚本任务Azkaban上传的工作流文件只支持xxx.zip文件。zip应包含xxx.job运行作业所需的文件和任何文件(文件名后缀必须以.job结尾,否则无法识别)。作业名称在项...原创 2020-03-11 16:50:50 · 661 阅读 · 0 评论 -
Azkaban(一)—— Azkaban介绍
文章目录1.1 为什么需要工作流调度系统1.2 什么是Azkaban1.3 Azkaban适用场景1.4 Azkaban特点1.5 常见的工作流调度系统1.6 Azkaban和Ooize特性对比1.7 Azkaban的架构1.1 为什么需要工作流调度系统一个完整的数据分析系统通常都是由大量任务单元组成:Shell脚本程序,Java程序,MapReduce程序、Hive脚本等。各任务单...原创 2020-03-11 16:44:32 · 590 阅读 · 0 评论 -
Sqoop(三)—— Sqoop脚本打包
文章目录1. 脚本打包2. Sqoop一些常用命令及参数2.1 job命令1. 脚本打包使用opt格式的文件打包Sqoop命令,然后执行。(1) 创建一个.opt文件# 创建一个.opt文件touch job_HDFS2RDBMS.optjob_HDFS2RDBMS.opt文件内容如下:# 以下命令是从stu中追加导入到MySQL的stu_hive表中export--conne...原创 2020-03-11 16:18:54 · 688 阅读 · 0 评论 -
Sqoop(二)—— Sqoop导入/导出数据
文章目录1. 导入数据1.1 RDBMS -> HDFS1.1.1 全部导入1.1.2 查询导入1.1.3 导入指定列1.1.4 使用sqoop关键字筛选查询导入数据1.2 RDBMS -> Hive1.2.1 普通导入1.2.2 增量导入(incremental append)1.2.3 增量导入(incremental lastmodified)1.3 RDBMS -> HB...原创 2020-03-11 15:52:54 · 797 阅读 · 0 评论 -
Sqoop(一)—— Sqoop安装配置
文章目录1. Sqoop介绍1.1 Sqoop简介1.2 Sqoop原理2. Sqoop安装配置1. Sqoop介绍1.1 Sqoop简介Apache Sqoop™是一种旨在有效地在Apache Hadoop和诸如关系数据库等结构化数据存储之间传输大量数据的工具。Sqoop于2012年3月孵化出来,现在是一个顶级的Apache项目。请注意,1.99.7与1.4.6不兼容,且没有特征不完整,...原创 2020-03-11 15:41:41 · 233 阅读 · 0 评论