linux下elasticsearch 安装、配置
首先在linux中安装好jdk1.8
配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
最后让配置生效:
source /etc/profile
1.下载安装包
在/usr/local/ 目录下 下载elasticsearch ,并解压压缩包
通过命令进行下载:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz
再解压此压缩文件:tar -xvf elasticsearch-6.3.2.tar.gz 把解压的文件移动到 /usr/local
通过命令:
mv elasticsearch-6.3.2 /usr/local
ElasticSearch 配置elasticsearch.yml 修改 vim config/elasticsearch.yml
修改内容(没有就添加):
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
如果需要配置更多的elasticsearch.yml信息:
#这是集群名字,起名为 elasticsearch
cluster.name: elasticsearch
#节点名字 es启动后会将具有相同集群名字的节点放到一个集群下。
node.name: "es-node1"
#指定集群中的节点中有几个有master资格的节点。
#对于大集群可以写3个以上。
discovery.zen.minimum_master_nodes: 2
#默认是3s,这是设置集群中自动发现其它节点时ping连接超时时间,
#为避免因为网络差而导致启动报错,我设成了40s。
discovery.zen.ping.timeout: 40s
#设置是否打开多播发现节点,默认是true。
discovery.zen.ping.multicast.enabled: false
#设置绑定的ip地址,这是我的master虚拟机的IP。
network.bind_host: 192.168.137.100
#设置其它节点和该节点交互的ip地址。
network.publish_host: 192.168.137.100
#同时设置bind_host和publish_host上面两个参数。
network.host: 192.168.137.100
9300与9200区别
9300端口: ES节点之间通讯使用
9200端口: ES节点 和 外部 通讯使用
创建 elasticsearch 用户组
groupadd elasticsearch
创建用户 es 并设置密码
useradd es
passwd es
用户es 添加到 elasticsearch 用户组
usermod -G elasticsearch es
cd /usr/local/elasticsearch-6.3.2/bin
./elasticsearch 启动 会出现错误 can not run elasticsearch as root
解决方案:
因为安全问题elasticsearch
不让用root用户直接运行,所以要创建新用户
1.liunx创建新用户
adduser es
然后给创建的用户加密码
passwd es
输入两次密码(自己设置)
2.切换刚才创建的用户
su es
3.root给es赋权限
chown -R es /你的elasticsearch安装目录
比如:chown -R es /usr/local/elasticsearch-6.3.2
然后执行elasticsearch (前台运行)
./elasticsearch
若想让es后台运行:
./elasticsearch -d
默认是以1G的空间启动的 (前台启动) 若要改小则:
/elasticsearch -Xms512m -Xmx512m
后台启动
./elasticsearch -d -Xms512m -Xmx512m
注意:由于elasticsearch比较占用内存默认为1G所以可以改小点:可以在启动的时候进行设置:./elasticsearch -Xms512m -Xmx512m
终止前台运行:可以通过CTRL+C组合键来停止运行
终止后台运行,可以通过lsof -i:9200 查看 pid 然后再通过kill -9 进程号(PID)”停止
测试是否启动成功
curl http://localhost:9200