elasticsearch源码分析之Gateway(六)


一、es数据文件

我们将探讨由es系统各个部分写入的目录文件,分别从broker(master)和node(data)的结构文件进行介绍,并给其一个简短说明。

其实在Elasticsearch中生成的数据文件一般来说主要有三种,分别是state、index和translog,后两种想必大家也都知晓,那么state主要就是Gateway存储数据的文件。Gateway模块用于存储es集群的MetaData。MetaData每一次改变(比如增加删除索引等),都要通过Gateway模块进行持久化。当集群第一次启动的时候,这些信息就会从Gateway模块中读出并应用。

一般情况下,Gateway我们都设置为Local方式,即将数据存储在本地,那么本文也就主要针对这种方式来说。

1.1文件目录

es配置多个路径:

  • path.home:用户的主目录运行es程序。默认是java系统属性user.dir,这是程序所有者的默认目录。
  • path.conf:一个包含配置文件的目录。
  • path.plugins:es插件目录。
  • path.logs:日志存储目录。
  • path.data:包含存储通过es的数据路径的目录。

本次介绍的目录文件基本都在path.data目录中。

1.2broker文件

------- /opt/es/broker $ tree data
data
└── debug_es                               # 集群名称
    └── nodes
        └── 0                                  # 本地第0个broker服务
            ├── _state                         # 状态文件目录
            │   └── global-96.st              # 全局元数据文件,里面包含集群信息、集群元数据版本号的信息,对应代码ClusterState类
            ├── indices                        # 索引文件目录
            │   └── twitter                   # 索引名称
            │       └── _state                # 状态文件目录
            │           └── state-1.st        # 索引的元数据文件,里面包含唯一标识、创建时间、settings、mappings,对应代码IndexMetaData类
            └── node.lock                      # 节点索引文件,保证全局只有一个es在本目录下读写

更有趣的是global-96.st文件,这个global-前缀和.st后缀表明这是一个元数据全局文件。正如你可能已经猜到,96前缀表示集群元数据版本,是一个严格递增的版本递增,每一次关闭集群都会递增。这个文件是二进制文件,当然你可以使用十六进制编辑器进行编辑,但我们建议你这么做,因为会很快导致数据丢失。

1.3node文件

-------- /opt/es/node $ tree data
data
└── debug_es                                # 集群名称
    └── nodes
        └── 0                                    # 本地第0个node服务
            ├── indices                          # 索引文件目录
            │   └── twitter
            │       └── 0                       # shard0文件目录
            │           ├── _state
            │           │   └── state-1.st     # 分片信息文件,里面包含版本号,是否主/副分片,对应代码ShardRouting类
            │           ├── index               # 真正索引和数据文件目录
            │           │   ├── _0.cfe
            │           │   ├── _0.cfs
            │           │   ├── _0.si
            │           │   ├── segments_7
            │           │   └── write.lock
            │           └── translog            #translog目录
            │               ├── translog-1.tlog
            │               └── translog.ckp
            └── node.lock                        # 节点索引文件,保证全局只有一个es在本目录下读写

 

1.4ClusterState类

UML类结构

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值