保姆级jupyter lab配置清单
博主原文链接:https://www.yourmetaverse.cn/nlp/450/

保姆级jupyter lab配置清单
在当今快速发展的数据科学和机器学习领域,有效的工具不仅仅是优势,它们是必需品。Jupyter Lab作为这一领域最受欢迎的交互式开发环境之一,已经成为研究人员、数据科学家和深度学习工程师的首选工具。其直观的界面、强大的功能以及对多种编程语言的支持,使它在学术界和工业界都得到了广泛的应用。
为什么Jupyter Lab会这么受欢迎?答案在于它的灵活性和易用性。无论是初学者还是经验丰富的专业人士,都可以通过Jupyter Lab高效地探索数据、验证理论,并将结果以直观的方式呈现出来。这种交互式编程环境为深度学习和数据分析提供了前所未有的便利。
本文旨在提供一个全面的Jupyter Lab配置指南,无论你是刚刚开始接触Jupyter Lab,还是希望提高你现有的工作流程,这里都有适合你的内容。从基础配置到高级技巧,从本地安装到远程服务端配置,我们将一步步带你深入Jupyter Lab的世界。此外,本文还将详细介绍如何在Jupyter环境中安装和使用不同的Kernel,包括热门的R语言Kernel,使得你的数据科学项目更加多元和强大。
随着数据科学的不断发展,掌握Jupyter Lab的高效使用将是每个从业者的宝贵技能。让我们开始这趟学习之旅,一探Jupyter Lab的无限可能。
1. Jupyter Lab简介
Jupyter Lab的概念与起源
Jupyter Lab是一个开源的交互式开发环境,它是Jupyter项目的一部分,旨在为数据科学、科学计算和机器学习提供一个统一的、易于使用的界面。Jupyter Lab的前身是Jupyter Notebook,一个广受欢迎的工具,已经在科学和教育领域中占有一席之地。Jupyter Lab在Jupyter Notebook的基础上进行了扩展和改进,提供了更强大的功能和更灵活的用户界面。
Jupyter Lab的核心功能
- 代码执行: 用户可以在代码单元格中编写和执行代码,支持多种编程语言,如Python、R和Julia。
- 数据可视化: 直接在界面中嵌入图表和可视化图形,使数据分析结果更加直观。
- 文档编辑: 支持Markdown和富文本编辑,便于创建和展示注释丰富的文档。
- 文件管理: 内置的文件浏览器,可以轻松管理工作空间中的文件和目录。
- 扩展性: 通过插件和扩展增强功能,社区支持丰富,提供了大量的自定义选项。
Jupyter Lab与Jupyter Notebook的区别
虽然Jupyter Lab是在Jupyter Notebook的基础上发展起来的,但它们之间还是有明显的差异:
- 界面: Jupyter Lab提供了一个更为现代和模块化的界面,支持拖放单元格和窗口分割。
- 功能: Jupyter Lab不仅支持Notebook,还集成了其他多种工具,如文本编辑器、终端、数据文件查看器等。
- 扩展性: Jupyter Lab的扩展性更强,允许用户安装第三方插件,从而增加新的功能或定制界面。
通过这些创新,Jupyter Lab提供了一个更为完整和强大的工作环境,适应了当今数据科学领域日益增长的需求。
2. 为什么选择Jupyter Lab用于深度学习
深度学习是一种复杂且动态的领域,它要求实验性和迭代性的方法来优化模型和算法。在这样的环境中,Jupyter Lab以其独特的特性和功能,成为了深度学习研究和开发的理想工具。
1. 交互式编程环境
Jupyter Lab提供了一个交互式的编程环境,使得数据科学家和深度学习工程师能够即时运行代码,并立即看到输出。这种即时的反馈循环对于调试复杂的深度学习模型、优化算法参数以及试验新的数据处理方法至关重要。交互式环境还允许用户轻松地探索数据,测试假设,并对数据进行可视化,从而更好地理解数据特征和模型行为。
2. 数据可视化
在深度学习项目中,数据可视化是不可或缺的一环。Jupyter Lab支持多种数据可视化工具和库(如Matplotlib, Seaborn, Plotly等),这些工具可以直接嵌入到Notebook中,提供直观的图表和图像,帮助分析模型性能和理解复杂的数据结构。
3. 多语言支持
尽管Python是深度学习的主流语言,但Jupyter Lab的多语言支持使得用户可以轻松地在同一环境中集成不同的编程语言。例如,用户可以使用Python进行数据处理和模型训练,同时使用R语言进行统计分析,这种灵活性对于多学科团队来说尤为宝贵。
4. 环境管理
在深度学习项目中,管理不同的环境和依赖是一项挑战。Jupyter Lab允许用户为不同的项目创建不同的Kernel,每个Kernel可以有自己的依赖和库版本。这种环境隔离有助于保持项目的整洁和一致性,同时减少了不同项目间依赖冲突的风险。
5. 社区和资源
Jupyter Lab背后有一个活跃的开源社区,提供大量的资源、教程和插件。这些资源使得Jupyter Lab用户可以轻松地找到解决问题的方法,或者学习如何更有效地使用这个工具。
总结来说,Jupyter Lab的交互性、灵活性和强大的数据可视化功能使其成为深度学习领域的一个宝贵工具。无论是进行快速原型设计,还是进行复杂的数据分析,Jupyter Lab都提供了一个高效且用户友好的环境。
3. Jupyter Lab服务端安装和运行
在深度学习和大型数据科学项目中,通常需要利用服务器的强大计算能力。配置Jupyter Lab在服务器上运行并实现远程访问,可以让用户在任何地点、任何设备上高效地工作。以下是配置和使用Jupyter Lab服务端的关键步骤。
1. 服务器环境准备
首先,确保服务器安装了Python和必要的依赖。对于深度学习项目,还需要安装相应的机器学习库,如TensorFlow或PyTorch。推荐使用Anaconda,这是一个流行的Python数据科学平台,它可以简化包管理和环境配置。
安装anaconda可以参考链接:
https://welearnnlp.blog.csdn.net/article/details/128167211
一般anaconda上默认是安装好jupyterlab的,如果没有安装可以参考下面安装的方式。
2. 安装Jupyter Lab
在服务器上安装Jupyter Lab通常只需一条命令:
pip install jupyterlab
如果使用Anaconda,可以使用以下命令安装:
conda install -c conda-forge jupyterlab
3. 运行Jupyter Lab
运行Jupyter Lab前,建议在特定的目录中运行,这有助于管理项目文件。使用以下命令启动Jupyter Lab:
jupyter lab --no-browser --port=8888
这里--no-browser选项防止在服务器上打开浏览器,--port指定了运行端口。
如果是在服务器端挂后台运行,可以使用下面的命令:
nohup jupyter lab --no-browser --port=8888 &
4. 安全性考虑
在远程访问Jupyter Lab时,安全是非常重要的。建议使用密码或token来保护你的Jupyter Lab会话。可以在第一次运行Jupyter Lab时设置密码,或者使用token,这个token会在启动Jupyter Lab时显示在终端中。也可以在配置栏里面详细配置具体的参数。
5. 高级配置
对于高级用户,可以进一步配置Jupyter Lab以满足特定需求,例如设置HTTPS、使用Docker容器运行Jupyter Lab等。
4. jupyter lab 配置文件常见配置
使用如下命令生成jupyter lab的配置文件
jupyter notebook --generate-config
配置文件一般位于以下文件夹:
~/.jupyter/jupyter_notebook_config.py
然后进入python环境,在终端输入python回车后进入python环境,输入下面的命令设置远程访问的密码。
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: ******
Verify password: ******
Out[2]: '************************************************' #''里面就是生成的秘钥,需要放到配置文件里面
使用以下命令修改jupyter的配置文件参数:
vim ~/.jupyter/jupyter_notebook_config.py
常见配置文件如下所示,可以根据需要进行设置
#这里填写远程访问的IP名,填*则默认是主机IP名
c.ServerApp.ip = '*'
# 这里的密码填写上面生成的密钥
c.ServerApp.password = '************************************************'
# 禁止用host的浏览器打开jupyter
c.ServerApp.open_browser = False
# 打开jupyter lab的端口,端口自定义
c.ServerApp.port = 8888
# 允许远程访问
c.ServerApp.allow_remote_access = True
# jupyter lab工作文件的路径
c.ServerApp.root_dir = '/path'
# IOPub数据通道的最大数据传输速率
c.ServerApp.iopub_data_rate_limit = 100000000000
# 数据传输速率的时间窗口
c.ServerApp.rate_limit_window = 10000000
# 跨站请求伪造(Cross-Site Request Forgery, XSRF)保护的启用或禁用
c.ServerApp.disable_check_xsrf = True
# kernel是否自动重启
c.KernelManager.autorestart = True
# 是否运行修改密码
c.ServerApp.allow_password_change = True
# 是否有退出按钮
c.ServerApp.quit_button = True
# 长时间不允许自动停止
c.ServerApp.shutdown_no_activity_timeout = 0
# 启动terminal
c.ServerApp.terminals_enabled = True
# terminal路径
c.ServerApp.terminado_settings = {'shell_command' : ['/bin/bash']}
# 是否允许root运行
c.ServerApp.allow_root = True
# memory监控
c.ResourceUseDisplay.mem_limit = 32*1024*1024*1024
# cpu监控
c.ResourceUseDisplay.track_cpu_percent = True
# cpu核数
c.ResourceUseDisplay.cpu_limit = 16
这些参数是在Jupyter Notebook或Jupyter Lab的配置文件中使用的,用来自定义服务器的行为和特性。下面是每个参数的解释:
-
c.ServerApp.ip = '*'- 作用: 设置服务器监听的IP地址。
- 值:
'*'表示接受所有IP地址的连接,使得Jupyter服务器可以从任何机器上访问。
-
c.ServerApp.password- 作用: 设置用于访问Jupyter服务器的加密密码。
- 值: 通常是一个加密的哈希值,出于安全考虑不应直接以明文形式显示。
-
c.ServerApp.open_browser = False- 作用: 控制启动Jupyter服务器时是否自动打开浏览器。
- 值:
False表示不自动打开浏览器。
-
c.ServerApp.port = 8888- 作用: 指定服务器监听的端口号。
- 值:
8888是Jupyter的默认端口。
-
c.ServerApp.allow_remote_access = True- 作用: 是否允许远程访问。
- 值:
True表示允许从非本机地址访问Jupyter服务器。
-
c.ServerApp.root_dir = '/path'- 作用: 设置Jupyter Lab的根目录。
- 值:
'/path'应该替换为你希望作为Jupyter工作空间的目录路径。
-
c.ServerApp.iopub_data_rate_limit = 100000000000- 作用: 设置IOPub数据通道的最大数据传输速率。
-
c.ServerApp.rate_limit_window = 10000000- 作用: 定义计算数据传输速率的时间窗口。
-
c.ServerApp.disable_check_xsrf = True- 作用: 是否禁用跨站请求伪造保护。
-
c.KernelManager.autorestart = True- 作用: 设置是否自动重启内核。
- 值:
True表示如果一个内核崩溃,它会自动重启。
-
c.ServerApp.allow_password_change = True- 作用: 允许用户更改密码。
- 值:
True表示用户可以更改Jupyter服务器的密码。
-
c.ServerApp.quit_button = True- 作用: 是否在Jupyter界面显示退出按钮。
- 值:
True表示显示退出按钮。
-
c.ServerApp.shutdown_no_activity_timeout = 0- 作用: 在没有活动的情况下自动关闭服务器的超时时间。
- 值:
0表示不自动关闭。
-
c.ServerApp.terminals_enabled = True- 作用: 是否启用终端。
- 值:
True表示允许用户通过Jupyter访问系统终端。
-
c.ServerApp.terminado_settings = {'shell_command' : ['/bin/bash']}- 作用: 设置终端使用的命令。
- 值: 在这个例子中,使用
/bin/bash作为终端的默认shell。
-
c.ServerApp.allow_root = True- 作用: 是否允许以root用户运行。
- 值:
True表示允许以root用户身份运行Jupyter服务器。
-
c.ResourceUseDisplay.mem_limit = 32*1024*1024*1024- 作用: 设置Jupyter Notebook界面显示的内存使用限制。
- 值: 在这个例子中,内存限制被设置为32GB。
-
c.ResourceUseDisplay.track_cpu_percent = True- 作用: 是否在Jupyter Notebook界面跟踪和显示CPU使用百分比。
- 值:
True
5. 如何在Jupyter中安装不同的Kernel
Jupyter Lab的一个重要特点是它支持多种编程语言,这得益于其Kernel的架构。Kernel本质上是Jupyter与特定编程语言交互的桥梁。虽然Jupyter最初是为Python设计的,但现在通过安装不同的Kernel,可以使用包括R、Julia、Scala等多种语言。
1. 理解Kernel
每个Kernel都是一个独立的语言运行环境,允许你在Jupyter Notebook中运行特定语言的代码。当你在Notebook中运行代码单元格时,这些代码实际上是发送到后台的Kernel执行的,并将结果返回给Notebook。
2. 安装新Kernel
安装新的Kernel通常涉及两个步骤:首先安装目标语言环境,然后安装与该环境相关的Jupyter Kernel。
示例:安装Python Kernel
- 如果你已经安装了Anaconda,它自带Python Kernel。
- 对于独立的Python环境,可以使用以下命令安装IPython Kernel(Jupyter的Python Kernel):
pip install ipykernel
示例:安装其他语言Kernel
- R Kernel: 在安装了R语言环境后,运行R控制台并输入以下命令:
install.packages('IRkernel') IRkernel::installspec() - Julia Kernel: 在Julia中,通过Julia的包管理器安装IJulia包:
using Pkg Pkg.add("IJulia")
3. 管理Kernel
安装完新的Kernel后,它们将在Jupyter Lab的Kernel列表中出现。你可以在启动Notebook时选择需要的Kernel,或者在已打开的Notebook中切换Kernel。
4. 自定义Kernel
高级用户可以进一步自定义Kernel,例如为特定项目创建专用的Python环境并将其作为独立的Kernel。这可以通过虚拟环境(如conda环境或virtualenv)和ipykernel包实现。
6. 在Jupyter Lab中安装和使用R Kernel
将R Kernel集成到Jupyter Lab中允许用户在同一个环境中使用Python和R,这对于跨学科的数据分析和研究尤为重要。以下是在Jupyter Lab中安装和使用R Kernel的步骤。
1. 安装R语言环境
首先,你需要在你的系统上安装R语言。可以从R官方网站下载并安装适合你操作系统的R版本。
2. 安装R Kernel
安装了R之后,接下来需要在R环境中安装IRkernel,这是一个R语言的Jupyter Kernel。打开R控制台(或RStudio)并执行以下命令:
install.packages('IRkernel')
IRkernel::installspec(user = FALSE) # 添加Kernel到Jupyter中,'user = FALSE'表示为所有用户安装
这些命令首先安装IRkernel包,然后使用installspec函数将其添加到Jupyter的可用Kernel列表中。
3. 使用R Kernel
安装完成后,启动Jupyter Lab。在创建新的Notebook时,你会看到R语言已经列在可选的Kernel中。选择R Kernel,就可以开始用R语言编写和执行代码了。
4. R语言的基本使用
在R Kernel的Notebook中,你可以像在R控制台中一样执行R代码。例如,你可以加载数据集、进行数据处理和分析,以及使用R的强大图形工具创建图表。
5. 利用R的数据科学库
R语言拥有丰富的数据科学库,如ggplot2用于数据可视化,dplyr用于数据处理。在Jupyter Lab的R Kernel中,这些库的使用方式与在其他R环境中无异。
6. 结合Python和R
在Jupyter Lab中,你可以在同一个项目里使用Python和R。这对于那些需要结合使用多种工具和语言的复杂项目来说,是一个巨大的优势。
相关文章:
保姆级jupyter lab配置清单
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
数据结构预算法--链表(单链表,双向链表)
1.链表 目录 1.链表 1.1链表的概念及结构 1.2 链表的分类 2.单链表的实现(不带哨兵位) 2.1接口函数 2.2函数的实现 3.双向链表的实现(带哨兵位) 3.1接口函数 3.2函数的实现 1.1链表的概念及结构 概念:链表是一种物理存储结…...
数据结构线性表——栈
前言:哈喽小伙伴们,今天我们将一起进入数据结构线性表的第四篇章——栈的讲解,栈还是比较简单的哦,跟紧博主的思路,不要掉队哦。 目录 一.什么是栈 二.如何实现栈 三.栈的实现 栈的初始化 四.栈的操作 1.数据入栈…...
自定义 springboot 启动器 starter 与自动装配原理
Maven 依赖 classpath 类路径管理 Maven 项目中的类路径添加来源分为三类 自定义 springboot starter starter 启动器定义的规则自定义 starter 示例 自动装配 文章链接...
16 _ 二分查找(下):如何快速定位IP对应的省份地址?
通过IP地址来查找IP归属地的功能,不知道你有没有用过?没用过也没关系,你现在可以打开百度,在搜索框里随便输一个IP地址,就会看到它的归属地。 这个功能并不复杂,它是通过维护一个很大的IP地址库来实现的。地址库中包括IP地址范围和归属地的对应关系。 当我们想要查询202…...
vb.net圣经带快捷键,用原装的数据库
Imports System.Data.SqlServerCe Imports System.Text.RegularExpressions Imports System.Data.OleDbPublic Class Form1Dim jiuyue As String() {"创", "出", "利", "民", "申", "书", "士", "…...
Unity中Shader的雾效
文章目录 前言一、Unity中的雾效在哪开启二、Unity中不同种类雾的区别1、线性雾2、指数雾1(推荐用这个,兼具效果和性能)3、指数雾2(效果更真实,性能消耗多) 三、在我们自己的Shader中实现判断,是…...
企业微信开发教程一:添加企微应用流程图解以及常见问题图文说明
最近在前辈的基础上新添加了一个企微应用,过程中遇到了一些卡点,这里一一通过图片标注与注释的方式记录一下,希望能给后来人提供一些清晰明了的帮助,话不多说,大家直接看图吧。 (文中包括一些本项目独有的配…...
【LeetCode】67. 二进制求和
67. 二进制求和 难度:简单 题目 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入:a "11", b "1" 输出:"100"示例 2: 输入:a "…...
【LeetCode刷题笔记】二叉树(一)
102. 二叉树的层序遍历 解题思路: 1. BFS广度优先遍历 ,使用队列,按层访问 解题思路: 2. 前序遍历 , 递归 ,在递归方法参数中,将 层索引...
NativeScript开发ios应用,怎么生成测试程序?
在 NativeScript 中,要部署 iOS 应用程序,你需要遵循以下一般步骤: 1、确保开发环境: 确保你的开发环境中已经安装了 Xcode,并且你有一个有效的 Apple 开发者账号。 2、构建 iOS 应用: 在你的 NativeScri…...
Js面试题:说一下js的模块化?
作用: 一个模块就是实现某个特定功能的文件,在文件中定义的变量、函数、类都是私有的,对其他文件不可见。 为了解决引入多个js文件时,出现 命名冲突、污染作用域 等问题 AMD: 浏览器端模块解决方案 AMD即是“异步模块定…...
媒体转码软件Media Encoder 2024 mac中文版功能介绍
Media Encoder 2024 mac是一款媒体转码软件,它可以将视频从一种格式转码为另一种格式,支持H.265、HDR10等多种编码格式,同时优化了视频质量,提高了编码速度。此外,Media Encoder 2024还支持收录、创建代理和输出各种格…...
整治PPOCRLabel中cv2文件读取问题(更新中)
PPOCRLabel 使用PPOCRLabel对ocr预标注结果进行纠正由于PaddleOCR代码库十分混乱,路径经常乱调pip和代码库的代码(pip库和源码冲突),经常报错,因此paddleocr和ppocrlabel都是使用pip包;PPOCRLabel中使用了cv2进行图片数据的读取,…...
网络运维Day09-补充
文章目录 rsync增量同步scp与rsync的区别rsync常用选项 rsync本地实验rsync远程同步实验练习上传练习下载 总结 rsync增量同步 rsync是增量同步的一种工具,可以实现本地目录之间数据同步,也可以实现远程跨主机之间数据同步 scp与rsync的区别 scp属于全…...
【C++】【Opencv】minMaxLoc()函数详解和示例
minMaxLoc()函数 是 OpenCV 库中的一个函数,用于找到一个多维数组中的最小值和最大值,以及它们的位置。这个函数对于处理图像和数组非常有用。本文通过参数和示例详解,帮助大家理解和使用该函数。 参数详解 函数原型…...
用Go实现网络流量解析和行为检测引擎
1.前言 最近有个在学校读书的迷弟问我:大德德, 有没有这么一款软件, 能够批量读取多个抓包文件,并把我想要的数据呈现出来, 比如:源IP、目的IP、源mac地址、目的mac地址等等。我说:“这样的软件你要认真找真能找出不少开源软件, 但毕竟没有你自己的灵魂在里面,要不…...
Mysql数据备份 — mysqldump
一 备份类型 - 逻辑备份(mysqldump): - 优点: - 恢复简单,可以使用管道将他们输入到mysql。 - 与存储引擎无关,因为是从MySQL服务器中提取数据而生成的,所以消除了底层数据…...
vue使用Echarts5实现词云图
先上官网 词云图有些特殊,它属于Echarts 的扩展,需要额外安装Echarts-wordcloud包。 Echarts 官网 Echarts-wordcloud 词云图官网 先安装 npm install echarts npm install echarts-wordcloud再引入 echarts选一个引入就行;4或5版本都可以 …...
带有密码的Excel只读模式,如何取消?
Excel文件打开之后发现是只读模式,想要退出只读模式,但是只读模式是带有密码的,该如何取消带有密码的excel只读文件呢? 带有密码的只读模式,是设置了excel文件的修改权限,取消修改权限,我们需要…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
