专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

ES在大数据中的应用

  一、相关软件介绍
  1。Elasticsearch
  Elasticsearch,简称为ES,是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。无论是结构化或非结构化文本、数字数据还是地理空间数据,Elasticsearch都能以支持快速搜索的方式高效地存储和索引它。
  本文在linux环境使用Elasticsearch7。14。0版本进行配置及操作。
  2。Kibana(辅助工具)
  Kibana是一个开源的分析与可视化平台,可实现以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。它和Elasticsearch一起使用,用于搜索、查看存放在Elasticsearch中的数据。
  3。elasticsearchhead(辅助工具)
  elasticsearchhead是用于监控Elasticsearch状态的客户端插件,包括数据可视化、执行增删改查操作等。
  4。elasticsearchpy
  elasticsearchpy是官方提供的Elasticsearchpython客户端库,它只是对Elasticsearch的restAPI接口做了一层简单的封装。二、环境搭建
  1。Elasticsearch部署
  (1)下载
  elasticsearch7140
  (2)解压
  tarzxvfelasticsearch7。14。0linuxx8664。tar。gz
  (3)安装ES不用使用root用户
  创建普通用户work。
  (4)修改配置文件configelasticsearch。yml
  配置项如下:
  cluster。name:escluster
  node。name:esnode
  node。master:true
  node。data:true
  node。maxlocalstoragenodes:1
  path。data:dataelasticsearchdata
  path。logs:dataelasticsearchlogs
  network。host:0。0。0。0
  http。port:9200
  transport。tcp。port:9300
  transport。tcp。compress:true
  discovery。seedhosts:〔192。168。1。90:9300〕
  cluster。initialmasternodes:〔esnode〕
  http。cors。enabled:true
  http。cors。alloworigin:
  (5)启动ES
  。binelasticsearch
  elasticsearch启动成功样例图
  后台方式启动ES:
  。binelasticsearchd
  (6)可能出现的错误及解决方法
  错误1:
  maxfiledescriptors〔4096〕forelasticsearchprocessistoolow,increasetoatleast〔65535〕
  解决方法:
  sudovimetcsecuritylimits。conf
  追加以下内容:
  softnofile65536
  hardnofile65536
  softnproc4096
  hardnproc4096
  错误2:
  maxnumberofthreads〔3802〕foruser〔work〕istoolow,increasetoatleast〔4096〕
  解决方法:
  sudovimetcsecuritylimits。d20nproc。conf
  修改为:
  softnproc4096
  错误3:
  maxvirtualmemoryareasvm。maxmapcount〔65530〕istoolow,increasetoatleast〔262144〕
  解决方法:
  sudovimetcsysctl。conf
  修改为:
  vm。maxmapcount262144
  执行以下命令生效:
  sysctlp
  2。Kibana
  (1)下载
  kibana7140
  (2)解压
  tarzxvfkibana7。14。0linuxx8664。tar。gz
  (3)修改配置文件configkibana。yml
  配置项如下:
  server。host:192。168。1。90
  server。shutdownTimeout:5s
  elasticsearch。hosts:〔http:192。168。1。90:9200〕
  monitoring。ui。container。elasticsearch。enabled:true
  server。port:5601
  kibana。index:。kibana
  i18n。locale:zhCN
  (4)启动kibana
  。binkibana
  kibana启动成功样例图
  (5)浏览器打开kibana开发工具
  kibana开发工具界面图
  3。elasticsearchhead
  (1)此处提供编译好的版本,解压后运行npmrunstart即可启动
  链接:
  https:pan。baidu。coms19F8zMdN94QhgqYP9vkPHHA
  提取码:a99y
  (2)自行下载编译
  cdelasticsearchhead
  npminstall
  npmrunstart
  elasticsearchhead启动成功样例图
  (3)浏览器打开elasticsearchhead,查看ES状态
  elasticsearchhead界面图
  集群健康值
  green:所有主要分片和复制分片都可用
  yellow:所有主要分片可用,但不是所有复制分片都可用
  red:不是所有的主要分片都可用
  当集群状态为red,它仍然正常提供服务,它会在现有存活分片中执行请求,此时需要尽快修复故障分片,防止查询数据的丢失。
  4。elasticsearchpy
  pipinstallelasticsearch7。14。0三、核心概念
  索引(Index)
  索引就是一类文档的集合,类似于关系型数据库中的表。索引由其名称进行标识,每个索引名称必须是小写。
  文档(Document)
  Index中单条记录称为文档,等同于关系型数据库表中的行。
  字段(Field)
  json结构的字段,等同于关系型数据库表中的列。
  映射(Mapping)
  Mapping是处理数据的方式和规则方面做一些限制,如:某个字段的数据类型、默认值、分析器、是否被索引等等,都是映射里可以设置的。
  分片(Shards)
  一个索引可以存储超过单个节点硬件限制的大量数据,相当于分表的概念。ES提供了将索引划分成多份的能力,每一份称之为分片。当创建一个索引的时候,可以指定想要的分片数量。允许水平分割扩展内容容量;允许在分片之上进行分布式的、并行的操作,进而提高性能吞吐量。
  副本(Replicas)
  在分片节点失败的情况下,提供了高可用性。复制分片从不与原主要分片置于同一节点上是非常重要的。扩展搜索量吞吐量,因为搜索可以在所有副本上并行运行。四、python操作ES
  1。连接ES
  fromelasticsearchimportElasticsearch
  defmain():
  连接ES
  esElasticsearch(〔192。168。1。90:9200〕,
  sniffonstartTrue,连接前测试
  sniffonconnectionfailTrue,节点无响应时刷新节点
  sniffertimeout60设置超时时间)
  ifnamemain:
  main()
  2。增
  创建索引
  定义mappingbody
  bodyindex{
  mappings:{
  properties:{
  name:{type:keyword},
  age:{type:long},
  tags:{type:text}
  }},
  settings:{
  index:{
  numberofshards:3,
  numberofreplicas:0
  }}}
  创建index
  reses。indices。create(indexindexname,bodybodyindex,ignore400)
  插入单个数据
  person1{
  name:张三,
  age:18,
  tags:勤奋学习十载寒窗,凿壁借光,囊萤映雪,手不释卷,有良好的表达能力。有耐心心态好,善于维系客户关系。果断热情勇敢孤僻活力,思想成熟能够独立工作。
  }
  reses。index(indexindexname,bodyperson1)
  批量插入数据
  fromelasticsearchimporthelpers
  insertinfos〔〕
  person2{
  index:indexname,
  name:李四,
  age:20,
  tags:有极强的领导艺术,公正严明铁面无私,公私分明。关心他人无微不至,体贴入微。精力充沛,并有很强的事业心。气吞山河正气凛然,善于同各种人员打交道。
  }
  person3{
  index:indexname,
  name:王五,
  age:19,
  tags:尊敬师长团结同学,乐于助人学习勤奋,用心向上,用心参加班级学校组织的各种课内外活动。用心开展批评与自我批评。
  }
  insertinfos。append(person2)
  insertinfos。append(person3)
  helpers。bulk(clientes,actionsinsertinfos)
  elasticsearchhead数据浏览界面
  3。删
  删除索引
  删除index
  reses。indices。delete(indexindexname,ignore〔400〕)
  按id删除文档
  按id删除
  reses。delete(indexindexname,idbKTgXYUBfH4USN9RFMOh)
  按条件删除文档
  按条件删除
  body{
  query:{
  match:{
  name:张三
  }}}
  reses。deletebyquery(indexindexname,bodybody,ignore〔400,404〕)
  4。改
  index
  body{
  name:王五,
  age:19,
  tags:尊敬师长团结同学,乐于助人学习勤奋,用心向上,用心参加班级学校组织的各种课内外活动。用心开展批评与自我批评。
  }
  reses。index(indexindexname,idbaTgXYUBfH4USN9RFMOh,bodybody)
  index()方法完成两个操作,如果数据不存在,那就执行插入操作,如果已经存在,那就执行更新操作。
  index实现更新时,body中必须写入全部字段,否则未包含的字段会被置为空。
  update
  body{
  doc:{
  name:王五
  }}
  es。update(indexindexname,idbaTgXYUBfH4USN9RFMOh,bodybody)
  5。查
  查看es中的索引
  indexinfoes。indices。get()
  查看索引的名称
  indexnamesindexinfo。keys()
  判断索引是否存在
  indexnameesindex
  print(es。indices。exists(indexname))
  查询文档数量
  doccountes。count(indexindexname)
  按id查询
  body{
  query:{
  match:{
  id:baTgXYUBfH4USN9RFMOh
  }}}
  reses。search(indexindexname,bodybody)
  按属性查询,结果过滤返回指定字段
  body{
  query:{
  match:{
  age:20
  }},
  source:〔name,tags〕
  }
  reses。search(indexindexname,bodybody)
  按年龄排序
  body{
  sort:{
  age:{
  order:descasc:升序,desc:降序
  }}}
  reses。search(indexindexname,bodybody)
  查询年龄大于18且小于等于20的文档
  body{
  query:{
  range:{
  age:{
  gt:18,
  lte:20
  }}}}
  reses。search(indexindexname,bodybody)
  按年龄降序且分页查询
  body{
  sort:{
  age:{
  order:descasc:升序,desc:降序
  }},
  from:0,
  size:1
  }
  reses。search(indexindexname,bodybody)
  精准查询
  body{
  query:{
  matchphrase:{
  tags:耐心
  }}}
  reses。search(indexindexname,bodybody)
  布尔查询:姓名为张三且tags中包含耐心
  body{
  query:{
  bool:{
  must:〔{
  match:{
  name:张三
  }},
  {
  matchphrase:{
  tags:耐心
  }}〕}}}
  reses。search(indexindexname,bodybody)
  布尔查询:姓名为王五且tags中不包含耐心
  body{
  query:{
  bool:{
  must:〔{
  match:{
  name:王五
  }}〕,
  mustnot:〔{
  matchphrase:{
  tags:耐心
  }}〕}}}
  reses。search(indexindexname,bodybody)五、DSL语句
  QueryDSL是一个Java开源框架用于构建类型安全的SQL查询语句。在查询时,通常先在Kibana中使用DSL验证查询语句的正确性,再转到python中使用。
  查询所有索引
  DSL执行界面图
  添加文档:id设为1
  PUTesindexdoc1
  {
  name:赵六
  }
  删除文档:id1
  DELETEesindexdoc1
  查询
  GETesindexsearch
  {
  query:{
  match:{
  age:18
  }}}
  先验证结果正确,将GETesindexsearch后{}的内容转到python的body中即可。
  智驱力科技驱动生产力
  智驱力科技驱动生产力

工业品电商,被花里胡哨的概念,玩魔怔了许多工业品电商,被铺天盖地的互联网黑话给忽悠住了,忘了自己曾有的优势是什么?妄图通过PPT演讲等方式拿到一些融资,再去和传统电商的垂直领域平台打擂。传统电商的垂直领域平台最强大的是费迪南德如果我是边锋,相比阿诺德我更不愿意面对里斯詹姆斯直播吧9月26日讯在自己的VibewithFive节目中,曼联名宿费迪南德谈到了切尔西后卫里斯詹姆斯与利物浦后卫阿诺德。他表示,如果自己是一名边锋,那么他更不愿意与里斯詹姆斯交手。在F35各机型稳步生产的时期,为啥还搞这么一台F15EX改进型美空军也把我整不会了!在美军重回大国对抗的背景下采购F15EX,这是干啥?而且15EX是替换F15C制空,而不是F15E对地。据说15EX装备国民警卫队,部署在本土而不是东亚或者欧欧国联2不敌丹麦仍保级克罗地亚出线奥地利降级北京时间9月26日凌晨2点45分,202223赛季欧国联A1组小组赛最后一轮展开争夺,法国队客场对阵丹麦。丹麦队由多尔贝格和奥尔森连续建功,法国队在上半场6分钟内连丢两球,姆巴佩下俄乌之战普京再讲话!台中将高安国后备动员为三次世界大战铺路文高安国近日俄罗斯败走乌东,普京总统9月21日下达二战以来首次动员令,这个动员令再度引发外界揣测路透社指此举已然增加直接与西方对抗的态势,往第三次世界大战迈进一步。下令征召30万预海南航空中国,全球航司机型介绍,高清照片版2。0logo海南航空控股股份有限公司(以下简称海南航空)于1993年1月成立,起步于中国最大的经济特区和自由贸易港海南省,致力于为旅客提供全方位无缝隙的航空服务,打造安全舒适的旅行体验中国有494个皇帝,只有这4个才能被称之为千古一帝从秦始皇嬴政一统六国,自立为始皇,到溥仪登基,中国封建社会一共有494位帝王。而在这些帝王当中,既有贤能又勤政的君主,也有一些是昏君。虽然,每一代的皇帝,都会让自己的国家发生一些变名人之门后代翁万戈,将183件古董无偿捐美,中国想回购却遭拒绝乱世古董一文不值,对于文物流失笔者带有很大的不甘。从历史根源的角度去看,起始点正为1840年鸦片战争后,西方列强一次又一次伸出魔爪,峥嵘岁月中神州大地遭遇到前所未有的磨难。战事的失罗布泊复活了,曾经是原子弹试验场,如今却能养活亿万中国人众所周知,位于新疆维吾尔自治区东南部的罗布泊,是有名的死亡之海,这里自从于上世纪七十年代干涸以来,就变得荒无人烟,黄沙一片,不管是天气还是环境都非常恶劣。后来,因为罗布泊荒无人烟,史上9大巅峰对决彻底改变中国命运人生不过百年,可这世间的恩怨纷纷扰扰,从古到今无人能免俗,有的竟能你来我往数十年,真是难解难分,留下了一段又一段精彩的历史故事。no。1黄帝VS蚩尤一个是华夏族的首领,一个是东夷族Shams活塞或将在训练营开启后交易裁掉肯巴沃克直播吧9月26日讯据名记Shams报道,消息人士透露,肯巴沃克可能会在活塞训练营开启后离队。活塞目前的大名单已经满员,他们需要裁掉或交易一名球员才能让名单人数符合联盟规则要求。据活
李立群我不是墙头草,两岸一家亲李立群回台湾了,但是大陆网友对他的关注丝毫没有减少。台湾日月潭他玩抖音是随性而起,想说什么就说,没话说了就再见再见。网友喜欢他的风格,有如邻家大叔般的率直。但是,他回台湾后,随口说网传大衣哥朱之文生病住院,疑因谷传民巨额侵权赔偿近日,有网友公开爆料,并在网络上发布照片。爆料内容称,大衣哥朱之文近期因与导演谷传民,之间的利益纠纷。导致身体出现问题,现身当地某医院,并躺在病床上。照片一经公布,引发网友的持续讨带不动啊!周琦砍双20难救主,中国队要沦为亚洲二流了?中国男篮以一种令人扼腕的方式告别了本届男篮亚洲杯的四强。7月20日晚,中国队在男篮亚洲杯四分之一决赛中以69比72惜败于黎巴嫩队,止步八强。中国队在一度落后16分的情况下奋起直追,中国男篮自己把自己打败了,而不是黎巴嫩有多厉害这场比赛我们输得一点也不冤,因为是自己把自己打没了,而不是对手把我们打没了!我们看这个球,只有周琦和孙铭徽在拼命防守,其他人竟然不跑回来协防,人家第一个没进,知道回来了?是不是在失与前人事经理的较量入职上海嘉定某食品公司三年,在工作上勤勤恳恳,为公司解决了许多疑难问题。并且全年基本无休。入职三年来,找公司加工资,公司总足找各种理由推脱,或画大饼。心烦极了,也准备不在此地干了。微软向部分PC玩家免费发放5款经典游戏IT之家7月20日消息,微软Xbox官方宣布,将向PC平台部分受邀的Xbox预览体验成员免费发放5款最早20多年前的老游戏。这五款游戏分别为HereticShadowoftheSe朱亚文新剧惹争议!演民族英雄却倒卖鸦片,这历史剧还能看吗?要想拍好历史剧,最重要的一点就是真实。只有真实地将那段历史故事还原出来,这样在时代背景以及人物历史上才能够得到强有力的支撑,在播出之后才不会被质疑故事的真假性。同样,在拍摄历史剧的当你打开这款令人上瘾的游戏,就可以跟今天下午说再见了2013年4月,一位名为AntonWalln的瑞典软件工程师在Reddit上发帖,表示自己最近在研究谷歌地图,决定开发一个基于它的小型应用程序。不知道这哥们当时是出于什么目的,但这朱亚文新剧广州十三行未播先火,男主贩卖鸦片却成民族英雄文天策娱乐君朱亚文新剧广州十三行未播先火,男主贩卖鸦片却成民族英雄!广州十三行在十八世纪的中国扮演了非常重要的角色,是清代专做对外贸易的牙行,是清政府指定专营对外贸易的垄断机构。在猖獗的AV产业如何系统性地剥削日本女性日本的AV产业兴起于上世纪80年代,在那之前收到法律和技术限制,色情片只在小范围内流通,通常是在街角隐蔽的小电影院里偷偷放映,比如东京的吉原一带,战前是知名的风月场所,战后与时俱进英年早逝,2018亚运会LOL夺冠功臣辞世,UziMing等选手发博吊唁众所周知,LOL作为一个很大的电竞项目,在这么多年以来的发展之后也迎来了属于自己的春天。如今的LOL已经成为了全球积极关注的一个话题,它不仅仅代表着游戏,更是一项体育运动,是电子竞
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软网