elasticsearch安装以及初始化,并用python访问

配置好java环境变量

从官网下载elasticsearch,解压,进入Elasticsearch目录

在linux环境下输入以下执行命令即可启动:

bin/elasticsearch

 

默认启动外网是无法访问的,需要对配置文件进行修改:

vi config/elasticsearch.yml

添加如下内容:

network.host: 0.0.0.0
http.port: 8086

 

 

关闭es再次启动:(通常来说会遇到如下错误,因为es对资源需求量较大,一般linux默认配置并没有达到es资源需求)

【报错1】max file descriptors [4096] for elasticsearch process likely too low, consider increasing to at least [65536]

需要修改系统文件/etc/security/limits.conf并添加(或修改)如下行

* soft nofile 65536
* hard nofile 131072

其中的*号代表该配置对所有用户适用

注意!修改完后再启动es会发现错误依旧存在,这时候应先退出登录(windows适用putty远程登录linux的用户应退出putty),再次登录,方可生效。

【报错2】max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

需要修改系统文件/etc/sysctl.conf并添加(或修改)如下行

vm.max_map_count=655360

保存退出后,需要运行如下命令使其生效:

sysctl -p

 

此时我们通过浏览器打开页面,就能访问ES了:

 

 

如果我们配置了特殊的端口(例如本文中配置为8086,而不是默认的9200)应该如何访问呢?我们以python为例:

from datetime import datetime
from elasticsearch import Elasticsearch

es = Elasticsearch(hosts="roc-3:8086")
index = 'my-index3'
doc_type = "test-type"
id_num = 01
es.indices.create(index=index)
es.index(index=index,
         doc_type=doc_type,
         id=id_num,
         body={"any": "data01",
               "timestamp": datetime.now(),
               "quantity": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}
         )

res = es.get(index=index, doc_type=doc_type, id=id_num)
for k in res.keys():
    print(k, res[k])

只需要把默认的

es = Elasticsearch()

改成

es = Elasticsearch(hosts="roc-3:8086")

即可

 

 

转载于:https://my.oschina.net/u/2996334/blog/1841938

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值