• Hadoop学习笔记——PHP使用MapReduce

    基于《Hadoop学习笔记——基础篇》的学习和了解,大概掌握了Hadoop的相关知识,下面开始应用 核心原理Hadoop本身是Java开发的,但Hadoop Streaming(一个独立的Jar包)提供了一种通用机制: Mapper/Reducer无需依赖Hadoop Java API,只需是能读取标准输入(stdin)、输出标准输出(stdout)的可执行程序/脚本(...
  • Hadoop学习笔记——基础篇

    简介Hadoop 是Apache开源的分布式存储与计算框架,它的核心目标是解决海量数据存储和计算的问题。 关键特性 分布式架构: 由多个节点分布式部署,且节点扩容无上限 高容错性: 数据多副本存储,节点宕机数据不丢失 批处理优先: 无法做到实时查询,查询延迟极高 低成本: 支持普通、低配置的机器作为节点加入到集群中 核心组件分布式存储: HDFS(Hadoop Distributed Fi...
  • WebSocket协议的深入研究

    前记由于WebSocket协议是借助HTTP/1.1版本的“握手机制”完成的建立链接这一操作,同时基于TCP协议进行独立传输数据,所以最好了解一下TCP和HTTP协议的相关知识,可以参考另一篇笔记《TCP、HTTP协议的深入研究》 简单介绍 WebSocket是一种基于TCP的全双工(Full-Duplex)应用层通信协议,位于 OSI 模型的应用层,由HTML5规范正式定义,核心...
  • Protobuf学习记录

    Protocol Buffers(简称 Protobuf)是一种高效的、语言中立的序列化数据格式,广泛用于数据存储和网络通信。它通过 .proto 文件定义数据结构,并生成多种语言的代码以便操作这些数据。 安装 git地址:https://github.com/protocolbuffers/protobuf 下载地址:https://github.com/protocolbuffers...
  • TCP、HTTP协议的深入研究

    底层基础知识通信模式在计算机通信领域中,常见的模型默认有三种:单工模式、半双工模式、全双工模式 单工模式(Simplex) 定义:数据只能沿一个方向传输,一方固定为发送端,另一方固定为接收端,无法反向通信。 特点:信道是单向的,无需考虑双向同步或冲突问题,结构简单但灵活性低。 举例:广播电视(电视台发送信号,电视机只能接收)、键盘向电脑输入数据(键盘仅发送,电脑仅接收)、打印机接收电脑指令(...
  • 分布式搜索和分析引擎——Elasticsearch(索引配置及优化)

    在创建索引时,可以对索引进行各种配置,比如分片数量、字段限制、索引方式等,下面进行详细介绍 配置写法Elasticsearch 支持两种等效的配置方式,分别为扁平式(Flat)和嵌套式(Nested),在早期版本的Elasticsearch更倾向于使用扁平式(如 1.x/2.x 时代)。随着JSON格式成为主流,嵌套式表达变得更直观,现在版本的Elasticsearch内部会将...
  • 分布式搜索和分析引擎——Elasticsearch(基础篇)

    Elasticsearch 是一个基于 Lucene 的开源分布式搜索和分析引擎,常用于全文检索、日志分析、实时数据处理等场景,具有分布式、高可用、易扩展等特点 核心特点 分布式架构:可自动将数据分散到多个节点,支持水平扩展,轻松应对大规模数据量和高并发请求。 实时搜索与分析:数据一经索引即可被搜索,能快速处理实时数据,满足实时查询和分析需求。 全文检索能力:支持复杂的文本搜索,包括关键...
  • 数据结构与算法——二叉树

    二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。 相关术语 结点:包含一个数据元素及若干个指向其子结点的信息 结点的权:结点中存储的数据的值 路径:从根结点找到该结点的路线 度:一个结点拥有子结点的个数被称为结点的度,一个树...
  • 数据结构与算法——查找算法

    数据的查找算法较排序算法简单,并且常用的查找方案只有几种。 顺序查找 二分查找 插值查找 斐波那契查找 树表查找 分块查找 哈希查找 查找算法的分类 根据具体的实现逻辑不同,大体上可以把查找算法分为两大类:静态查找、动态查找, 静态查找:指查找表中无删除和插入操作。 动态查找:指查找表中有删除和插入操作。 根据查找的前提条件可以分为两大类:无序查找、有序查找 无序查找:指...
  • 数据结构与算法——排序算法总结

    时间复杂度 时间复杂度是判断一个算法的执行时间的性能指标,通常是一个代表算法输入值的字符串长度的函数,使用大O符号进行标数,不包括这个函数的低阶项和首项系数。 每一个算法都会存在一个实际的执行次数函数T(n),其中n代表的是每一个“操作单元”,并且认定每一个操作单元的所运行的时间都是相同的。如果将实际的执行次数函数T(n)中的低阶项、首项系数进行省略,就得到了我们所说的时间复杂度函数。省略...
12347