无法在Ubuntu 10.4上启动弹性搜索 - 不再支持es.default.config

时间:2016-01-09 01:04:44

标签: ubuntu elasticsearch

我从未使用ES,也没有配置它,但这是我必须安装的项目中的依赖项。我不知道如何设置它,没有任何类型的文档。

我已经使用了几个教程和不同的方法来安装ES 2.1.1,并且我已经被这个命令阻止了:sudo service elasticsearch restart它没有做什么。什么都没有开始,在控制台中没有任何日志。

➜  ~  sudo service elasticsearch restart
Stopping Elasticsearch...
Elasticsearch was not running.
Starting Elasticsearch...
Waiting for Elasticsearch................................
WARNING: Elasticsearch may have failed to start.

确实,localhost:9200上没有任何内容。

我最近更改了分配给/etc/elasticsearch及其子文件夹的权限:

➜  /etc  ll | grep elas
drwxr-x---  3 elasticsearch elasticsearch 4.0K Jan  9 01:02 elasticsearch

drwxr-x--- 3 root elasticsearch ...之前,我真的不知道这种变化是好还是坏(我在网上看到,对于Ubuntu来说,有一个错误,似乎已经解决了所有权,所以在某些时候我只需要尝试,不做任何改变)

我尝试使用不同的方式安装它:

  1. 将Ubuntu软件中心与官方网站https://www.elastic.co/downloads/elasticsearch中的.deb文件一起使用,该文件刚刚告诉我.deb格式错误,可能会损坏操作系统。所以我没有安装它。
  2. 我使用命令bin/elasticsearch.sh 1.7尝试了该脚本:https://gist.github.com/janpieper/2c96fb12d9b566a679a5(是的,我甚至不知道我应该安装的版本,所以我只试了几个但它失败了。
  3. 我尝试了https://gist.github.com/ricardo-rossi/8265589463915837429d,这是启发前一个脚本的脚本,但是这个脚本保持最新并且没有失败。它正确安装了所有依赖项,但最终它无法启动ES。
  4. 我尝试使用2.1和2.1.1版本,相同。 5.我开始想知道为什么我没有任何日志,并发现一些有趣的链接,如https://bugs.launchpad.net/ubuntu/+source/elasticsearch/+bug/1465374,说日志中有why elasticsearch won't run on Ubuntu 14.04?http://sandlininc.com/?p=747,但没有一个对我有用。我通过阅读SO帖子意识到我没有任何elasticsearch用户,所以我认为安装工作做得不好。
  5. 我卸载了ES sudo apt-get remove elasticsearch -f并决定使用第一次失败的.deb再次安装它,但这次是从命令行安装的。 sudo dpkg -i elasticsearch-2.1.1.deb。安装顺利,但无法启动实例。
  6. 我决定更改/etc/elasticsearch/子文件夹的权限,希望能解决它。罗。同样的事情。
  7. 我决定寻求帮助,因为我不知道如何为此找到解决方案。
  8. 在写作的过程中,我记得在第5步我没有elasticsearch用户的事实。现在我这样做了,所以我阅读了更多有关该人解决方案的信息。我将日志记录配置更改为TRACE而不是INFO中的/etc/elasticsearch/logging.yml,以防万一。
  9. 我刚刚执行了他的命令,我得到了:

    ➜  ~  sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch -d -p /var/run/elasticsearch.pid --default.config=/etc/elasticsearch/elasticsearch.yml --default.path.home=/usr/share/elasticsearch --default.path.logs=/var/log/elasticsearch --default.path.data=/var/lib/elasticsearch --default.path.work=/tmp/elasticsearch --default.path.conf=/etc/elasticsearch
    [sudo] password for vadorequest: 
    ➜  ~  [2016-01-09 01:42:01,230][INFO ][bootstrap] es.default.config is no longer supported. elasticsearch.yml must be placed in the config directory and cannot be renamed.
    

    但那是info,所以它不应该导致无声的崩溃。无论如何,我不明白我应该怎么做。什么是config目录?

    我终于可以通过下载1.7.4 .deb版本并使用sudo dpkg -i elasticsearch-1.7.4.deb然后运行sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch -d --default.config=/etc/elasticsearch/elasticsearch.yml --default.path.home=/usr/share/elasticsearch --default.path.logs=/var/log/elasticsearch --default.path.data=/var/lib/elasticsearch --default.path.work=/tmp/elasticsearch --default.path.conf=/etc/elasticsearch 来安装它。

    我不得不删除pid的-p选项,因为该文件不存在。我没有任何记录,但是我的localhost:9200给了我预期的

    {
      "status" : 200,
      "name" : "Hideko Takata",
      "cluster_name" : "elasticsearch",
      "version" : {
        "number" : "1.7.4",
        "build_hash" : "0d3159b9fc8bc8e367c5c40c09c2a57c0032b32e",
        "build_timestamp" : "2015-12-15T11:25:18Z",
        "build_snapshot" : false,
        "lucene_version" : "4.10.4"
      },
      "tagline" : "You Know, for Search"
    }
    

1 个答案:

答案 0 :(得分:0)

尝试在apt-get update apt-get install openjdk-7-jre wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.deb dpkg -i elasticsearch-1.7.2.deb init 6 检查elasticsearch.log。请在这里分享,它应该给你一些线索

这是我在ubuntu上的ES设置步骤。希望它可以帮到你

vi /etc/fstab 
disable swap ->

vi /etc/elasticsearch/elasticsearch.yml
edit -> bootstrap.mlockall: true
edit -> cluster.name: "SET YOUR CLUSTER NAME"
edit -> node.name: NODE NAME # can leave it blank

vim /etc/security/limits.conf
add -> elasticsearch soft memlock unlimited
add -> elasticsearch hard memlock unlimited
add -> elasticsearch soft nofile 65535
add -> elasticsearch hard nofile 65535

vi /etc/init.d/elasticsearch
edit -> ES_HEAP_SIZE=1000m               ## 50% of instance memory

update-rc.d elasticsearch defaults 95 10
service elasticsearch start

ES setup configuration

type Level1 {
  fieldToBeIndexed: String;
  level_2: Any | Null;
}

type Level2 {
  anotherIndexedField: String;
}

path /level_1 {
  index() = "fieldToBeIndexed";

  /$primary is Level1 {
    /level_2 {
      index() = "anotherIndexedField";

      /$secondary is Level2;
    }
  }
}