elasticsearch搭建及python简单使用
2017-10-23 22:04
471 查看
这系列文章主要记录自己学习Elasticsearch的过程,因为项目组es的使用量日益增加,作为一名平凡的运维非专业开发人员,是有必要仔细的从头再过一次这些基本的概念。也是作为Blog的第一篇文章,像众多大牛学习。
环境描述:
oracle virtual Box 虚拟机
centos7.3
双网卡,10.0.0.2 主机访问,通讯接口
elasticsearch安装
在es的官网上下载最近的安装包:https://www.elastic.co/downloads/elasticsearch
目前最近版本Version:5.6.3,公司使用的版本的是5.4.2。
上传到服务器上后解压:
tar zxvf elasticsearch-5.6.3.tar.gz
修改config目录下文件,修改data文件和logs文件目录及绑定的IP地址:
[root@bogon config]# pwd
/data01/elasticsearch-5.6.3/config
[root@bogon config]# ls
elasticsearch.yml jvm.options log4j2.properties scripts
插入以下配置
path.data: /data01/elasticsearch-5.6.3/data
path.logs: /data01/elasticsearch-5.6.3/logs
network.host: 10.0.0.2
es配置请参考以下url:
https://www.elastic.co/guide/en/elasticsearch/reference/master/settings.html
修改完成后,切换到其他用户启动,如果是用 root目录启动,再日志文件中会有报错
java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.3.jar:5.6.3]
[2017-10-21T10:01:31,085][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [docker-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.6.3.jar:5.6.3]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.3.jar:5.6.3]
… 6 more
报错的原因是el默认不能使用root启动。
解决方案:
将es目录授权给其他用户:
chown -R test:test /data01/elasticsearch-5.6.3
su - test
/data01/elasticsearch-5.6.3/bin
以下是elasticsearch命令的帮助部分,通过执行elasticsearch -h可以查看。
starts elasticsearch
Option Description
—— ———–
-E Configure a setting
-V, –version Prints elasticsearch version information and exits 查看版本
-d, –daemonize Starts Elasticsearch in the background 后台运
8fd6
维
-h, –help show help 查看帮助
-p, –pidfile Creates a pid file in the specified path on start 文件PID位置
-q, –quiet Turns off standard ouput/error streams logging in console 安静模式
-s, –silent show minimal output 最小化输出
-v, –verbose show verbose output 可视化模式
启动es
./elasticsearch -d -p /data01/elasticsearch-5.6.3/logs/es.pid
启动报错解决方案:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
以上两个跑错主要是因为系统参数没有优化导致的。
第一个报错,在 /etc/security/limits.conf中添加以下两行:
* soft nofile 65536
* hard nofile 65536
第二个报错,在/etc/sysctl.conf添加:
vm.max_map_count = 262144
再次启动, 查看日志,正常启动。
测试
浏览器中输入
http://10.0.0.2:9200/_cluster/health?pretty
输出如下,说明ES启动成功。
{
“cluster_name” : “xiafanli”,
“status” : “green”,
“timed_out” : false,
“number_of_nodes” : 1,
“number_of_data_nodes” : 1,
“active_primary_shards” : 0,
“active_shards” : 0,
“relocating_shards” : 0,
“initializing_shards” : 0,
“unassigned_shards” : 0,
“delayed_unassigned_shards” : 0,
“number_of_pending_tasks” : 0,
“number_of_in_flight_fetch” : 0,
“task_max_waiting_in_queue_millis” : 0,
“active_shards_percent_as_number” : 100.0
}
基本查询语句
pythonAPI访问
elasticsearch安装如果能访问外网的话,可以直接用pip安装
pip install elasticsearch
如果没有连接外网,可以在pypi上查找elasticsearch的包下载解压,用命令行安装:
python setup.py install
基本增删查
# _*_ coding:UTF-8 _*_ from elasticsearch import Elasticsearch host = {"host":"10.0.0.2","port":9200} #初始化 es = Elasticsearch([host]) #创建index # es.indices.create(index="test_index_python")
相关文章推荐
- Windows下Elasticsearch环境搭建并结合Python简单使用
- 使用Python搭建简单Http服务器
- Elasticsearch上手——Python API的简单使用
- 使用Django搭建一个简单的Python Web工程
- PyCharm、Python3和PyQt5环境搭建和简单使用
- ELK集群的搭建和Elasticsearchd api的简单使用
- Elasticsearch简单使用和环境搭建
- 构建垂直搜索引擎 本课程带领大家实现一个简单的垂直搜索引擎网站,使用nodejs、python、elasticsearch实现的。
- windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- ubuntu下使用nginx、mysql、python搭建一个简单的webserver
- 【转帖】windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- python 使用socket搭建简单服务器
- 使用Httpie调试ElasticSearch环境搭建及简单测试(图文详解)
- 转:windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- 构建垂直搜索引擎 本课程带领大家实现一个简单的垂直搜索引擎网站,使用nodejs、python、elasticsearch实现的。
- libcurl的使用简单例子(python)
- 在python中使用c语言扩展模块的简单示例
- yum的安装的使用搭建简单的apache服务器
- Linux环境下Maven仓库的搭建(nexus)及Mavan的简单使用