【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题

这篇具有很好参考价值的文章主要介绍了【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

windows下springCloud整合zipkin持久化数据到ES后没有生成依赖关系dependencies问题



前言

在之前的文章中,我们通过将数据持久化到mysql得到了trace链路信息和依赖信息;当我们将zipkin数据持久化到elasticSearch,在zipkin UI页面却只看到了trace链路信息,没有生成依赖关系dependencies,这是什么原因呢,今天我们就一起一探究竟,把zipkin数据持久化到elasticSearch后的依赖关系图也弄出来。

通过查阅资料得知,zipkin会在es中创建以zipkin开头日期结尾的index,并且默认以天为单位分割,使用该存储模式时,zipkin中的依赖信息会无法显示,需要通过zipkin-dependencies工具包计算得出。找到了解决方案,我们就开干。

一、安装启动zipkin-dependencies服务

1.jar包下载地址:

https://github.com/openzipkin/zipkin-dependencies
拉到Versions,找到latest released job,下载最新jar包:
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
下载得到最新稳定版本的jar包zipkin-dependencies-2.6.4.jar。

2.启动zipkin-dependencies服务

windows下命令:

java  -jar zipkin-dependencies-2.6.4.jar --STORAGE_TYPE=elasticsearch --ES_HOSTS=localhost:9200

不出意外的出现报错,说参数未设置,具体如下:
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
查阅猿友的博文得知windows下需要配置环境变量才行,不能直接在命令上加参数。

3.设置环境变量

因为zip-dependencies源码中获取参数的方式是获取环境变量中的参数值:System.getenv(“STORAGE_TYPE”),因此需要将参数设置在环境变量中。windows下无法直接启动jar包,需要设置环境变量:
STORAGE_TYPE:elasticsearch
ES_HOSTS:localhost:9200
保存后,再次启动服务,启动命令:

java -Dserver.port=8181 -Dspark.testing.memory=1024000000 -jar zipkin-dependencies-2.6.4.jar

参数说明:
-Dserver.port:设置端口号;
-Dspark.testing.memory:设置spark分析使用内存,最小不能少于512M=51210241024=536870912;
然后再次启动,然后就发现又报错了,应该是生成依赖关系用到hadoop服务,而本地没有hadoop的环境,具体如下:
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
缺少hadoop环境,需要下载安装hadoop,没办法,没有就安装呗,硬着头皮往下走。

二、hadoop下载安装

1.下载hadoop安装包

选择Hadoop3.1.0版本
安装包下载地址:
https://archive.apache.org/dist/hadoop/common/hadoop-3.1.0/hadoop-3.1.0.tar.gz
Windows环境安装所需的bin文件包(我们这里选择3.1.0):
1、可以打开地址:https://gitee.com/nkuhyx/winutils ,里面选 3.1.0。
2、或者直接下载:https://gitee.com/tttzzzqqq/apache-hadoop-3.1.0-winutils。

2.配置hadoop环境变量

控制面板\所有控制面板项\系统\高级系统设置
HADOOP_HOME:D:\hadoop-3.1.0
path里面追加上: %HADOOP_HOME%\bin

3.检查环境变量是否配置成功

命令:hadoop version
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
可以看到hadoop版本号信息,说明安装配置成功。

4.修改Hadoop的配置文件

(1)配置 core-site.xml 文件
先在 D:/hadoop-3.1.0/data/ 目录下建 tmp 文件夹,
修改 core-site.xml 文件,文件路径:\hadoop-3.1.0\etc\hadoop\core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/D:/hadoop-3.1.0/data/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

(2)修改mapred-site.xml 文件
文件路径:\hadoop-3.1.0\etc\hadoop\mapred-site.xml

<configuration>
    <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
    </property>
    <property>
       <name>mapred.job.tracker</name>
       <value>hdfs://localhost:9001</value>
    </property>
</configuration>

(3)修改yarn-site.xml 文件

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hahoop.mapred.ShuffleHandler</value>
    </property>
</configuration>

(4)修改hdfs-site.xml 文件
在D:\hadoop-3.1.0\目录下创建data文件夹;
在data文件夹中(D:\hadoop-3.1.0\data)创建datanode和namenode文件夹还有tmp文件夹。
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
hdfs-site.xml 文件路径:\hadoop-3.1.0\etc\hadoop\hdfs-site.xml

<configuration>
    <!-- 这个参数设置为1,因为是单机版hadoop -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/D:/hadoop-3.1.0/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/D:/hadoop-3.1.0/data/datanode</value>
    </property>
</configuration>

(5)修改hadoop-env.cmd 文件
文件路径:\hadoop-3.1.0\etc\hadoop\hadoop-env.cmd,打开后快捷键(ctrl+f),输入@rem The java implementation to use查找到,在set JAVA_HOME那一行将自己的JAVA_HOME路径配置上去:

set JAVA_HOME=D:\Java\jdk-8u202

【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
(6)修改hadoop-env.sh文件
文件路径:\hadoop-3.1.0\etc\hadoop\hadoop-env.sh
使用快捷键(ctrl+f)查找export JAVA_HOME,找到相应的位置,替换配置自己jdk安装路径:

export JAVA_HOME=D:\Java\jdk-8u202

【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop

三.启动Hadoop服务

1.格式化namenode

在cmd中进入到D:\hadoop-3.1.0\bin路径
命令:hdfs namenode -format
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop

2.开启hdfs服务

然后再进入到D:\hadoop-3.1.0\sbin路径
命令:start-dfs.cmd
会跳出两个窗口,不要关闭!

3.开启yarn服务

命令:start-yarn.cmd
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
当然也可以用命令:start-all.cmd ,一次性启动所有hadoop相关服务。

4.检查服务是否正常

发现ResourceManager启动报错,具体信息如下:
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
查资料发现,hadoop启动报错:“org/apache/hadoop/yarn/server/timelineservice/collector/TimelineCollectorManager”,主要是缺少timelineCollectorManager的jar包。
解决方案:
将hadoop3.1.0 版本将share\hadoop\yarn\timelineservice\hadoop-yarn-server-timelineservice-3.1.0.jar放到share\hadoop\yarn\lib 下,照做后重新启动服务。

5.查看Hadoop运行的进程

命令:jps
发现成功启动所有服务。
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop

6.查看Hadoop服务页面

访问namenode和HDFS的页面以及resourcemanager的页面来观察集群是否正常,可以通过访问namenode和HDFS的Web UI界面:http://localhost:9870,以及resourcemanager的页面:http://localhost:8088
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop

四.再次启动zipkin-dependencies服务

启动命令:

java -Dserver.port=8181 -Dspark.testing.memory=1024000000 -jar zipkin-dependencies-2.6.4.jar

【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop
这里要注意的是程序只会根据当日的zipkin数据实时计算一次依赖关系,并以索引zipkin:dependency-2023-12-07方式存入es中,然后就退出了,因此要做到实时更新依赖的话需要自己想办法实现周期性执行zipkin-dependencies服务。
再次查看kibana上的es索引信息,发现多了一个:zipkin-dependency-2023-12-07的索引:
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop

五.访问zipkin UI页查看依赖关系

重新进行微服务接口调用,然后刷新zipkin的页面,查看依赖菜单,终于出现了依赖关系:
【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题,SpringCloud,ElasticSearch,BUG,微服务,elasticsearch,hadoop


总结

虽然说我们实际用到项目中时,大多数都是在linux环境上安装zipkin服务,但是windows环境下实验也很有意义,毕竟本地操作会方便很多。因为这个问题困扰了我很久,并且在Linux环境使用时也遇到了持久化到es依赖关系无法显示的这个问题,所以特此验证,并记录分享出来,希望对有同样困惑的同学有所帮助!也感谢以下博主的分享。

参考文章:
https://blog.csdn.net/xia296/article/details/108864084
https://blog.csdn.net/LSY_CSDN_/article/details/105126095
https://blog.csdn.net/tttzzzqqq2018/article/details/131928028文章来源地址https://www.toymoban.com/news/detail-758817.html

到了这里,关于【微服务链路追踪】windows下zipkin持久化数据到ES后没有生成依赖关系dependencies问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 06-微服务OpenFeigh和Sentinel持久化

    OpenFeign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问HTTP请求,用法其实就是编写一个接口,在接口上添加注解即可。 可以简单理解

    2024年01月19日
    浏览(31)
  • Docker Desktop使用宿主机Windows的配置文件持久化存储数据

    《微软官网Windows 上的 Docker 引擎帮助文档》 以Nginx为例 把Nginx的配置文件复制到Windows 注意:Windows的盘符是小写的,以及目录直接是用反斜杠的!(我掉这坑里好久!!!) 修改宿主机的nginx.conf配置文件 删除nginx容器 重启启动一个新的Nginx容器 访问localhost

    2024年02月09日
    浏览(37)
  • Nacos作为服务配置中心、集群和持久化配置

    目录 一、Nacos作为服务配置中心演示 (一)Nacos作为配置中心-基础配置 (二)Nacos作为配置中心-分类配置 二、Nacos集群和持久化配置(重要) (一)官网说明 (二)Nacos持久化配置解释 1、Nacos默认自带的是嵌入式数据库derby 2、derby到mysql切换配置步骤 (三)Linux版Nacos+MyS

    2024年02月09日
    浏览(44)
  • Redis - redis.windows.conf配置文件及RDB和AOF数据持久化方案

    Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。 Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。 该机制是指

    2024年01月24日
    浏览(44)
  • 微服务 - Redis缓存 · 数据结构 · 持久化 · 分布式 · 高并发

    系列目录 微服务 - 概念 · 应用 · 架构 · 通讯 · 授权 · 跨域 · 限流 微服务 - Consul集群化 · 服务注册 · 健康检测 · 服务发现 · 负载均衡 微服务 - Redis缓存 · 数据结构 · 持久化 · 分布式 · 高并发 微服务 - Nginx网关 · 进程机制 · 限流熔断 · 性能优化 · 动态负载 · 高可用

    2023年04月18日
    浏览(37)
  • Redis服务端优化(持久化配置、慢查询、命令及安全配置、内存配置)

    漏洞:Redis未授权访问配合SSH key文件利用分析-腾讯云开发者社区-腾讯云 (tencent.com) 漏洞出现的核心的原因有以下几点 Redis未设置密码 利用了Redis的config set命令动态修改Redis配置 使用了Root账号权限启动Redis 查看客户端缓冲信息的命令 info clients client list

    2024年01月23日
    浏览(31)
  • Redis持久化说明及其单台Linux服务器搭建Redis集群架构

    说明:RDB快照主要以二进制文件的形式进行存储数据,主要以文件名dump.rdb进行存储,主要设置redis.conf里面设置’save 60 1000’命令可以开启, 表示在60秒内操作1000次进行一次备份数据。在客户端执行save(同步)和bgsave(异步操作)。 redis.conf 启动redis相关命令 说明:主要把文件生

    2024年02月10日
    浏览(45)
  • Sentinel nacos spring cloud 持久化配置---分布式/微服务流量控制

    下载地址:https://github.com/alibaba/Sentinel/releases 本次版本:1.8.6 上一篇文章已介绍 我们先说目标,为各位看官节省不匹配的时间 0、使用sentinel流控中心 1、使用nacos做配置中心 5、使用spring-cloud-starter-alibaba-sentinel做持久化配置 https://github.com/OrderDong/microservice-boot 分支:microserv

    2024年02月16日
    浏览(38)
  • k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es

    如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台 网关gateway服务 ,然后到 鉴权spring-sercurity服务 ,然后到 业务订单服务 ,然后到 支付服务 ,后续还有发货、客户标签等等服务

    2024年02月16日
    浏览(31)
  • 【分布式链路追踪技术】sleuth+zipkin

    目录 1.概述 2.搭建演示工程 3.sleuth 4.zipkin 5.插拔式存储 5.1.存储到MySQL中 5.2.用MQ来流量削峰 6.联系作者 当采用分布式架构后,一次请求会在多个服务之间流转,组成单次调用链的服务往往都分散在不同的服务器上。这就会带来一个问题: 故障难以溯源。 发起请求,然后请求

    2024年02月04日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包