摘要: 直接贴面试题: 怎么保证数据 kafka 里的数据安全? 答: 生产者数据的不丢失kafka 的 ack 机制: 在 kafka 发送数据的时候,每次发送消息都会有一个确认反馈机制,确保消息正常的能够被收到。 如果是同步模式:ack 机制能够保证数据的不丢失,如果 ack 设置为 0,风险很大,一般 阅读全文
posted @ 2019-11-29 20:01 花未全开*月未圆 阅读(1874) 评论(0) 推荐(0)
摘要: HBase与Hive的对比 1.Hive (1) 数据仓库 Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询。 (2) 用于数据分析、清洗 Hive适用于离线的数据分析和清洗,延迟较高。 (3) 基于HDFS、MapReduce Hive 阅读全文
posted @ 2019-11-29 19:53 花未全开*月未圆 阅读(255) 评论(0) 推荐(0)
摘要: 环境准备 新建项目后在pom.xml中添加依赖: <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>1.3.1</version> </dependency> 阅读全文
posted @ 2019-11-29 19:51 花未全开*月未圆 阅读(153) 评论(0) 推荐(0)
摘要: 一、服务端调优 1、参数配置 1)、hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC, 阅读全文
posted @ 2019-11-29 19:48 花未全开*月未圆 阅读(270) 评论(0) 推荐(0)
摘要: 第7章 HBase优化 7.1 高可用 在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果Hmaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对Hmaster的高可用配置。 阅读全文
posted @ 2019-11-29 19:36 花未全开*月未圆 阅读(302) 评论(0) 推荐(0)
摘要: HBase特点 1)海量存储 Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。 2)列式存储 这里的列式存储其实说的是列族存储,Hbase 阅读全文
posted @ 2019-11-29 19:32 花未全开*月未圆 阅读(246) 评论(0) 推荐(0)
摘要: 组成及作用: 用户接口:ClientCLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive) 元数据:Metastore 元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录 阅读全文
posted @ 2019-11-29 19:15 花未全开*月未圆 阅读(283) 评论(0) 推荐(0)
摘要: hive调优是比较大的专题,需要结合实际的业务,数据的类型,分布,质量状况等来实际的考虑如何进行系统性的优化,hive底层是mapreduce,所以hadoop调优也是hive调优的一个基础,hvie调优可以分为几个模块进行考虑,数据的压缩与存储,sql的优化,hive参数的优化,解决数据的倾斜等。 阅读全文
posted @ 2019-11-29 19:10 花未全开*月未圆 阅读(958) 评论(0) 推荐(0)
摘要: 故障排除一:控制reduce端缓冲大小以避免OOM 在Shuffle过程,reduce端task并不是等到map端task将其数据全部写入磁盘后再去拉取,而是map端写一点数据,reduce端task就会拉取一小部分数据,然后立即进行后面的聚合、算子函数的使用等操作。 reduce端task能够拉取 阅读全文
posted @ 2019-11-29 18:53 花未全开*月未圆 阅读(352) 评论(0) 推荐(0)
摘要: Spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题。 例如,reduce点一共要处理100万条数据,第一个和第二个task分别被分配到了1万条数据,计算5分钟内完成,第三个task分配到了98万数据,此 阅读全文
posted @ 2019-11-29 18:48 花未全开*月未圆 阅读(238) 评论(0) 推荐(0)
摘要: 对于JVM调优,首先应该明确,(major)full gc/minor gc,都会导致JVM的工作线程停止工作,即stop the world。 JVM调优一:降低cache操作的内存占比 1. 静态内存管理机制 根据Spark静态内存管理机制,堆内存被划分为了两块,Storage和Executio 阅读全文
posted @ 2019-11-29 18:42 花未全开*月未圆 阅读(364) 评论(0) 推荐(0)
摘要: 在Spark任务运行过程中,如果shuffle的map端处理的数据量比较大,但是map端缓冲的大小是固定的,可能会出现map端缓冲数据频繁spill溢写到磁盘文件中的情况,使得性能非常低下,通过调节map端缓冲的大小,可以避免频繁的磁盘IO操作,进而提升Spark任务的整体性能。 map端缓冲的默认 阅读全文
posted @ 2019-11-29 18:40 花未全开*月未圆 阅读(334) 评论(0) 推荐(0)
摘要: 算子调优一:mapPartitions 普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作。如果是普通的map算子,假设一个partition有1万条数据,那么map算子中的function要执行1万次,也就是对每个元素进行操作。 如果是ma 阅读全文
posted @ 2019-11-29 18:35 花未全开*月未圆 阅读(628) 评论(0) 推荐(0)
摘要: 1.1.1 常规性能调优一:最优资源配置 Spark性能调优的第一步,就是为任务分配更多的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。 资源的分配在使用脚本提交Spark任务时进行指定,标准的Spark任务提交脚本如代 阅读全文
posted @ 2019-11-29 18:30 花未全开*月未圆 阅读(291) 评论(0) 推荐(0)
摘要: 资源参数调优 了解完了Spark作业运行的基本原理之后,对资源相关的参数就容易理解了。所谓的Spark资源参数调优,其实主要就是对Spark运行过程中各个使用资源的地方,通过调节各种参数,来优化资源使用的效率,从而提升Spark作业的执行性能。以下参数就是Spark中主要的资源参数,每个参数都对应着 阅读全文
posted @ 2019-11-29 18:12 花未全开*月未圆 阅读(240) 评论(0) 推荐(0)
摘要: 怎样提高Spark Streaming的性能 1、创建多个接收器 待定:: 2、调节每一个batch interval的数据块的数量,其实就是调整上面第二个问题中提到的配置spark.streaming.blockInterva 待定:: 3、调整Recevier每秒接收数据的速率 待定:: 4、通 阅读全文
posted @ 2019-11-29 18:06 花未全开*月未圆 阅读(491) 评论(0) 推荐(0)
摘要: Spark Streaming应用也是Spark应用,Spark Streaming生成的DStream最终也是会转化成RDD,然后进行RDD的计算,所以Spark Streaming最终的计算是RDD的计算,那么Spark Streaming的原理当然也包含了Spark应用通用的原理。Spark 阅读全文
posted @ 2019-11-29 17:59 花未全开*月未圆 阅读(738) 评论(0) 推荐(0)
摘要: Spark SQL中的Catalyst 的工作机制 答:不管是SQL、Hive SQL还是DataFrame、Dataset触发Action Job的时候,都会经过解析变成unresolved的逻辑执行计划,然后利用元数据信息对unresolved的逻辑执行计算进行分析,得到逻辑执行计划,然后对逻辑 阅读全文
posted @ 2019-11-29 17:46 花未全开*月未圆 阅读(498) 评论(0) 推荐(0)
摘要: Spark中的延迟调度 Spark的Task的调度过程有五个本地性级别:PROCESS_NODE、NODE_LOCAL、NO_PREF、RACK_LOCAL、ANY。在理想的状态下,我们肯定是想所有的Task的调度都是PROCESS_NODE级别的,这样的话所有的Task都是在数据所在的机器上进行计 阅读全文
posted @ 2019-11-29 17:11 花未全开*月未圆 阅读(542) 评论(0) 推荐(0)
摘要: 在使用spark-submit提交一个Spark应用之后,Driver程序会向集群申请一定的资源来启动东若干个Executors用来计算,当这些Executors启动后,它们会向Driver端的SchedulerBackend进行注册,告诉Driver端整个每一个Executor的资源情况。 那么在 阅读全文
posted @ 2019-11-29 17:09 花未全开*月未圆 阅读(758) 评论(1) 推荐(0)
摘要: 一言以蔽之: 累加器就是只写变量 通常就是做事件统计用的 因为rdd是在不同的excutor去执行的 你在不同excutor中累加的结果 没办法汇总到一起 这个时候就需要累加器来帮忙完成 广播变量是只读变量 正常的话我们在driver定义一个变量 需要序列化 才能在excutor端使用 而且是每个t 阅读全文
posted @ 2019-11-29 17:06 花未全开*月未圆 阅读(278) 评论(0) 推荐(0)
摘要: 内存调优 Hadoop处理数据时,出现内存溢出的处理方法?(内存调优) 1、Mapper/Reducer阶段JVM内存溢出(一般都是堆) 1)JVM堆(Heap)内存溢出:堆内存不足时,一般会抛出如下异常: 第一种:“java.lang.OutOfMemoryError:” GC overhead 阅读全文
posted @ 2019-11-29 16:50 花未全开*月未圆 阅读(6774) 评论(0) 推荐(0)
摘要: Map阶段优化 1、在代码书写时优化,如尽量避免在map端创建变量等,因为map端是循环调用的,创建变量会增加内存的消耗,尽量将创建变量放到setup方法中 2、配置调优,可以在集群配置和任务运行时进行调优,如:调优总的原则给shufflfflffle过程尽量多提供内存空间,在map端,可以通过避免 阅读全文
posted @ 2019-11-29 16:49 花未全开*月未圆 阅读(2732) 评论(0) 推荐(0)
摘要: MapReduce的核心运行机制概述: 一个完整的 MapReduce 程序在分布式运行时有两类实例进程: 1、MRAppMaster:负责整个程序的过程调度及状态协调 2、Yarnchild:负责 map 阶段的整个数据处理流程 3、Yarnchild:负责 reduce 阶段的整个数据处理流程 阅读全文
posted @ 2019-11-29 16:29 花未全开*月未圆 阅读(328) 评论(0) 推荐(0)
摘要: Hadoop2.X后,MapReduce一般都是跑在Yarn上,所以说MapReduce的运行原理,更多是讲MapReduce On Yarn的运行原理,MapReduce On Yarn的运行原理图如下: 1:job的提交 1.1、向RM申请一个新的applicationId 1.2、判断job的 阅读全文
posted @ 2019-11-29 16:13 花未全开*月未圆 阅读(202) 评论(0) 推荐(0)
摘要: Reduce大致分为copy、sort、reduce三个阶段,重点在前两个阶段。copy阶段包含一个eventFetcher来获 取已完成的map列表,由Fetcher线程去copy数据,在此过程中会启动两个merge线程,分别为 inMemoryMerger和onDiskMerger,分别将内存中 阅读全文
posted @ 2019-11-29 16:07 花未全开*月未圆 阅读(573) 评论(0) 推荐(0)
摘要: (1)Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。 (2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。 (3)Collect收集阶段:在用户 阅读全文
posted @ 2019-11-29 16:02 花未全开*月未圆 阅读(201) 评论(0) 推荐(0)
摘要: 概述 1、MapReduce 中,mapper 阶段处理的数据如何传递给 reducer 阶段,是 MapReduce 框架中 最关键的一个流程,这个流程就叫 Shuffle 2、Shuffle: 数据混洗 ——(核心机制:数据分区,排序,局部聚合,缓存,拉取,再合并 排序) 3、具体来说:就是将 阅读全文
posted @ 2019-11-29 16:00 花未全开*月未圆 阅读(567) 评论(0) 推荐(0)
摘要: MapReduce是什么 HDFS:分布式存储系统 MapReduce:分布式计算系统 YARN:hadoop 的资源调度系统 Common:以上三大组件的底层支撑组件,主要提供基础工具包和 RPC 框架等 MapReduce 是一个分布式运算程序的编程框架,是用户开发“基于 Hadoop 的数据分 阅读全文
posted @ 2019-11-29 15:44 花未全开*月未圆 阅读(182) 评论(0) 推荐(0)
摘要: HDFS中的NameNode的HA怎么实现?(一言以蔽之) 在Hadoop集群中配置并启动两个NameNode进程,一个作为Active节点对外提供服务,另一个作为Standby的节点,两个NameNode启动的时候都会在Zookeeper中创建一个临时有序的节点,Zookeeper会取最小的节点对 阅读全文
posted @ 2019-11-29 15:02 花未全开*月未圆 阅读(1088) 评论(0) 推荐(0)
摘要: 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/qq_35641192/article/details/80303879 版权声明:本文为CSDN博主「JokerDa」的原创文章,遵循 CC 阅读全文
posted @ 2019-11-29 14:48 花未全开*月未圆 阅读(283) 评论(0) 推荐(0)
摘要: 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_37838429/article/details/81674765————————————————版权声明:本文为CSDN博主「 阅读全文
posted @ 2019-11-29 14:31 花未全开*月未圆 阅读(362) 评论(0) 推荐(0)
摘要: 创建文件 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.ha 阅读全文
posted @ 2019-11-29 14:18 花未全开*月未圆 阅读(442) 评论(0) 推荐(0)
摘要: HDFS的Shell操作 1.基本语法 bin/hadoop fs 具体命令 OR bin/hdfs dfs 具体命令 dfs是fs的实现类。 2.命令大全 [Tesla@hadoop102 hadoop-2.7.2]$ bin/hadoop fs [-appendToFile <localsrc> 阅读全文
posted @ 2019-11-29 14:13 花未全开*月未圆 阅读(345) 评论(0) 推荐(0)
摘要: 1、2、 客户端向NameNode发起创建文件的请求,在NameNode上创建一个文件名,并且返回一个输出流 3、客户端向输出流发起写入数据的请求 4、输出流向NameNode请求写数据,NameNode根据请求的数据的大小,给数据分块,并且返回指定数据块对应的DataNode 5、 6、客户端拿到 阅读全文
posted @ 2019-11-29 13:49 花未全开*月未圆 阅读(186) 评论(0) 推荐(0)
摘要: hdfs产生背景: 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。 HDFS定义 Hdfs(hadoop distribute 阅读全文
posted @ 2019-11-29 13:48 花未全开*月未圆 阅读(205) 评论(0) 推荐(0)