| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 知识篇 | 麒麟v10 下安装Elasticsearch -> 正文阅读 |
|
[大数据]知识篇 | 麒麟v10 下安装Elasticsearch |
最近因工作原因,和ES(Elasticsearch)接触的比较多;ES之前了解过,不怎么熟悉,故打算系统学习之。 按照自己的学习惯例,一是了解主要概念,二是动手安装一遍。 故,本文大纲为: 1.?概念理解: 1)?ES是什么? 2)?ES发展史 3)?ES市场成熟度 2.?安装部署 1)?Linux下如何安装 2)?Docker方式如何安装 Contents: 一、ES概念理解:1.?ES是什么(Elasticsearch)?Elasticsearch?是由?Elastic?公司创建。它的代码位于?GitHub - elastic/elasticsearch: Free and Open, Distributed, RESTful Search Engine。 目前,Elasticsearch?是一个免费及开放(free and open)的项目。 ? Elastic?公司也拥有?Logstash?及?Kibana?开源项目,三个项目形成了?ELK?软件栈,形成了一个强大的生态圈。其中: 1.?Logstash?负责数据的采集,处理(丰富数据,数据转换等); 2.?Kibana?负责数据展示,分析,管理,监督及应用; 3.?Elasticsearch?处于最核心的位置,它可以帮对数据进行快速地搜索及分析。 ? Elasticsearch是一个基于Lucene的一个开源的高扩展的分布式全文检索引擎,基于RESTful web接口,隐藏了Luncee的复杂性,从而让全文搜索变得简单;可近乎实时的存储、检索数据,可扩展性强,可处理PB级别的数据。 理解ES的关键在于理解lucene的基本原理: Lucene是一种高性能、可伸缩的信息搜索(IR)库,在2000年开源,最初由鼎鼎大名的Doug Cutting开发,是基于Java实现的高性能的开源项目。Lucene采用了基于倒排表的设计原理,可以非常高效地实现文本查找,在底层采用了分段的存储模式,使它在读写时几乎完全避免了锁的出现,大大提升了读写性能。 关于lucene的原理,可参见如下链接,这里不再赘述: https://www.jianshu.com/p/28fb017be7a7 ? 官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。 Elasticsearch以上大致了解了ES是什么? 接下来再说一下ES的发展史,了解其发展史,可帮助我们知道所以然和不然。 4.?ES发展史Elasticsearch是一个基于?Apache Lucene?(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene?可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 在?1999?年,Doug Cutting?创建了一个叫做?Lucene?的开源项目: 1.?一个完全用?Java?编写的搜索引擎库 2.?截止2005年,是一个顶级的?Apache?开源项目 3.?提供强大的全文搜索功能 但Lucene?只是一个库,本身并不提供高可用性及分布式部署。想要发挥其强大的作用,需使用?Java?并要将其集成到应用中。而且Lucene?非常复杂,需要深入的了解检索相关知识来理解它是如何工作的,上手比较困难。 大家这里可以类比内存溢出和释放来理解。 在?2004?年,?Shay Banon也就是现在?Elastic?的?CEO,开发了一个叫做?Compass?的开源项目: 1.?构建于?Lucence?之上 2.?目的是使得?Lucene?搜索更容易集成到?Java?应用中去 3.?可扩展性变得尤为重要 在?2010?年,Shay?完全重新编写了?Compass?以实现如下的两个目的: 1.?设计之初,就使用分布式部署设计 2.?可方便地使用其它的语言进行对接调用 Shay?最终把这个项目称之为?Elasticsearch,并于2010年10月发布与?github?上。 不过,Elasticsearch?不仅仅是?Lucene?和全文搜索引擎,它还提供: 1.?分布式的实时文件存储,每个字段都被索引并可被搜索 2.?实时分析的分布式搜索引擎 3.?可以扩展到上百台服务器,处理?PB?级结构化或非结构化数据 上述功能被集成到一台服务器,应用可以通过简单的?RESTful API、各种语言的客户端甚至命令行与之交互。上手?Elasticsearch?非常简单,它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。 Elasticsearch?的特点是它提供了一个极速的搜索体验。这源于它的高速(speed)。相比较其它的一些大数据引擎,Elasticsearch?可以实现秒级的搜索;Elasticsearch?的?cluster?是一种分布式的部署,极易扩展(scale)。 小结: Elasticsearch?是使用?Java?编写并使用?Lucene?来建立索引并实现搜索功能,通过简单连贯的?RESTful API?让全文搜索变得简单并隐藏?Lucene?的复杂性;其是实时分析的分布式搜索引擎,可以扩展到上百台服务器,处理?PB?级结构化或非结构化数据。 5.?ES市场认可度Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。 可以看出5月份的目前Elasticsearch排名为第七名,Solr的DB-Engines排名为第29名。 DB-Engines官网链接: https://db-engines.com/en/ranking 二、动手安装了解了ES的概念和发展史,接下来就该实操起来练练手,所谓烂笔头好过好记性。 ? Elasticsearch单机版部署 Elasticsearch版本 Elasticsearch版本:8.1.3 Kibana版本:8.1.3 操作系统: 麒麟v10 sp2 [root@192 ~]# cat /proc/version Linux version 4.19.90-24.4.v2101.ky10.x86_64 (KYLINSOFT@localhost.localdomain) (gcc version 7.3.0 (GCC)) #1 SMP Mon May 24 12:14:55 CST 2021 CPU芯片信息: [root@192 ~]# lscpu 架构:???????????????????????????x86_64 CPU?运行模式:??????????????????32-bit, 64-bit 字节序:?????????????????????????Little Endian Address sizes: ??????????????????45 bits physical, 48 bits virtual CPU: ????????????????????????????1 在线?CPU?列表:?????????????????0 每个核的线程数:?????????????????1 每个座的核数:???????????????????1 座:?????????????????????????????1 NUMA?节点:?????????????????????1 厂商?ID:???????????????????????AuthenticAMD CPU?系列:??????????????????????23 型号:???????????????????????????96 型号名称:???????????????????????AMD Ryzen 7 4800H with Radeon Graphics 步进:???????????????????????????1 CPU MHz:???????????????????????2894.561 BogoMIPS:??????????????????????5789.12 超管理器厂商:???????????????????VMware 虚拟化类型:?????????????????????完全 L1d?缓存:??????????????????????32 KiB L1i?缓存:??????????????????????32 KiB L2?缓存:???????????????????????512 KiB L3?缓存:???????????????????????4 MiB NUMA?节点0 CPU:????????????????0 具体操作步骤如下: 1.?解压缩 [root@192 es]# gunzip elasticsearch-8.1.3-linux-x86_64.tar.gz -rw-r--r-- 1 root root 1101649920 ?5月 ?3 18:41 elasticsearch-8.1.3-linux-x86_64.tar 继续解压缩 [root@192 es]# tar -xvf elasticsearch-8.1.3-linux-x86_64.tar [root@192 es]# ll 总用量?1075832 drwxr-xr-x 9 root root ???????155 ?4月?19 16:19 elasticsearch-8.1.3 -rw-r--r-- 1 root root 1101649920 ?5月 ?3 18:41 elasticsearch-8.1.3-linux-x86_64.tar 2.?创建用户 基于安全可控的原则,Elasticsearch?不允许?root?用户直接运行; 所以要创建新用户,?root?用户中创建新用户 [root@192 ~]# useradd es????#新增?es?用户 [root@192 ~]# passwd es?????#为?es?用户设置密码 更改用户?es?的密码 。 新的?密码: 重新输入新的?密码: passwd:所有的身份验证令牌已经成功更新。 userdel -r es #如果错了,可以删除再加 3.?修改属性(必须要执行) [root@192 es]# pwd /es [root@192 es]# chown -R es:es elasticsearch-8.1.3 4.?修改配置文件 修改/es/elasticsearch-8.1.3/config/elasticsearch.yml?文件?#?加入如下配置 [root@192 config]# vim elasticsearch.yml cluster.name: my-application node.name: node-1 network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["node-1"] ? 注意: 1.?为es设置ip绑定,默认是127.0.0.1,也就是默认只能通过127.0.0.1?或者localhost才能访问,也可配置0.0.0.0全部可以访问 2.?为es设置自定义端口,默认是9200 5.?修改OS层系统参数 修改/etc/security/limits.conf #?在文件末尾中增加下面内容 #?每个进程可以打开的文件数的限制 es soft nofile 65536 es hard nofile 65536 修改/etc/sysctl.conf #?在文件中增加下面内容 #?一个进程可以拥有的?VMA(虚拟内存区域)的数量,默认值为?65536 vm.max_map_count=655360 重新加载 [root@192 security]# sysctl -p kernel.sysrq = 0 net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.tcp_syncookies = 1 kernel.dmesg_restrict = 1 net.ipv6.conf.all.accept_redirects = 0 net.ipv6.conf.default.accept_redirects = 0 vm.max_map_count = 655360 6.?启动软件 使用?ES?用户启动 su - es cd?/es/elasticsearch-8.1.3/bin #后台启动 ./elasticsearch -d 7.?停止es ps -ef|grep elasticsearch kill -9 pid 三、设置Elasticsearch密码步骤1:设置密码 [es@192 bin]$ ./elasticsearch-setup-passwords interactive ****************************************************************************** Note: The 'elasticsearch-setup-passwords' tool has been deprecated. This ??????command will be removed in a future release. ****************************************************************************** Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user. You will be prompted to enter passwords as the process progresses. Please confirm that you would like to continue [y/N]y Enter password for [elastic]: passwords must be at least [6] characters long Try again. Enter password for [elastic]: Reenter password for [elastic]: Enter password for [apm_system]: Reenter password for [apm_system]: Enter password for [kibana_system]: Reenter password for [kibana_system]: Enter password for [logstash_system]: Reenter password for [logstash_system]: Enter password for [beats_system]: Reenter password for [beats_system]: Enter password for [remote_monitoring_user]: Reenter password for [remote_monitoring_user]: Changed password for user [apm_system] Changed password for user [kibana_system] Changed password for user [kibana] Changed password for user [logstash_system] Changed password for user [beats_system] Changed password for user [remote_monitoring_user] Changed password for user [elastic] 因为需要设置?elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user?这些用户的密码,故这个过程比较漫长,耐心设置。 步骤2:验证 浏览器直接访问https://192.168.220.110:9200,会出现输入用户名、密码的弹窗,输入elastic和密码后,可看到elasticsearch信息。 四、安装kibanahttps://www.elastic.co/cn/downloads/kibana 1.?解压缩 [root@192 es]# gunzip kibana-8.1.3-linux-x86_64.tar.gz [root@192 es]# tar -xvf kibana-8.1.3-linux-x86_64.tar 2.?vim config/kibana.yml server.port:?5601? server.host:?"0.0.0.0" elasticsearch.hosts:?["http://192.168.220.110:9200"]? elasticsearch.username:?"kibana_system"? elasticsearch.password:?"elastic" #kibana中文模式 i18n.locale: "zh-CN" 3.?修改权限 [root@192 es]# chown -R es:es kibana-8.1.3 4.?后台启动 [es@192 ~]$ cd?/es/kibana-8.1.3/bin [es@192 bin]$ nohup ./kibana & 5.?web访问 ?ip:5601 http://192.168.220.110:5601 注意:192.168.220.110为本虚拟机的ip地址 6) 停止kibana lsof -i:5601查看进程 [es@192 bin]$ lsof -i:5601 COMMAND ??PID USER ??FD ??TYPE DEVICE SIZE/OFF NODE NAME node ???89939 ??es ??18u ?IPv4 165188 ?????0t0 ?TCP *:esmagent (LISTEN) kill -9进程号 总结: 1.?本文阐述了ES的概念;因为不了解,故动手安装了一遍单机版的ES部署过程;后续集群版则其部署; 2.?To be continued. ? 【参考】 https://blog.csdn.net/UbuntuTouch/article/details/98871531 【参考】 https://db-engines.com/en/ranking 【参考】 https://elasticstack.blog.csdn.net/article/details/113754619 【参考】 https://www.jianshu.com/p/28fb017be7a7 【参考】 https://www.modb.pro/db/394758 【参考】 https://www.elastic.co/guide/index.html 以下是个人微信公众号,欢迎关注: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:10:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |