Elasticsearch和Kibana虚拟机安装及springboot整合es以及中文ik分词器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CoderYin/article/details/88366100

                Elasticsearch和Kibana虚拟机安装及springboot整合es

一、环境介绍

虚拟机环境:VMware14、centos7(64位)、jdk1.8

Elasticsearch版本:elasticsearch-6.6.1

Kinaba版本:Kibana-6.6.1

安装总结:推荐centos7(64位)及以上版本,本人在centos6.4(32位)出现很多问题,最终是启动成功但还是有启动报错信息。

二、elasticsearch安装要求介绍

介绍:elasticsearch运行默认需要1G运行内存,所以设置虚拟机启动内存大于1G

es配置文件默认启动1G内存代码:

注意:其实我们可以通过修改配置文件的jvm分配内存,如果自己电脑运行内存不够可以设置为512m运行内存。

 

三、Elasticsearch和Kibana文件下载

官网地址:https://www.elastic.co/products

扫描二维码关注公众号,回复: 5672534 查看本文章

图片介绍:

四、ELasticsearch配置文件修改

一、elasticsearch.yml配置文件修改

文件地址:/usr/local/elasticsearch-6.6.1/config (个人文件地址各不相同)

五、ELasticsearch启动注意事项

介绍:由于elasticsearch出于安全考虑设定在Linux中不能以root的方式进行启动,所以需要创建新的用户分组进行授权并启动。

Linux命令

groupadd esyingyy //创建用户分组

useradd esyyy -g esyingyy -p 123456 //给分组添加一个用户

chown -R esyyy :esyingyy  elasticsearch-6.6.1 //给用户添加操作elasticsearch-6.6.1的操作权限

su esyyy //切换用户

注意事项:给用户添加权限的时候一定要在elasticsearch的父级目录下进行操作,还有个人elasticsearch版本各不相同,所以看准自己的版本文件名进行权限赋值。

六、ELasticsearch启动报错解决

1、max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

     解决方法:

     vi /etc/sysctl.conf 添加如下代码 vm.max_map_count=655360 执行sysctl -p命令使得刚才修改的配置生效。

2、max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

     解决方法:

    vi /etc/security/limits.conf 添加如下代码:

    * soft nofile 65536

   * hard nofile 131072

   * soft nproc 2048

   * hard nproc 4096

 

七、个人在centos6.4(32位)虚拟机安装错误介绍:

1、ElasticsearchException[X-Pack is not supported and Machine Learning is not available for

      解决方法:

      在config/elasticsearch.yml添加一条配置 xpack.ml.enabled: false 即可

      参见博客地址:

      https://blog.csdn.net/fanrenxiang/article/details/81358332

2、JVM is using the client VM [Java HotSpot(TM) Client VM] but should be using a server VM for the best performance

      解决方法:

       修改文件 JAVA_HOME\jre\lib\i386\jvm.cfg 第一行与第二行互换 
                  -server KNOWN  #原来是第2行 
                  -client KNOWN  #原来是第1行 

3、未知错误但是能够正常启动elasticsearch

     介绍:

启动成功:(还望大佬们能指正)

4、elasticsearch安装错误报告优秀博客推荐:

https://blog.csdn.net/gan_ke/article/details/79553131

 

八、关闭防火墙访问elasticsearch

                      关闭防火墙 systemctl stop firewalld.service 

           访问:

 

九、Kibana(es可视化操作工具)下载安装

1、软件下载(linux64-BIT)

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

2、配置文件修改(kibaba/config/kibana.yml)

     

3、浏览器访问:

http://192.168.27.141:5601/app/kibana

安装成功!!!!!!

十一、Kibana基本文档增删改查操作

1、新建索引

注意:其实该方法就是修改索引的方法,如果你的id不变,还执行之前的语句,es会重新生成一个新的数据一模一样的文档,但是该文档的version会在之前的版本加一,并且覆盖之前的版本,通过GET /yangdu/user/1?version=index(GET  /yangdu/user/1)来进行访问。

2、查询索引

3、删除索引

十二、springboot整合Elasticsearch进行简单数据操作

1、思路

操作Elasticsearch就像操作数据库一样.

2、新建maven项目,导入如下pom文件依赖

    <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.0.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
	</dependencies>

3、新建实体类(userEntity)、userRepository、controller、配置文件application、启动类StartUp.class

UserEntity

// 文档的索引名称和类型
@Document(indexName = "yandu", type ="user" )
@Data
public class UserEntity {

	@Id
	private String id;
	
	private String name;
	
	private Integer sex;
	
	private Integer age;
}
UserRepository 

public interface UserRepository extends CrudRepository<UserEntity, String>{

}
EsController

@RestController
public class EsController {

	@Autowired
	private UserRepository userRepository;
	
	@RequestMapping("/addUser")
	public UserEntity addUser(@RequestBody UserEntity userEntity){
		return userRepository.save(userEntity);
	}
	
	@RequestMapping("/findUser")
	public Optional<UserEntity> findUser(String id){
		return userRepository.findById(id);
	}
}
application.yml

spring:
  data:
    elasticsearch:
    ####集群名称
     cluster-name: myes
    ####地址 
     cluster-nodes: 192.168.27.141:9300

注意:配置文件中的cluster-name一定要和centos中的elasticsearch配置文件中的一致,否者会报None of the configured nodes are available:错误。

postman测试:

十三、Elasticsearch整合Ik分词器

1、环境介绍

IK下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases 

点击elasticsearch-analysis-ik-6.6.0.zip进行下载,个人elasticsearch版本可能不一致,请注意版本一致性问题。

注意事项:IK分词器和Elasticsearch的版本一定要一致,不要说什么新版本会兼容旧版本。

2、安装教程

1、讲下载好的Zip进行解压,新建一个ik文件夹存放解压后的文件,应该是8个文件。

2、上传到个人Linux elasticsearch文件的plugins文件夹下,个人地址是(/usr/local/elasticsearch-6.6.1/plugins)

3、关闭elaticsearch,重启elasticsearch。

4、elasticsearch启动加载IK分词器成功日志

3、有IK分词器进行关键字搜索(只会收录常见有名的词)

4、自定义ik热词

a、在自己elasticsearch的ik分词器的config目录下新建一个custom文件上传一个自定义好的new_word.dic文件。

      new_word.dic文件是自己自定义的热词。

      custom文件夹是为了区别自己和系统设置的热词文件。

b、在ik的config配置文件中把自己新建的热词文件地址配置到 IKAnalyzer.cfg.xml配置中

c、重启elasticsearch,查看自己配置热词(对比第三步骤可以看出虎牙直播已经是一个热词不再拆分)

 

猜你喜欢

转载自blog.csdn.net/CoderYin/article/details/88366100