- 博客(105)
- 收藏
- 关注
原创 【大数据分析】Spark SQL查询:DataFrame
RDD代表了一种低级,直接的方式来处理Spark中的数据,它是Spark运行时的核心,而DataFrame API用于类似于表的形式处理结构化的分布式数据。DataFrame的灵感来自几种语言:Python的Pandas包中的DataFrame,R中的DataFrame和Julia语言的DataFrame。Spark的不同之处在于它们的分布式特性和Spark的Catalyst,它可以基于可插拔数据源、规则和数据类型实时优化资源使用。
2023-06-16 17:41:11 887
原创 【大数据分析】Yarn的工作流程
2、ResourceManager负责接收和处理来自客户端的用户请求,收到请求后,ResourceManager里面的Resource Scheduler会为应用程序分配一个container,同时,ResourceManager的Applications Manager会与container所在的NodeManager通信,为该应用程序在container中启动一个ApplicationMaster。
2023-05-30 13:18:37 399
原创 【大数据分析】Hbase的基本原理
(1).META.表,记录了用户所有表拆分出来的 Region 的映射信息,.META.可以有多个Region。(2)-ROOT- 表,记录了 .META. 表的 Region 信息,-ROOT- 自身只有一个 Region,无论如何不会分裂。Client 访问用户数据前需要首先访问ZK,找到 -ROOT- 表的 Region 所在的位置,然后访问 -ROOT- 表,接着访问 .META. 表,最后找到具体的数据的位置。
2023-05-30 13:13:41 982
原创 基于webrtc的数据传输研究总结
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。在实际情况中,我们更多面临由基于NAT所搭建的网络环境。NAT的用处主要有两个:(1)解决IPv4地址不够用的问题,可以让多个主机共用一个公网IP。(2)将主机隐藏在内网中,外网比较难访问到真实主机。
2022-11-25 17:41:50 2509 3
原创 【大数据分析】基于Spark Graphx的AllPairNodeConnectivity算法实现
localnodeconnectivity是基于 Spark Graphx 中的 Pregel 机制实现的算法。关于Pregel机制的理解可参考【大数据分析】基于Graphx的shortestpath源码解析。localnodeconnectivity可以在有限的迭代次数内尽可能多地计算出起始点SSS和目标点TTT之间的独立路径。所谓独立路径,指的是它与其他路径除了SSS和TTT之外,没有重合的点。(1)TId代表指定的目标点TTT。(2)paths代表从SSS到TTT。
2022-10-31 17:12:43 386
原创 【大数据分析】基于Spark Graphx的图路径规划算法PathPlanning实现
PathPlanning是基于 Spark Graphx 中的 Pregel 机制实现的算法(关于Pregel机制的理解可参考【大数据分析】基于Graphx的shortestpath源码解析),它用于计算一个图中起始点SSS到目标点TTT的所有路径。假设有一份图数据的结构如下,SSS是起始点,TTT是目标点。代码中定义了两个case class类型和一个MsgValue类型。
2022-10-12 15:30:29 701
原创 【大数据分析】k-cores,一种基于图数据结构的分解方法
为了能够更好的处理大型图数据结构,有时需要将其按照要求进行分解,而k-cores便是其中一种方法。它可以从一个相对较大的图网络得到一个子图,这个子图中的所有节点的度都大于等于k。如下所示:假设以上是一个由节点集VVV,和边集EEE组成的图G=(V,E)G=(V,E)G=(V,E),外部不同颜色深度的“圈”所包含的子图,代表着计算不同k值时对应得到的子图Gsubgraph,kGsubgraph,k。例如:(1)当k=
2022-09-26 11:51:22 940
原创 【大数据分析】图的连通度(门格尔定理)
根据门格尔定理,为了计算使顶点s和顶点t分离所需要去除的顶点的最少数目,只需要求出顶点s和顶点t之间所有的简单路径。使得一对顶点分属于不同连通片所需去除的一组顶点称为这对顶点的点割集(Vertex cutset)。使得一对顶点分属于不同连通片所需去除的一组边称为这对顶点的边割集(Edge cutset)。中的所有其他的顶点都去除也无法使这两个顶点分别属于不同的连通片,所以定理一中要求两个顶点。分别属于不同的连通片所需取出的顶点的最少数目等于连接顶点。的独立的简单路径的最大数目。中不同的顶点,则使顶点。
2022-09-15 16:05:08 3268
原创 【大数据分析】graphscope开发环境搭建
graphscope的安装对配置有一定的要求,例如所运行的cpu内核数>=4,内存>=8等,还至少两个worker。可以看到此时的graphscope的pod并没有准备好,进一步用一下命令,可以看到第一次安装graphscope会有一个较长的拉取镜像(pulling image)的过程。(3)每个 service 会创建出来一个虚拟 ip,通过访问 vip:port 就能获取服务的内容(vip是虚拟ip,用于内部访问,外部无法访问的)。graphscope依赖于k8s环境,关于k8s的部署安装可以参考。
2022-09-13 11:46:04 761
原创 【大数据分析】基于virtualenv和jupyterlab搭建远程开发环境
在指定的用于放工程的目录下,创建虚拟环境(可以当做一个工程目录)启动jupyterlab服务,并访问地址。在该虚拟环境下安装jupyterlab。在jupyterlab中添加虚拟环境。
2022-09-08 16:22:13 333
原创 【部署与运维】sealos k8s 的安装和使用
sealos是以kubernetes为内核的云操作系统。在早期阶段,操作系统采用了分层的体系结构,后来演变成了像Linux和Windows这样的内核体系结构。(1)基于sealos,你可以将数据中心中的所有机器想象成一台“抽象”的超级计算机,sealos就是用来管理这台超级计算机的操作系统,kubernetes是这个操作系统的内核。(2)此后云计算IaaS,PaaS,SaaS的划分会慢慢淡去,只有云操作系统驱动(CSI,CNI,CRI实现)云操作系统内核(kubernetes)和分布式应用组成。
2022-09-07 09:34:00 3304
原创 【大数据分析】FordFulkerson算法(JAVA实现)
(1)点连通度,一个图G至少要去掉多少个点会变成非连通图或者平凡图(连通图,任意两点之间至少存在一条路径)。(2)边连通度,一个图G至少要去掉多少条边才能变成非连通图。
2022-08-31 10:33:49 639
原创 【大数据分析】基于Graphx的shortestpath源码解析
Graphx 集成了shortestpath 最短路径算法,具体采用的是迪杰斯特拉算法,引用库为:org.apache.spark.graphx.lib.ShortestPaths。该算法用于计算图中所有的到目标点(点集)的距离。shortestpath的大致使用方法根据上面的代码可知:(1)landmarks 是需要被计算与 graph 所有节点距离的节点(作为目标点)。(2)landmarks 里的节点实际上也是 graph 中的节点,只是节点 id 被抽了出来。
2022-08-23 19:40:10 501
原创 【大数据分析】Spark的二次开发工程edata-base,介绍
edata-base是基于Spark的大数据二次开发库,它封装了Spark与其他常用中间的使用方法,使得基于Spark的开发更加简便。源码仓库地址httpsedata-base规定了SparkAPI与其他中间件API的版本,自定义Spark工程可以自行引用,edata-base-component引用了这个父工程。......
2022-07-26 11:52:57 826 1
原创 【大数据分析】Spark的transformation性能分析
(1)窄依赖(narrow dependencies)。父RDD的每个分区最多被子RDD的一个分区所引用。(2)宽依赖(wide dependencies)。父RDD的每个分区被多个子RDD所引用。例如,考虑以下代码 code_A从rdd1到rdd3的数据的变化如下图所示:从rdd1到rdd2属于窄依赖(narrow dependencies),因为rdd2中的每个分区数据仅从rdd1中的一个分区中得到。从rdd2到rdd3属于宽依赖(wide dependencies),因为rdd3中可能存在多个
2022-06-30 20:52:40 582
原创 【大数据分析】Spark的joins研究
数据的join操作(数据连接)对于数据分析来说是非常重要的组成部分,不管是Spark Core还是Spark SQL都支持joins的相同基本类型。joins一种很常见,但又最容易造成性能问题的操作。因为它可能会造成大量的网络传输,尤其是当使用Spark Core组件的时候,因为DAG optimizer(DAG 优化器)无法对数据进行重排列(按照列)并且降低filters的复杂度。在输入数据集的记录之间应用连接条件之后,join类型会影响join操作的结果,假设有两个数据表A和B。A表的数据如下:B表的数
2022-06-15 10:37:06 601
原创 【大数据分析】DataFrame,DataSets和SparkSQL
Spark SQL组件中DataFrame,DataSets跟RDDs相比,会有比较大的性能优势。(1)DataFrame和DataSet是一类带Schema的分布式数据结构。其中的Row对象不会造成额外的编译时类型检测成本。(2)额外的schema信息可以提供更高效的存储层(Tungsten)。(这里应该指的是DataFrame,DataSets这些存储数据结构,而不是HDFS等这些存储介质)(3)基于schema信息可以在优化器(Catalyst)中实现更多的优化操作。Tungsten是Spa
2022-06-08 11:43:02 359
原创 【大数据分析】Spark的高性能基本原理
目录简介Spark组件分布式弹性数据集(RDDs,Resilient Distributed Datasets)延迟执行(Lazy Evaluation)简介(1)Apache Spark是一个开源分布式计算框架,它提供并行处理通用数据的方法,用于对不同大小和结构的数据进行不同的数据处理任务。(2)Spark本身并不用于数据存储,它在 JVMs上执行,并只会持续一个Spark应用程序运行时的时间。(3)Spark支持在一台机器上本地运行(称为本地模式)。(4)Spark可以与分布式存储系统(例如,
2022-06-01 14:47:54 502
原创 【图分析】基于Nebula Graph的图平台建设
目录背景设计思路背景2019年,基于“图形”(Graph)的存储、分析相关技术被Gartner评为十大数据与分析技术之一。基于Graph实现的存储可以进行高效的建模,进而可以探索与查询具有相互复杂关系的数据。设计思路图平台需要促进不同类型数据的融合,并进行分析。所以在分析数据之前,需要先实现数据的融合,这些数据对应真实世界中的各类对象。为了让不同类型的对象都能进到平台,需要提供一个对象定义的功能。这个功能主要是告诉平台这个对象是什么?例如我在定义一名球员.........
2022-05-17 13:58:13 883
原创 【Spring Cloud】idea基于MyBatis实现数据库操作
目录MyBatis的idea插件MyBatisX安装MyBatisX-generatorMyBatis生成样例代码的说明MyBatis的idea插件MyBatisX安装在plugins中安装MyBatisX插件MyBatisX-generatormybatisX-generator是MyBatisX插件中的代码生成器。在Database面板中,选择数据库表,可以使用这个生成器来生成一些样板代码。(1)使用MybatisX-Generator(2)生成对应的持久化Java类(3)生成map
2022-05-06 14:52:44 1625
原创 【强化学习】重要度采样(Importance Sampling)
目录知识准备重要度采样优化积分的近似知识准备假设随机变量X的取值:x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn,它对应的概率PPP是:p1,p2,...,pnp_1,p_2,...,p_np1,p2,...,pn,则关于XiX_iXi的数学期望是:E(X)=∑k=1∞xipkE(X)=\sum_{k=1}^\infty x_ip_kE(X)=k=1∑∞xipk如果h(xi)h(x_i)h(xi)是关于随机变量XXX的事件,则它发生的概率跟随机变
2021-11-24 17:58:04 1562
原创 【强化学习】Trust Region Policy Optization(TRPO)
目录Policy Gradient的问题Policy Gradient的问题由于数据的采样
2021-11-22 14:24:59 967
原创 【强化学习】策略优化基础
目录Value-based RL vs Policy-based RLPolicy-based RL的优势与劣势策略函数的类型策略优化Cross-Entropy MethodValue-based RL vs Policy-based RL基于策略函数的强化学习(Policy-based RL)学习的是策略函数,策略函数实际上跟机器学习领域中的分类模型(model)差不多。这跟基于价值函数的强化学习(Value-based RL)不同。(1)基于价值函数的强化学习是基于一个确定的策略来计算QQQ值,然
2021-10-11 16:08:13 1292
原创 【强化学习】资格迹(Eligibility Traces)
目录资格迹是强化学习的基本方法之一,几乎所有用时序差分的算法都可以与资格迹结合起来,从而可以获得一个更加有效且具一般性的方法。强化学习的本质是找最优策略π∗\pi_*π∗,最优策略π∗\pi_*π∗......
2021-09-28 13:07:38 2771 3
原创 【图分析】Centrality
中心性算法用于理解特定节点的作用及其对网络的影响。这些算法可以识别最重要的节点,帮助我们了解群组动态,例如可信度、可访问性、事物的传播速度以及群组之间的桥梁等。Degree(度中心性算法)度量节点拥有的关系数量,例如,通过研究入度来评估某人的受欢迎程度,使用出度评估其社交情况。......
2021-09-24 12:42:37 654
原创 【图分析】Assortativity
目录Assortativity coefficient(同配系数)Average neighbor degreeAssortativity coefficient(同配系数)同配性(Assortativity),用作考察度值相近的节点是否倾向于相互连接。在社交网络中,节点倾向于与度数相近的节点相连。如果总体上度大的节点倾向于与度大的节点相连,那么该网络的度是正相关的。或者称网络是同配的。如果度大的节点倾向于与度小的节点相连,那么该网络的度是负相关的,或者称网络是异配的。同配系数是一种基于“度”的皮尔
2021-09-15 11:45:32 4238
原创 【图分析】逼近(Approximation)
目录样例数据ConnectivityK-ComponentsClique,apx-maximum independent set样例数据{ "node_title": ["id","name","age"], "node_title_type": ["string","string","string"], "nodes": [ ["p1","Tayler","32"], ["p2","Marco","31"], ["p3","Mike","30"], ["p4
2021-09-07 16:53:08 904
原创 【图分析】基础图论
图(graph)G=(V,E)G=(V,E)G=(V,E)由点集VVV(nodes或vertices)和边集EEE(edges或arcs)组成。点表示实体对象,边表示实体对象之间的联系。假设n=∣V∣n=|V|n=∣V∣(点集中点的数量)和m=∣E∣m=|E|m=∣E∣(边集中边的数量)。图GGG的大小定义为为图包含的点的数量,即nnn。对于所有的v,w∈Vv,w\in Vv,w∈V,(v,w)(v,w)(v,w)表示为从vvv到www的一条有向边(direct edge),{v,w}\{v,w\}{v,w
2021-09-02 15:41:21 394
原创 【强化学习】使用近似方法的on-policy控制
目录episodic semi-gradient controlepisodic semi-gradient control近似的动作价值函数q^≈qπ\hat{q}\approx q_\piq^≈qπ,表示为具有权值向量www的参数化函数形式。前面的预测问题关注的是形如St→UtS_t\rightarrow U_tSt→Ut的随机训练样本,而对于控制问题,样本的形态会变成St,At→UtS_t,A_t\rightarrow U_tSt,At→Ut。更新目标UtU_tUt可以是qπ(St
2021-08-10 16:32:00 329
原创 【强化学习】MCTS
目录Simulation-Based SearchMC SearchMCTS上线置信区间算法UCT棋类游戏MCTS搜索Simulation-Based Search基于仿真的搜索包含两点:一个是simulation,其次是search。simulation是基于强化学习model进行采样,得到样本数据。但这不是基于和环境交互获得的真实数据。search则是为了利用样本结果来帮我们计算应该采用什么动作,以实现长期利益最大化要理解什么是Simulation-Based Search,首先要明白什么是for
2021-07-21 10:06:52 1064 3
原创 【强化学习】基于表格型方法的规划和学习
如果换一个角度来考虑一系列强化学习方法,它们可以被分为基于模型的(model-based)和无模型(model-free)的两类强化学习方法。model-based的方法将“规划”作为其主要部分,而model-free的方法则依赖于“学习”。虽然这两种方法之间存在着很大的差异,但是也有很多相似之处,比如这两类方法的核心都是计算价值函数。此外,所有的方法都基于对未来事件的展望,来计算一个回溯价值,然后使用它作为目标来更新一个近似价值函数。模型和规划环境模型,指的是agent可以用来预测环境将如何对其行
2021-07-20 13:43:54 869
原创 【强化学习】n步Bootstrapping
单独的MC方法或TD方法不会总得到最好的结果。n步时序差分方法是这两种方法更一般的推广,在这个框架下,可以更平滑地切换这两种方法。MC和TD是这个框架中的两个极端特例,一般情况下,中间方法的性能一般要比这两种极端方法好......
2021-07-04 00:18:56 1797 2
原创 【强化学习】时序差分方法
时序差分方法结合了蒙特卡洛方法和动态规划的思想,在强化学习中应用最为广泛。(1)直接从智能体与环境交互的经验中学习。(2)无须等待交互的结果,可以边交互边学习,不需要等整个episode结束。预测问题:即给定强化学习的5个要素:状态集,动作集,即时奖励,衰减因子,给定策略,求解该策略的状态价值函数。控制问题:也就是求解最优的价值函数的策略。给定强化学习的5个要素:状态集,动作集,即时奖励,衰减因子,探索率,求解最优的动作价值函数和。已知every - visit的MC算法的价值计算函数是
2021-06-25 19:20:27 1179 1
原创 【强化学习】蒙特卡洛方法
蒙特卡洛算法仅仅需要经验,即从真实或者模拟的环境交互中采样得到的状态、动作、收益的序列,不需要关于环境动态变化规律的先验知识,却依然能够达到最优的行为。蒙特卡洛算法通过平均样本的回报lai......
2021-06-19 17:57:16 5775 1
原创 【强化学习】动态规划
目录动态规划(Dynamic Programming,DP)是一类优化方法,在给定一个用马尔可夫决策过程(MDP)描述的完备环境模型的情况下,其可以计算最优的策略。我们假设环境是一个有限MDP。我们假设状态集合S、动作A和收益集合R是有限的,并且整个系统的动态特性由对于任意s∈S、a∈A(s)、r∈R和s’∈S+(S+表示在分幕式任务下S加上一个终止状态)的四参数概率分布p(s’,r|s,a)给出。尽管DP的思想也可以用在具有连续状态和动作的问题上,但是只有在某些特殊情况下才会存在精确解。一种常见的近似
2021-06-17 14:43:15 1103 2
原创 【强化学习】有限马尔科夫模型
目录“智能体-环境”交互接口有限马尔可夫决策过程(有限MDP问题)既涉及“评估性反馈”,又涉及“发散联想”,即在不同情境下选择不同的动作。MDP是序列决策的经典形式化表达,其动作不仅影响当前的即时收益,还影响后续的情境(又称状态)以及未来的收益。因此,MDP涉及了延迟收益,由此也就有了在当前收益和延迟收益之间权衡的需求。在赌博机问题中,我们估计了每个动作a的价值q*(a),而在MDP中,每个动作a在每个状态s中的价值q*(s,a),或者估计给定最有动作下的每个状态的价值v*(s)。“智能体-环境”交互
2021-06-07 15:30:22 1274
原创 【强化学习】多臂老虎机
目录简介k臂赌博机问题动作-价值方法10臂测试平台简介强化学习与机器学习最大的不同,在于前者的训练信号是用来评估给定动作的好坏的,而不是通过给出正确动作范例来进行直接的指导。“评估性反馈”,表明当前采取的动作的好坏程度,但无法确定最好和最坏。“指导性反馈”表示应该选择的正确动作是什么,这是监督学习的基本方式,被广泛用于模式分类、人工神经网络等。k臂赌博机问题假设你要重复地在k个选项中进行选择。每次做出选择之后,你都会得到一定数值的收益,收益值由所选择的动作的平稳概率分布产生。k臂赌博机源于“老虎机”
2021-05-27 17:36:30 664
原创 【机器学习】似然函数
目录似然和概率似然和概率似然和概率都可以理解为“可能性”,但是它们针对的对象不一样,似然函数是关于Θ的函数,概率密度函数是关于x的函数。比如似然函数定义为:L(Θ|x),而概率密度函数定义为f(x|Θ)。假设X的概率密度函数可以定义为:其中X是离散的随机向量X(x1,x2,…),表示参数Θ下随机向量X取到x的可能性。假设:那么我们可以认为“参数Θ1下随机变量X取值x的可能性”大于“参数Θ2下随机向量X取到值x的可能性”。简单点来说,我们有理由相信Θ1比Θ2更有可能是真实值。如果X是连续的随
2021-05-10 19:02:35 5248
原创 【分布式计算】什么是分布式系统
目录计算节点集合看上去是单一系统为什么要开发分布式系统分布式系统由多个彼此独立的计算节点组成,从用户的角度上看,这些计算集合看上去就像单一的系统。从上面的定义来看,分布式系统有两个特征:(1)彼此独立的计算节点集合。(2)看上去是单一的系统。计算节点集合所谓节点可以是一个硬件装置,或是软件进程。现今的分布式系统大多由不同的节点组成,大至高性能的计算机,小至一些小型单片机。但不管基于何种节点,一个基本原则是,这些节点都应该能独立运行起来,并且通过交换信息来协作完成一个共同目标。由于是节点是相互隔
2021-03-24 18:14:55 1760
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人