为Elasticsearch Service设置Java环境变量

时间:2016-11-09 22:17:16

标签: elasticsearch docker coreos

当我尝试使用以下命令重启时,我们的Elasticsearch集群出现了下降:

docker start -i elasticsearch

我收到错误:

Error: encountered environment variables that are no longer supported
Use jvm.options or ES_JAVA_OPTS to configure the JVM
ES_HEAP_SIZE=6g: set -Xms6g and -Xmx6g in jvm.options or add "-Xms6g -Xmx6g" to ES_JAVA_OPTS

我不太确定在哪里设置选项。我修改了我们的elasticsearch.service文件,将其包含在start:

ExecStart=/usr/bin/docker run --name elasticsearch -p ####:#### -p ####:#### -e ES_HEAP_SIZE=6g -e ES_JAVA_OPTS="-Xms6g -Xmx6g" -v /srv/esconfig:/usr/share/elasticsearch/confg

但错误仍然存​​在。

1 个答案:

答案 0 :(得分:1)

您不应该在运行语句中使用ES_HEAP_SIZE,它已替换为ES_JAVA_OPTS。

然而,-e ES_JAVA_OPTS =" -Xms6g -Xmx6g"只有在/etc/elasticsearch/jvm.options文件中注释掉-Xms2g和-Xmx2g选项时才会起作用。或者,您可以跳过ES_HEAP_SIZE和ES_JAVA_OPTS env变量,并使用jvm.options文件配置堆设置。

详细说明可在此处找到: https://www.elastic.co/guide/en/elasticsearch/reference/5.1/heap-size.html

示例:

public void configurePage() {
    Log.d(TAG, "test = " + listOfIDs.size());
    for (String id : listOfIDs){
        mDatabase.child("users").child(id).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                AgentUserViewObject obj = new AgentUserViewObject();
                obj.name = dataSnapshot.child("full_name").getValue().toString();
                obj.address = dataSnapshot.child("address").getValue().toString() + ", " + dataSnapshot.child("towncounty").getValue().toString() + ", " + dataSnapshot.child("postcode").getValue().toString();
                obj.requestCount = Integer.parseInt(dataSnapshot.child("requests_submitted").getValue().toString());
                listOfItems.add(obj);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }
    mLayoutManager = new LinearLayoutManager(AgentViewUsers.this);
    mAdapter = new AgentUserViewAdapter(listOfItems);
    mRecyclerView.addItemDecoration(new DividerItemDecoration(AgentViewUsers.this,DividerItemDecoration.VERTICAL_LIST));
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);
    spinner.setVisibility(View.GONE);
}