sorl应用开发

要求:

  1. 了解Solr应用开发适用场景
  2. 熟悉Solr应用开发流程
  3. 熟悉并使用Solr常用API
  4. 理解Collection设计基本原则
  5. 应用开发实践

Solr简介

  1. Solr是一个高性能,基于Lucene的全文检索服务,也可以作为NoSQL数据库使用。
  2. Solr对Lucene进行了扩展,提供了比Lucene更为丰富的查询语句,同时实现了可配置、可扩展,并对查询性能进行了优化,还提供了一个完善的功能管理界面。
  3. SolrCloud是从Solr 4.0 版本开始发出的具有开创意义的分布式索引和索引方案,基于Sorl和Zookeeper进行开发的。

Solr概念体系-总述
常见术语:

  • Config Set:Solr Core提供一组配置文件 ,
  • Core:即Solr Core ,
  • Shard:Collection的逻辑分片
  • Replice:Shard下的实际存储索引的一个副本,与Core对应
  • Leader:赢得选举的Shard Peplicas
  • Zookeeper:它在Solr Core是必须的,提供分布式锁、处理Leader选举、管理配置等功能

Solr的常用应用场景

  1. 待检索数据类型复杂
  2. 检索条件多样化(如涉及字段太多),常规查询无法满足
  3. 读取远多于写入数据

Solr应用开发流程-制定业务目标
业务数据规模及数据模型

  • 涉及Collection的Shard划分及Schema的定义

实时索引、查询性能要求

  • 涉及Collection的Shard划分、索引存储位置

查询场景

  • 涉及Collection的Schema定义

Solr应用开发流程-初始化及安全认证

  1. 初始化并获取配置
  2. 安全认证
  3. 获取CloudSolrClient
  4. 调用Solr APL

Solr应用开发流程-设计Collection

  1. 根据业务数据的关系设计schema.xml
  2. 根据写入和查询场景设计uniqueKey字段
  3. 根据写入和查询性能要求设计solrconfig.xml
  4. 根据业务数据规模和Solr集群规模确定Shard数目
  5. 根据可靠性能要求设定Shard副本数

Collection设计-索引存储位置
索引存储在HDFS

缺点:

  1. 与存储在本地磁盘相比,性能下降30%-50%
  2. 实时单节点写入速度<=2MB/s
  3. 数据膨胀略高于存储在本地

优点:

  1. Sorl设置Replica即可,利用HDFS副本机制保障数据可靠性
  2. 数据管理由HDFS完成,包括各节点数据balance、方便迁移

配置集Schema设计-Field
dynamicField

  • 动态的字段设置,用于后期自定义字段,”*“号通配符。

copyField

    • 将多个字段集中到一个字段

FusionInsight大数据开发---sorl应用开发的更多相关文章

  1. FusionInsight大数据开发学习总结(1)

    FusionInsight大数据开发 FusionInsight HD是一个大数据全栈商用平台,支持各种通用大数据应用场景. 技能需求 扎实的编程基础 Java/Scala/python/SQL/sh ...

  2. 大数据全栈式开发语言 – Python

    前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做“Fullstack JavaScript”,是关于用JavaScript进行前端.服务器端,甚至数据库(MongoDB) ...

  3. 为什么说Python 是大数据全栈式开发语言

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...

  4. FusionInsight大数据开发---Hive应用开发

    Hive应用开发 了解Hive的基本架构原理 掌握JDBC客户端开发流程 了解ODBC客户端的开发流程 了解python客户端的开发流程 了解Hcatalog/webHcat开发接口 掌握Hive开发 ...

  5. FusionInsight大数据开发---MapReduce与YARN应用开发

    MapReduce MapReduce的基本定义及过程 搭建开发环境 代码实例及运行程序 MapReduce开发接口介绍 1. MapReduce的基本定义及过程 MapReduce是面向大数据并行处 ...

  6. FusionInsight大数据开发---HDFS应用开发

    HDFS应用开发 HDFS(Dadoop Distributed File System) HDFS概述 高容错性 高吞吐量 大文件存储 HDFS架构包含三部分 Name Node DataNode ...

  7. FusionInsight大数据开发---Redis应用开发

    Redis应用开发 要求: 了解Redis应用场景 掌握Redis二次开发环境搭建 掌握Redis业务开发 Redis简介 Redis是一个基于网络的,高性能key-value内存数据库 Redis根 ...

  8. 一文总结高并发大数据量下MySQL开发规范【军规】

    在互联网公司中,MySQL是使用最多的数据库,那么在并发量大.数据量大的互联网业务中,如果高效的使用MySQL才能保证服务的稳定呢?根据本人多年运维管理经验的总结,梳理了一些核心的开发规范,希望能给大 ...

  9. FusionInsight大数据开发--HBase应用开发

    HBase应用开发 HBase的定义 HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统. 适合于存储大表数据,可以达到实时级别. 利用Hadoop HDFS 作为其文件存储系统,提供实时 ...

随机推荐

  1. 完整且易读的最新版小程序登录态和检验注册过没的app.js写法

    目录 0.可参考的官方页面 1.流程 2.app.js代码 3.java后台怎么通过code获取openId 0.可参考的官方页面 获取登录凭证:https://developers.weixin.q ...

  2. 简单mvc---模拟Springmvc

    1.注解篇 Auwowrited package org.aaron.mvc.annaotation; import java.lang.annotation.Documented; import j ...

  3. MySQL5.7 安装和配置环境变量

    安装 1.下载安装包 官网地址:https://dev.mysql.com/downloads/mysql/ 2.选择 Custom,自定义 3.根据自己系统选择 x64还是x86,然后点击第一个箭头 ...

  4. nmap指令

    -sP  主机发现    -p  端口扫描(可区域)  -sV  端口(服务版本信息)-O  操作系统-iL  使用列表里的IP.(快捷方便)-iR  对公网上的随机n个IP.--excludeile ...

  5. 设置 Jupyter notebook 工作空间 / 默认路径

    常用的启动 Jupyter notebook 的两种方式是:命令行窗口启动和开始菜单启动.设置 Jupyter notebook 的默认路径也有两种常用方式: 修改配置文件 设置快捷方式. 1 通过修 ...

  6. MicroK8s及KubeFlow安装文档

    安装简单的k8s大约有三种思路:minikube,microk8s,kubeadm.minikube 虽然是官方出品,但主要还是基于虚拟机做的设计.在 Linux 生产环境下,microk8s 可能是 ...

  7. JS里==和===区别

    面试常问的一个基础问题 == 和 ===区别是什么? 这里简单描述下 "==="叫做严格运算符,"=="叫做相等运算符 而且 == 会对数据做隐式转换,而=== ...

  8. LCD编程框架组织

    看下面的代码,你会发现韦老师这种组织与内核框架的组织是一脉相承的. led.c #define LCD_NUM 10 static p_lcd_params p_array_lcd[LCD_NUM]; ...

  9. Python 模块A

    模块的四种形式 自定义模块,例如自己定义的common.py就叫common模块 内置模块:python解释器自带的,不需要安装 第三方模块:需要自己安装,13万个库,无所不能,写库(弄得更简单) 包 ...

  10. org.springframework.beans.NotWritablePropertyException:Bean property 'xxxService' is not writable or has an invalid setter method.

    完整报错提示信息:Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'blogDe ...