Mac/linux下安装与使用ElasticSearch

上一篇Blog示例用到的 ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例,基于Lucene构建。

【玩转ElasticSearch】横向对比ElasticSearch与Sphinx https://yq.aliyun.com/articles/54636


1、下载  

https://www.elastic.co/downloads/elasticsearch  

我下载的是elasticsearch-5.5.0

git 地址

https://github.com/medcl/elasticsearch-analysis-ik

2、解压运行

cd到安装目录  (我就直接放在/Users/kuaX/Downloads/elasticsearch-5.5.0)
sudo bin/elasticsearch

执行  ./elasticsearch   ,这样就算运行起来了,如果常用,可以配置开机启动什么的; 

别外如果权限够,可以不用执行 sudo; 结束的话按 ctrl+c,  linux 命令行的基本指令

3、验证

浏览器中访问http://localhost:9200/,看到一个json结果集,表明安装成功:

{
  "name" : "kNSfyPl",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "dZChAyRPQxSeHREFHzTbWA",
  "version" : {
    "number" : "5.5.0",
    "build_hash" : "260387d",
    "build_date" : "2017-06-30T23:16:05.735Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

4、插件安装

这里推荐使用elasticsearch-head

需要从github上面下载代码,因此没有git的,先要安装git

yum -y install git  (mac 下可以用 brew代替)

安装完成后,就可以直接下载代码了:

git clone git://github.com/mobz/elasticsearch-head.git

下载后,修改下777权限(简单粗暴),然后拷贝到es的plugins下面,参考:

/ES_HOME/plugins/head/*


rm plugins/.DS_Store 

--sudo bin/plugin install mobz/elasticsearch-head
重启ES,浏览器中访问http://localhost:9200/_plugin/head/,验证是否成功:

Elasticsearch教程(四) elasticsearch head 插件安装和使用: http://www.sojson.com/blog/85.html

https://github.com/mobz/elasticsearch-head

我安装不成功,其实在目录下elasticsearch-head 直接点开 index.html 就行,因为head插件本质上还是一个nodejs的工程

./bin/elasticsearch-plugin install install elasticsearch-head



热更新 IK 分词使用方法:http://blog.csdn.net/wulex/article/details/70888749

	git clone https://github.com/medcl/elasticsearch-analysis-ik.git
	mvn package
	
	ElasticSearch安装ik分词插件  https://my.oschina.net/xiaohui249/blog/232784

 
 
ElasticSearch5.3安装IK分词器并验证 http://blog.csdn.net/u010504064/article/details/70214040
git clone https://github.com/medcl/elasticsearch-analysis-ik.git

Install IK分词 (按github来的)

1.download or compile

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.1/elasticsearch-analysis-ik-5.6.1.zip

使用:

A、示例初始化blog索引

curl -X PUT http://localhost:9200/blog -d '{
                                               "settings" : {
                                                   "index" : {
                                                       "number_of_shards" : 3,
                                                       "number_of_replicas" : 0
                                                   }
                                               }
                                           }'

curl -X POST http://localhost:9200/blog/blog/_mapping -d '{
      "properties": {
        "id":    { "type": "text", "index":"no"  },
      "title":    { "type": "text","analyzer": "ik_smart",
                "search_analyzer": "ik_smart"  },
        "secondTitle":    { "type": "text","analyzer": "ik_smart",
                "search_analyzer": "ik_smart"  },
        "catalog":    { "type": "keyword"  },
        "auther":    { "type": "keyword", "index":"no"  },
        "img":    { "type": "text", "index":"no"  },
        "md":     { "type": "text","analyzer": "ik_smart",
                "search_analyzer": "ik_smart"},
        "display":  {
          "type":   "text",
          "index":"no"

        },
        "publishTime":  {
          "type":   "date",
          "format": "strict_date_optional_time||epoch_millis"
        }
      }
}'

http://localhost:9200/blog?pretty


下面测试下linux下安装ElasticSearch

1、 java_home 设置

2、


二、运行 & 关闭 elasticsearch

1.运行elasticsearch :

编辑 /home/zkpk/elasticsearch-1.7.3/bin/elasticsearch.in.sh, 设置 ES_MIN_MEM和ES_MAX_MEM,确保二者数值一致,或者可以在启动es时指定,

[zkpk@master ~]$ cd ~/elasticsearch-node1/bin
[zkpk@master bin]$ ./elasticsearch -Xms512m -Xmx512m
   
   
  • 1
  • 2

若想让es后台运行,则

[zkpk@master bin]$ ./elasticsearch -d -Xms512m -Xmx512m (ERROR: X is not a recognized option)

./elasticsearch -d

  • 1
2.关闭elasticsearch:

那么,es的停止呢?

若是es的前台运行,则用ctrl + c来停止。

若是es的后台运行,则用kill  -9 进程号来停止。


前台运行:可以通过”CTRL+C”组合键来停止运行 
后台运行,可以通过”kill -9 进程号”停止.也可以通过REST API接口:

curl -XPOST http://主机IP:9200/_cluster/nodes/_shutdown
   
   
  • 1

来关闭整个集群,通过:

curl -XPOST http://主机IP:9200/_cluster/nodes/节点标示符(如es-node1)/_shutdown
   
   
  • 1

来关闭单个节点.


如果是用root账号启动,会报以下错误 

can not run elasticsearch as root

  • 这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 
    建议创建一个单独的用户用来运行ElasticSearch 

  • 创建elsearch用户组及elsearch用户 

    groupadd elsearch
    useradd elsearch -g elsearch -p elasticsearch
  • 更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch 

    cd /opt
    chown -R elsearch:elsearch  elasticsearch

    chown -R elsearch:elsearch  /root/elasticsearch-5.5.0/bin/elasticsearch

    chown -R elsearch:elsearch /home/elsearch/elasticsearch-5.5.0

  • 切换到elsearch用户再启动 

    su elsearch cd /root/elasticsearch-5.5.0/bin/cd /home/elsearch/elasticsearch-5.5.0/bin./elasticsearch



  
  

明明是1.8的java为什么启动的时候还是报错java版本低?

Couldnot find or load main classorg.elasticsearch.tools.JavaVersionCheckerElasticsearch requires at least Java 8 but your Java version from /usr/java/latest/bin/java does not meet this requirement
搞这个弄了好办天,搞定参见: https://discuss.elastic.co/t/error-could-not-find-or-load-main-class-org-elasticsearch-tools-javaversionchecker/82213/12
说重点, 一、不能用root 新建个用户上面己经说了,二elasticsearch必须不能放在root 目录下,放到新建的elsearch就可以了
三种配置环境变量的方法 1. 修改/etc/profile文件 
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 
·用文本编辑器打开
vim /etc/profile 
·在profile文件末尾加入: 
export JAVA_HOME=/usr/share/jdk1.6.0_14 
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

#set java environment

JAVA_HOME=/datafile/jdk1.8.0_144

JRE_HOME=/datafile/jdk1.8.0_144/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

#export JAVA_HOME JRE_HOME CLASS_PATH PATH

source  /etc/profile  生效
·重新登录 
·注解 
a. 你要将 /usr/share/jdk1.6.0_14改为你的jdk安装目录 
b. linux下用冒号“:”来分隔路径 
c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值 
在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种 
常见的错误。 
d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。 
e. export是把这三个变量导出为全局变量。 
f. 大小写必须严格区分。 

2. 修改.bash_profile文件  

这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。 
·用文本编辑器打开用户目录下的.bash_profile文件 
·在.bash_profile文件末尾加入: 

export JAVA_HOME=/usr/share/jdk1.6.0_14 
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

·重新登录 

3. 直接在shell下设置变量 
不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。 
只需在shell终端执行下列命令: 
export JAVA_HOME=/usr/share/jdk1.6.0_14 
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 


  
  


 
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值