Elasticsearch是一个开源,是一个基于Apache Lucene库构建的Restful搜索引擎。Elasticsearch是在Solr之后几年推出的。它提供一个分布式,多租房能力的全文搜索引擎,具有HTTP Web界面(REST) 和无架构JSON文档。Elasticsearch的官方客户端库提供Java,Groovy,PHP,Ruby,Perl,Python, .NET和Javascript。主要功能 分布式搜索 数据分析 分组和聚合。下载地址:https://www.elastic.co/guide/en/elastic-stack/7.2/index.html 此处下载版本为 elasticsearch-oss-7.2.1-linux-x86_64.tar.gz
elasticsearch-oss-7.2.1 需要安装jdk11以上的版本
解压 tar -zxvf elasticsearch-oss-7.2.1-linux-x86_64.tar.gz -C /Users/jiajie/dockerapp/elasticsearch
类型 | 描述 | 默认位置 | 设置 |
bin | 二进制脚本包含启动节点的elasticsearch | {path.home}/bin | |
conf | 配置文件包含elasticsearch.yml | {path.home}/config | path.conf |
data | 在节点上申请的每个index/shard的数据文件的位置,可容纳多个位置 | {path.home}/data | path.data |
logs | 日志文件位置 | {path.home}/logs | path.logs |
plugins | 插件文件位置,每个插件将包含一个子目录中。 | {path.home}/plugins | path.logs |
修改 vi /elasticsearch-7.2.1/bin/elasticsearch
增加如下:
#配置自己的jdk11
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
#if [ -z "$ES_TMPDIR" ]; then
# ES_TMPDIR=`"$JAVA" -cp "$ES_CLASSPATH" #org.elasticsearch.tools.launchers.TempDirectory`
#fi
#添加jdk判断
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/java"
else
JAVA=`which java`
fi
elasticsearch 修改后的配置
#!/bin/bash
# CONTROLLING STARTUP:
#
# This script relies on a few environment variables to determine startup
# behavior, those variables are:
#
# ES_PATH_CONF -- Path to config directory
# ES_JAVA_OPTS -- External Java Opts on top of the defaults set
#
# Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Note that
# the Xms and Xmx lines in the JVM options file must be commented out. Example
# values are "512m", and "10g".
#
# ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch
#配置自己的jdk8
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
source "`dirname "$0"`"/elasticsearch-env
#if [ -z "$ES_TMPDIR" ]; then
# ES_TMPDIR=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.TempDirectory`
#fi
ES_JVM_OPTIONS="$ES_PATH_CONF"/jvm.options
JVM_OPTIONS=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_JVM_OPTIONS"`
ES_JAVA_OPTS="${JVM_OPTIONS//\$\{ES_TMPDIR\}/$ES_TMPDIR}"
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/java"
else
JAVA=`which java`
fi
# manual parsing to find out, if process should be detached
if ! echo $* | grep -E '(^-d |-d$| -d |--daemonize$|--daemonize )' > /dev/null; then
exec \
"$JAVA" \
$ES_JAVA_OPTS \
-Des.path.home="$ES_HOME" \
-Des.path.conf="$ES_PATH_CONF" \
-Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR" \
-Des.distribution.type="$ES_DISTRIBUTION_TYPE" \
-Des.bundled_jdk="$ES_BUNDLED_JDK" \
-cp "$ES_CLASSPATH" \
org.elasticsearch.bootstrap.Elasticsearch \
"$@"
else
exec \
"$JAVA" \
$ES_JAVA_OPTS \
-Des.path.home="$ES_HOME" \
-Des.path.conf="$ES_PATH_CONF" \
-Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR" \
-Des.distribution.type="$ES_DISTRIBUTION_TYPE" \
-Des.bundled_jdk="$ES_BUNDLED_JDK" \
-cp "$ES_CLASSPATH" \
org.elasticsearch.bootstrap.Elasticsearch \
"$@" \
<&- &
retval=$?
pid=$!
[ $retval -eq 0 ] || exit $retval
if [ ! -z "$ES_STARTUP_SLEEP_TIME" ]; then
sleep $ES_STARTUP_SLEEP_TIME
fi
if ! ps -p $pid > /dev/null ; then
exit 1
fi
exit 0
fi
exit $?
启动命令: 进入 bin目录 sh elasticsearch
[2020-06-27T00:05:28,589][INFO ][o.e.c.c.ClusterBootstrapService] [maomaodeMacBook-Pro-2.local] no discovery configuration found, will perform best-effort cluster bootstrapping after [3s] unless existing master is discovered
[2020-06-27T00:05:31,593][INFO ][o.e.c.c.Coordinator ] [maomaodeMacBook-Pro-2.local] setting initial configuration to VotingConfiguration{y6BTee3zQ_aELaRIHD26ew}
[2020-06-27T00:05:31,742][INFO ][o.e.c.s.MasterService ] [maomaodeMacBook-Pro-2.local] elected-as-master ([1] nodes joined)[{maomaodeMacBook-Pro-2.local}{y6BTee3zQ_aELaRIHD26ew}{h8TLHoorRLe2LpclDMoYKw}{127.0.0.1}{127.0.0.1:9300} elect leader, _BECOME_MASTER_TASK_, _FINISH_ELECTION_], term: 1, version: 1, reason: master node changed {previous [], current [{maomaodeMacBook-Pro-2.local}{y6BTee3zQ_aELaRIHD26ew}{h8TLHoorRLe2LpclDMoYKw}{127.0.0.1}{127.0.0.1:9300}]}
[2020-06-27T00:05:31,781][INFO ][o.e.c.c.CoordinationState] [maomaodeMacBook-Pro-2.local] cluster UUID set to [M2usswQ5ScC6lHGOyrfgCQ]
[2020-06-27T00:05:31,817][INFO ][o.e.c.s.ClusterApplierService] [maomaodeMacBook-Pro-2.local] master node changed {previous [], current [{maomaodeMacBook-Pro-2.local}{y6BTee3zQ_aELaRIHD26ew}{h8TLHoorRLe2LpclDMoYKw}{127.0.0.1}{127.0.0.1:9300}]}, term: 1, version: 1, reason: Publication{term=1, version=1}
[2020-06-27T00:05:31,847][INFO ][o.e.h.AbstractHttpServerTransport] [maomaodeMacBook-Pro-2.local] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
[2020-06-27T00:05:31,852][INFO ][o.e.n.Node ] [maomaodeMacBook-Pro-2.local] started
[2020-06-27T00:05:31,855][INFO ][o.e.g.GatewayService ] [maomaodeMacBook-Pro-2.local] recovered [0] indices into cluster_state
如出现启动报错
sh elasticsearch
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
JNA Warning: IOException removing temporary files: JNA temporary directory '' does not exist
[2020-06-26T23:55:31,973][WARN ][o.e.b.Natives ] [maomaodeMacBook-Pro-2.local] unable to load JNA native support library, native methods will be disabled.
java.lang.UnsatisfiedLinkError: Failed to create temporary file for /com/sun/jna/darwin/libjnidispatch.jnilib library: JNA temporary directory '' does not exist
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:962) ~[jna-4.5.1.jar:4.5.1 (b0)]
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922) ~[jna-4.5.1.jar:4.5.1 (b0)]
at com.sun.jna.Native.<clinit>(Native.java:190) ~[jna-4.5.1.jar:4.5.1 (b0)]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:315) ~[?:?]
at org.elasticsearch.bootstrap.Natives.<clinit>(Natives.java:45) [elasticsearch-7.2.1.jar:7.2.1]
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) [elasticsearch-7.2.1.jar:7.2.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) [elasticsearch-7.2.1.jar:7.2.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349) [elasticsearch-7.2.1.jar:7.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) [elasticsearch-7.2.1.jar:7.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) [elasticsearch-7.2.1.jar:7.2.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) [elasticsearch-7.2.1.jar:7.2.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) [elasticsearch-cli-7.2.1.jar:7.2.1]
at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-cli-7.2.1.jar:7.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) [elasticsearch-7.2.1.jar:7.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) [elasticsearch-7.2.1.jar:7.2.1]
解决方法 vi elasticsearch-7.2.1/config/jvm.options
文件最后增加两行,再启动 sh elasticsearch
-Djava.io.tmpdir=/Users/jiajie/dockerapp/elasticsearch/temp
-Djna.tmpdir=/Users/jiajie/dockerapp/elasticsearch/temp
浏览器输入 http://localhost:9200/