大数据集群
ChanKamShing
这个作者很懒,什么都没留下…
展开
-
Failed to start LSB: Bring up/down networking.
转载:https://blog.csdn.net/dongfei2033/article/details/81124465 转载之前,讲述一下博主出现“Failed to start LSB: Bring up/down networking.”的原因,在创建虚拟机的时候并没有出现任何问题,当搭建集群的时候,需要将原来的虚拟机关闭,然后进行复制镜像,再次启动原先的虚拟机时就出现标...转载 2019-03-19 23:52:24 · 1271 阅读 · 1 评论 -
Flink的WaterMark,及demo实例
实际生产中,由于各种原因,导致事件创建时间与处理时间不一致,收集的规定对实时推荐有较大的影响。所以一般情况时选取创建时间,然后事先创建flink的时间窗口。但是问题来了,如何保证这个窗口的时间内所有事件都到齐了?这个时候就可以设置水位线(waterMark)。概念:支持基于时间窗口操作,由于事件的时间来源于源头系统,很多时候由于网络延迟、分布式处理,以及源头系统等各种原因导致源...原创 2019-08-18 20:02:52 · 528 阅读 · 0 评论 -
Spark——传递函数与闭包
在Scala中,你可以在任何作用于内定义函数,在函数体内,可以访问相应作用域内的任何变量;还不止,你的函数还可以在变量不再处于作用于内的时候被调用,这就是闭包的最基本的理解。一、transform、action算子的函数参数 在spark集群中,spark应用由负责运行用户编写的main函数,以及在集群上运行的各种并行操作的驱动器程序(Driver)和并行运行...原创 2019-07-22 22:22:19 · 236 阅读 · 0 评论 -
Spark消息通信原理(一)——Spark消息通信架构
在Spark中定义了通信框架的接口,这些接口中调用了Netty的具体方法(在spark2.x前,使用的是Akka)。各接口和实现类的关系如下图所示。 通信架构使用了工厂模式实现(关于工厂模式,可以参考:https://blog.csdn.net/weixin_39400271/article/details/86578215)。首先定义了RpcEnvFac...原创 2019-07-23 14:29:49 · 324 阅读 · 0 评论 -
Spark作业执行原理(五)——执行任务
在Spark消息通信原理(三)(https://blog.csdn.net/weixin_39400271/article/details/97136007)中第(6)点提到过,Executor是任务执行的容器,executor接收到LaunchTask消息之后(其实是GoraseGrainedExecutorBackend接收到来自DriverEndpoint的LaunchTas...原创 2019-08-05 11:32:39 · 153 阅读 · 0 评论 -
Spark作业执行原理(六)——获取执行结果
对于Executor的计算结果,会根据结果的大小使用不同的处理策略:计算结果在(0,128MB-200KB)区间内:通过Netty直接发送给Driver终端; 计算结果在[128MB, 1GB]区间内:将结果以taskId为编号存入到BlockManager中,然后通过Netty把编号发送给Driver终端;阈值可通过Netty框架传输参数设置spark.akka.fra...原创 2019-08-05 15:03:27 · 774 阅读 · 0 评论 -
RDD转DataFrame常用的两种方式
随着Spark1.4.x的更新,Spark提供更高阶的对象DataFrame,提供了比RDD更丰富的API操作,同时也支持RDD转DataFrame(下面简称“DF”),但是要注意,不是任意类型对象组成的RDD都可以转换成DF,,只有当组成RDD[T]的每一个T对象内部具有鲜明的字段结构时,才能隐式或者显示地创建DF所需要的Schema(结构信息),从而进行RDD->DF转换...原创 2019-08-07 22:47:07 · 693 阅读 · 0 评论 -
SparkSQL自定义无类型聚合函数
准备数据文件:Michael,3000Andy,4500Justin,3500Betral,4000一、定义自定义无类型聚合函数 想要自定义无类型聚合函数,那必须得继承org.spark.sql.expressions.UserDefinedAggregateFunction,然后重写父类得抽象变量和成员方法。package com.cjsimport ...原创 2019-08-08 22:17:16 · 199 阅读 · 0 评论 -
Spark作业执行原理(三)——提交调度阶段
在上一篇划分调度阶段中的handleJobSubmitted方法中,提到finalStage的生成,在生成finalStage的同时,建立起所有Stage的依赖关系,然后通过finalStage生成一个作业实例,在该作业实例中按照顺序提交调度阶段进行执行,在执行过程中监听总线获取作业、阶段执行的情况。回顾handleJobSubmitted方法中部分源码://根据最后一个...原创 2019-08-01 18:09:28 · 186 阅读 · 0 评论 -
SparkSQL自定义强类型聚合函数
自定义强类型聚合函数跟自定义无类型聚合函数的操作类似,相对的,实现自定义强类型聚合函数则要继承org.apache.spark.sql.expressions.Aggregator。强类型的优点在于:其内部与特定数据集紧密结合,增强了紧密型、安全性,但由于其紧凑的特性,降低了适用性。准备employ.txt文件:Michael,3000Andy,4500Justin,...原创 2019-08-08 22:24:33 · 232 阅读 · 0 评论 -
Spark存储原理——数据写入过程
Spark数据的写入过程的入口点位doPutIterator方法。下面是一些方法的调用关系图: 在该方法中,根据数据是否缓存到内存中处理。如果不缓存到内存中,则调用BlockManager的putIterator方法直接存储到磁盘中;如果缓存到内存中,则先判断数据存储级别是否对数据进行了反序列化操作:如果设置了反序列化操作,则调用putIteratorAsVa...原创 2019-08-19 09:41:55 · 517 阅读 · 0 评论 -
SparkSql中,关于Hive表与Parquet文件的Schema转化兼容
从表Schema处理角度对比Hive和Parquet,两者主要的区别:Hive区分大小写,Parquet不区分大小写; Hive允许所有的列为空,而Parquet不允许所有列为空;基于上述两点区别,在进行Hive metastore Parquet转换为SpqrkSql Parquet时,需要将两者的结构进行一致化,其一致化规则:两者同名字段必须具有相同的数据类型,一致化后的字段必须为...原创 2019-08-10 17:52:41 · 975 阅读 · 0 评论 -
Spark的TaskSetManager(任务管理器)的排序算法
Spark作业执行中,有一个步骤是给任务进行资源分配,实际上这些任务由一些任务管理器TaskSetManager负责管理,资源分配过程中,会先根据某种排序算法排好序,然后根据就近原则给任务进行资源分配。那么关于TaskSetManager的排序是根据哪个算法呢?现在就来介绍。 排序算法由两种调度策略FIFOSchedulingAlorithm和FairSchedu...原创 2019-08-15 11:24:41 · 346 阅读 · 0 评论 -
User协同过滤(基于Python实现)
项目地址:https://github.com/ChanKamShing/UserCF_python.git推荐系统的作业流程:召回/match(推荐引擎)-> 物品候选集 -> 过滤 -> 排序 -> 策略(保证结果多样性) -> 推荐list协同过滤CF属于第一阶段,我们常常称之为“推荐引擎”。“推荐引擎”可以有多个基准,包括:基于相似用户、基于相似物...原创 2019-08-24 18:08:02 · 636 阅读 · 0 评论 -
User协同过滤(基于Spark实现)
项目地址:https://github.com/ChanKamShing/UserCF_Spark.git推荐系统的作业流程:召回/match(推荐引擎)-> 物品候选集 -> 过滤 -> 排序 -> 策略(保证结果多样性) -> 推荐list协同过滤CF属于第一阶段,我们常常称之为“推荐引擎”。“推荐引擎”可以有多个基准,包括:基于相似用户、基于相似物品...原创 2019-08-25 12:22:55 · 1008 阅读 · 0 评论 -
Spark作业执行原理(二)——划分调度阶段
Spark调度阶段的划分是由DAGScheduler实现,DAGScheduler会从最后一个RDD出发,根据RDD的lineage使用广度优先算法遍历整个依赖树(总共使用了两次,一次是遍历区分ResultStage范围;另一次则是遍历获取ShuffleMapStage划分依据,用来划分每个ShuffleMapStage范围),从而划分调度阶段,调度阶段的划分依据是以是否进行shu...原创 2019-08-01 11:43:10 · 362 阅读 · 0 评论 -
Spark作业执行原理(四)——提交任务
首先熟悉一下该阶段的一些重要方法的调用关系图: 在上一篇提交调度阶段中,提到:当该阶段不存在父调度阶段时,就会调用DAGScheduler的submitMissingTasks方法。这个方法就是触发任务的提交。在方法中,会根据调度阶段Partition个数拆分对应的个数的任务,一个partition对应一个task,每一个stage里的所有task组成一个TaskSet,将会...原创 2019-08-03 15:23:12 · 244 阅读 · 0 评论 -
搭建集群环境(CentOS7+Hadoop2.6.1+SSH)
本篇介绍如何使用虚拟机搭建Hadoop集群,此例搭建1个master和2个slave,如要更多的slave,方法如此类推。 现在已经有安装了一台虚拟机,1、查看虚拟机的虚拟网络,设置为NAT模式:编辑——>虚拟网络编辑器进入到虚拟网络编辑器界面后,单击VMnet8,这里可以查看网关IP,默认是192.168.112.2,这个很重要...原创 2019-04-08 22:36:58 · 614 阅读 · 0 评论 -
CentOS7搭建Hive1.2.2+mysql5.7
写在最前,本次环境搭建是在Hadoop2.6.1,三节点的基础上完成的。(关于搭建Hadoop环境,可参考:https://blog.csdn.net/weixin_39400271/article/details/89057884)说明:#master,表示在master节点上操作;#master,#slave1,#slave2,表示在三个节点上都要操作;一、安装Hive1....原创 2019-04-21 22:01:08 · 372 阅读 · 0 评论 -
CentOS7安装scala2.11.8+spark2.0.2
说明:(1、安装JDK1.8+hadoop2.6+SSH:https://blog.csdn.net/weixin_39400271/article/details/890578842、安装hive1.2.2+mysql5.7:https://blog.csdn.net/weixin_39400271/article/details/89428165)Maste...原创 2019-05-08 22:29:51 · 503 阅读 · 0 评论 -
Hadoop2.x——Yarn原理
Hadoop2.x较Hadoop1.x来说,变化非常大,主要主要体现在Hadoop2.x引入了“Yarn”这个核心部件。 hadoop1.x有两大部件,HDFS和MadpReduce,其中HDFS(Hadoop Distributed Files System)用于分布式存储文件,便于集群中各机器从上面读取和写入文件(数据),MadpReduce则是Hadoo...原创 2019-05-11 11:22:28 · 772 阅读 · 0 评论 -
CentOS7安装Zookeeper3.4.11+HBase1.3.3
写在最前,本次环境搭建是在Hadoop2.6.1,三节点的基础上完成的。(关于搭建Hadoop环境,可参考:https://blog.csdn.net/weixin_39400271/article/details/89057884)说明:#master,表示在master节点上操作;#master,#slave1,#slave2,表示在三个节点上都要操作;还有一点需要注...原创 2019-05-25 23:26:31 · 632 阅读 · 0 评论 -
Hadoop1.x的单点问题与Hadoop2.x HA原理
一、HDFS1.x架构图 对于HDFS1.x来讲,它的架构图由三个组件组成:NameNode、SecondaryNameNode和DataNode。 稍微了解过hadoop1.x的同学,就会知道hadoop1.x集群里面的资源管理和作业调度及监控都是有NameNode负责,一个集群,只有一台机器(Master)有NameNode进程,这就出现一个问题,当这个...原创 2019-05-18 12:06:53 · 457 阅读 · 0 评论 -
CentOS7环境搭建Kafka2.11+(flume测试、多producer——单topic——多consumer)
写在最前,本次环境搭建是在Hadoop2.6.1,Zookeeper3.4.11,三节点的基础上完成的。(关于搭建Hadoop环境,可参考:https://blog.csdn.net/weixin_39400271/article/details/89057884关于搭建zookeeper环境,可参考:https://blog.csdn.net/weixin_39400271/articl...原创 2019-06-08 00:06:00 · 587 阅读 · 0 评论 -
CentOS7搭建Flume1.6环境
写在最前,后面测试会用到HDFS2,所以本次环境搭建是在Hadoop2.6.1,三节点的基础上完成的。(关于搭建Hadoop环境,可参考:https://blog.csdn.net/weixin_39400271/article/details/89057884)说明:集群环境:Master 192.168.112.10Slave1 192.168.112.11Slave2...原创 2019-06-03 23:45:26 · 323 阅读 · 0 评论 -
Windows运行SparkStreaming,报异常
异常信息为:ERROR Shell: Failed to locate the winutils binary in the hadoop binaryJava.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.解决方法:1、到官网下载需要的hadoop...原创 2019-06-22 23:58:05 · 336 阅读 · 0 评论 -
深入浅出Kafka——可靠性存储
一、kafka体系架构 由上图可知,有三台机器搭建的kafka集群,kafka作为一种消息队列,producer以push模式将数据发送到kafka的机器上(每一台kafka机器可以认为是一个kafkabroker),同时订阅了kafkabroker的consumer,以pull模式对消息进行消费。请注意到一个问题,上图与zookeeper集群有联系的只有kafka集群和...原创 2019-06-24 17:29:26 · 281 阅读 · 0 评论 -
CentOS7搭建flink1.6与消费kafka操作
写在最前,本次环境搭建是在Hadoop2.6.1,三节点的基础上完成的。(关于搭建Hadoop环境,可参考:https://blog.csdn.net/weixin_39400271/article/details/89057884)说明:#master,表示在master节点上操作;#master,#slave1,#slave2,表示在三个节点上都要操作;一、准备工作再官...原创 2019-07-10 08:10:58 · 459 阅读 · 0 评论 -
Spark消息通信原理(二)——Spark启动消息通信
Spark启动过程中,主要是进行Master和Worker之间的通信。 首先,由Worker节点向Master发送注册信息,然后,Master处理完毕,返回注册成功或者失败消息,如果注册成功,Worker会定时发送心跳给Master。具体过程如下: 当master节点启动后,随之启动各worker节点,worker启动时会创建RpcEnv...原创 2019-07-24 09:00:27 · 242 阅读 · 0 评论 -
浅谈数据仓库的ETL
一、基本概念 ETL,它是Extract、Transform、Load三个单词的首写字母。ETL是建立数据仓库最重要的处理过程,也是工作量最大的环节,一般会占到整个数据仓库建立的一半工作量。抽取:从操作型数据源获取数据; 转换:转换数据,使之转变为适用于查询和分析的形式和结构; 装载:将转换后的数据导入到最终的目标数据仓库; 建立一个数据仓库,就是要把来自...原创 2019-07-23 20:20:18 · 307 阅读 · 0 评论 -
Spark消息通信原理(三)——Spark运行时消息通信
一、Spark的应用程序执行过程: 在Spark中,每一个“作业”称为一个应用程序(Application),每一个Application都必须有一个SparkContext,相当于application的入口,或者理解为环境。当用户(Client)提交应用程序(Application)时,该application的SparkContext就会向Master发送应用注册消息,ma...原创 2019-07-26 17:54:11 · 352 阅读 · 0 评论 -
Item协同过滤(基于Python实现)
在众多召回策略里面,基于Item与基于User(可参考:https://blog.csdn.net/weixin_39400271/article/details/100052023)在实现上非常相似。所以这里使用了跟基于User协同过滤的数据u.data。u.data数据格式(user_id, item_id, rating, timestamp)实现原理: ...原创 2019-09-05 09:37:15 · 371 阅读 · 0 评论