我知道这个问题已多次发布,但我找到的解决方案都没有帮助我,所以也许这是一个不同的问题?
我有一个节点,我的mac上设置了本地ES,我正在尝试创建一个快照(整个过程就是将数据迁移到2.x版本)
我正在尝试使用/ User / Shared作为存储快照的路径,因为我知道每个人都可以访问它
我在elasticsearch.yml中的path.repo设置为
path.repo: ["/Users/Shared/es_backup","/mount/backups", "/mount/longterm_backups"]
我手动创建了一个名为es_backup
的文件夹(chmod为777)现在我跑
curl -XPUT 'http://localhost:9200/_snapshot/es_backup' -d '{
"type":"fs",
"setting":{
"compress": true,
"location": "/Users/Shared/es_backup"}}'
它给我一个错误:
1) Error injecting constructor,
org.elasticsearch.repositories.RepositoryException: [es_backup] missing location
at org.elasticsearch.repositories.fs.FsRepository.<init>(Unknown Source)
while locating org.elasticsearch.repositories.fs.FsRepository
while locating org.elasticsearch.repositories.Repository
正如我所提到的,我实际上已经看到很多线程在讨论相同的错误,它总是指向权限问题。我已将所有内容设置为777,但仍然会发生
运行curl "locatinhost:9200/_nodes/settings?pretty"
时我得到了
{
"cluster_name" : "<some_name>",
"nodes" : {
"W0SRjd24Tfq1_S8UPegNlA" : {
"name" : "Flash Thompson",
"transport_address" : "inet[/127.0.0.1:9300]",
"host" : "<some_host>",
"ip" : "10.1.2.39",
"version" : "1.7.5",
"build" : "00f95f4",
"http_address" : "inet[/127.0.0.1:9200]",
"settings" : {
"path" : {
"data" : "/usr/local/var/elasticsearch/",
"logs" : "/usr/local/var/log/elasticsearch",
"plugins" : "/usr/local/var/lib/elasticsearch/plugins",
"home" : "/usr/local/Cellar/elasticsearch17/1.7.5",
"repo" : [ "/Users/Shared/es_backup", "/mount/backups", "/mount/longterm_backups" ]
},
"cluster" : {
"name" : "<some_name>"
},
"name" : "Flash Thompson",
"client" : {
"type" : "node"
},
"foreground" : "yes",
"config" : {
"ignore_system_properties" : "true"
},
"network" : {
"host" : "127.0.0.1"
}
}
}
}
}
其中some_name和some_host是我的群集名称和我的机器
我知道我的设置已正确应用,因为repo部分清楚地显示了我想要存储快照的路径
所以我被困在这里想知道我做错了什么以及如何解决它
感谢您的帮助
答案 0 :(得分:0)
当我尝试为默认路径以外的路径设置path.repo时,事实证明存在一些问题。当我尝试将位置设置为/ mount / backups / my_backup时,一切都很顺利。