最近比较忙一直都没时间写点东西,刚刚好今天有空,就记录一下elasticsearch(下面简称es)的使用,好记性不如烂笔头哇。当然现在最新的es已经到5.几版本了,大家有兴趣可以去git上研究下。
一、linux上es2.3.*部署
1.1、关于elasticsearch的安装包
大家可以到官网去下载所需版本,解压并安装。当然你要是嫌麻烦也可以在度娘上找到很多人家配置好的Zip包,可以直接使用。
1.2、部署es前,修改es配置文件elasticsearch.yml
配置文件的具体位置:压缩包解压后../config/elasticsearch.yml
配置文件内容及相关注释
1.集群名称,默认为elasticsearch:
cluster.name: “xxx”(需要修改)
2. 节点名称,elasticsearch启动时会自动创建节点名称,但你也可进行配置:
node.name:"xxx"(需要修改)
3. 数据存储的路径配置:
path.data: /home/imax/es23/index/data1, /home/imax/es23/index/data2
4. 日志存储的路径配置:
path.logs: /home/imax/es23/logs
5.host配置:(如果**需要放开访问**的话可以设为 0.0.0.0)
network.host: 192.168.1.52(本机的IP地址,每个节点需要修改)
6.discovery:
discovery.zen.ping.unicast.hosts: ["192.168.1.52","192.168.1.53","192.168.1.54"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 10s
7.解决内存溢出。添加如下配置:
index.cache.field.type: soft
index.cache.field.max_size: 50000
8、配置elasticsearch的使用内存:
在../bin/elasticsearch.in.sh文件中,
设置修改:ES_MIN_MEM=8g,ES_MAX_MEM=16g
1.3关于es集群
在需要集群的目标机器上,同样的步骤安装elasticsearch,注意,在配置时,将node.name的值设置为和之前配置值不同。
elasticsearch服务同时起来,因为配置文件中均默认cluster.name=XXX,所以这两台机器自动构建成一个集群,集群名字为XXX。
注意:直接把单节点安装配置好的环境打包copy到目标机解压即可,方便不易出错。
1.4关于es启动
在linux下启动有两个问题:一是启动在前台还是后台,二是es对于root用户默认不支持启动
root用户因为默认不支持启动es 需要再启动语句后加上
这个语句每次用root启动的时候都要加
-Des.insecure.allow.root=true
前台启动:进入../bin目录下 执行 ./elasticsearch
后台启动:./elasticsearch -d
如果想要默认可以支持root账号启动的话
就要修改/bin/elasticsearch文件,修改如下语句:
exec"$JAVA"$JAVA_OPTS$ES_JAVA_OPTS -Des.path.home="$ES_HOME" -cp "$ES_CLASSPATH" \
修改为:
exec"$JAVA"$JAVA_OPTS$ES_JAVA_OPTS -Des.path.home="$ES_HOME" -Des.insecure.allow.root=true -cp "$ES_CLASSPATH"
\
1.5Head插件安装
通过head,可以查看集群几乎所有信息,还能进行简单的搜索查询,观察自动恢复的情况等等。有网络情况下,进入elasticsearch安装目录,执行
./bin/plugin -install mobz/elasticsearch-head
即可安装Head插件。
注意一下这里是./执行,不是../进入文件夹,这个锅我被坑了半天。哈哈。
安装完成之后,在浏览器输入:http://ip:9200/_plugin/head/ ,可以查看显示效果。
当然要是你网络不行的话,也可以去网上下载现成的zip之类的压缩包,离线手动安装。
二、linux上数据同步工具elasticsearch-jdbc插件
es索引数据维护方法:
linux定时执行———jdbc插件定时更新数据—-
jdbc插件配置:
#!/bin/sh
bin=/opt/elasticsearch-jdbc/bin
lib=/opt/elasticsearch-jdbc/lib
echo '
{
"type" : "jdbc",
"jdbc" : {
"url" : "jdbc:mysql://ip:3306/schema",
"user" : "user",
"password" : "password",
"sql" : [{
"statement" : "sql注意_ID "
}],
"elasticsearch" : {
"host" : "localhost",
"port" : 9300
},
"index" : "es_creditinfo",
"type" : "crentbaseinfo"
}
}
' | /usr/local/jdk1.8/bin/java \
-cp "${lib}/*" \
-Dlog4j.configurationFile=${bin}/log4j2.xml \
org.xbib.tools.Runner \
org.xbib.tools.JDBCImporter
三、服务器端java调用es操作
吃饭了,空了继续写;哈哈