【光谱分析】光谱项目的一些问题

光谱项目借用了Github上面的一个开源项目,Github链接如下:
PySpectrometer光谱仪icon-default.png?t=N7T8https://github.com/leswright1977/PySpectrometer?tab=readme-ov-file该作者的YouTube频道如下:

Les' Labicon-default.png?t=N7T8https://www.youtube.com/leslaboratory这个项目需要用到InfluxDB数据库,所以以下问题就围绕InfluxDB数据库展开。

InfluxDB是一个功能强大的数据库系统,具有以下特点:

  1. 专注于时间序列数据:专门为存储和查询时间序列数据(如日志、指标和事件)设计,适用于监控、分析和物联网数据。

  2. 高性能:提供高效的数据写入和查询响应,特别适合处理大规模数据集。

  3. 灵活的查询语言:InfluxQL,一种类似SQL的查询语言,用于简化数据的读取和聚合处理。

  4. 数据压缩:优化存储机制,通过有效的压缩算法减少存储空间的需求。

  5. 易于集成:支持各种客户端库,如Python、Java等,方便集成到各种应用中。

  6. 可扩展性:支持水平扩展,适合从小型项目到大型企业级应用。

  7. 开源:社区版免费开源,有活跃的社区支持和丰富的文档资源。

InfluxDB因其对时间序列数据的高效处理和易于使用的特性,在多个行业中被广泛采用。

要使用InfluxDB我们首先需要介绍一下Docker。

Docker 是一种容器化平台和工具,它使开发、部署和运行应用程序变得更加简单和可靠。Docker 容器是一种轻量级的虚拟化技术,允许将应用程序及其所有依赖项(包括代码、运行时、库和配置)打包到一个独立的容器中。这个容器可以在不同的环境中运行,而无需担心环境之间的差异。

一句话,Docker就是为了解决“在我的机器上可以运行,但是到了你的机器上就不能运行”的问题。

Docker 是什么?30秒听懂。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1tE41177BV/?spm_id_from=333.337.search-card.all.click&vd_source=2619f8f2b1a681baf38b633acca071ac

而Docker和InfluxDB之间的关系如下:

  1. 容器化:Docker为InfluxDB提供了容器化平台。通过Docker,可以将InfluxDB及其依赖打包在一个容器中,确保在不同环境中运行的一致性。

  2. 简化部署:在Docker容器中部署InfluxDB简化了设置过程,避免了复杂的安装步骤和特定环境的配置。

  3. 可扩展性和隔离性:Docker允许轻松扩展和隔离InfluxDB,确保它在一个受控环境中运行,带来更可预测的性能。

  4. 开发和测试:开发者可以使用Docker创建隔离的环境来开发和测试基于InfluxDB的应用,提高了开发流程的效率。

  5. 微服务架构:在微服务架构中,Docker和InfluxDB可以一起高效地管理不同服务的数据,Docker负责这些服务的部署和管理。

 因此我们需要安装Docker来启动InfluxDB。

2022最新Windows docker安装方法icon-default.png?t=N7T8https://www.bilibili.com/video/BV1za411Q7er/?spm_id_from=333.337.top_right_bar_window_custom_collection.content.clickDocker——Windows版本Docker安装_docker windows-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_51351637/article/details/128006765?spm=1001.2014.3001.5506安装好Docker以后,需要在刚刚下载Docker时顺便下载好的Ubuntu终端安装InfluxDB。

5、Centos安装InfluxDB_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1QY4y1f7UV?p=5&vd_source=2619f8f2b1a681baf38b633acca071ac虽然只给了Centos的安装,但是Ubuntu和Centos都用的Linux的指令,一样的操作。在Windows启动栏就可以找到刚刚安装好的Ubuntu,点进去就是终端,在里面输入各种命令。

安装完InfluxDB,就需要用Docker启动它了。

6、Docker启动InfluxDB容器_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1QY4y1f7UV?p=6&vd_source=2619f8f2b1a681baf38b633acca071ac

然后需要注意在Python代码里面的格式:

client = InfluxDBClient(url="http://localhost:8086", token="写自己在influxdb注册的", org="写自己在influxdb注册的")
write_api = client.write_api(write_options=SYNCHRONOUS)

这段代码的作用是在Python中设置与InfluxDB数据库的连接和准备数据写入操作:

  1. 创建客户端实例:InfluxDBClient用于建立与InfluxDB数据库的连接。它需要数据库的URL、访问令牌(token)和组织(org),这些信息用于验证和确定连接的目标数据库。

    • url="http://localhost:8086" 指定了InfluxDB服务的地址。这里使用localhost和默认端口8086,适用于本地运行的InfluxDB实例。
    • tokenorg 是访问InfluxDB时必要的认证信息,通常在InfluxDB设置或注册时获得。
  2. 创建写入API实例write_api = client.write_api(write_options=SYNCHRONOUS) 创建了一个用于数据写入的API实例。write_options=SYNCHRONOUS 表示写入操作将同步进行,即写入请求完成后才继续执行后续代码。这对于确保数据完整性和调试是有帮助的。

Docker 

1.拉取镜像 

docker pull influxdb
docker pull influxdb:2.7.5

2.启动容器

 接下来启动Docker,这里我命名容器名字为influxdb_new(这一步是前文提供的docker启动influxdb容器的链接的内容)

hefeng@admin:~$ docker run -d --name influxdb_new -p 8087:8086 -v /opt/influxdb2:/var/lib/influxdb2 influxdb:2.7.5

3.开放端口

firewall-cmd --zone=public --add-port=8083/tcp --permanent
firewall-cmd --zone=public --add-port=8086/tcp --permanent
firewall-cmd --zone=public --add-port=8090/tcp --permanent
firewall-cmd --zone=public --add-port=8099/tcp --permanent
firewall-cmd --reload

其中docker ps命令可以检查docker是否启动 。

出现以上结果就是启动成功了 。

浏览器输入http://localhost:8086(后面8086看你具体什么端口号了),InfluxDB是全英文的,一些设置、token的获取等可以看如下链接:

(三)InfluxDB入门(借助Web UI)_influxdb web界面-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_38263083/article/details/131913120?spm=1001.2014.3001.5506遇到的问题:

       一、在开放端口的命令中,可能firewall-cmd --reload会出现防火墙的报错,我这里选择直接重新安装一遍防火墙。

在基于 Debian 的系统(如 Ubuntu)上:

  1. 卸载 FirewallD: 打开终端,然后运行以下命令来卸载 FirewallD:

    sudo apt-get remove firewalld
  2. 清理依赖项和配置文件(可选): 如果想彻底删除 FirewallD 及其配置文件,可以运行:

    sudo apt-get purge firewalld
  3. 安装 FirewallD: 安装 FirewallD 的命令如下:

    sudo apt-get update
    sudo apt-get install firewalld

    二、InfluxDB http://localhost:8086/登录以后出现404的问题

记住把url、token还有org全部写对了,每次修改端口号记得修改登录的网站地址。

        三、Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

解决方法:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?_centos cannot connect to the docker daemon at unix-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_45496075/article/details/109123709

可能需要设置docker开机自启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天启和风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值