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. MySQL基础SQL命令---增删改查

    1.表操作: create table tableName (id int(6) not null primary key auto_increatment,name varchar(10) not ...

  2. cephfs测试中出现的问题

    最近重新对cephfs进行性能测试. 测试步骤: (1) 选取一个特地版本的操作系统内核,挂载20000个客户端; (2) 用iozone中的fileop工具,在每隔挂载点上都跑一个fileop进程; ...

  3. 两个概念:CCA和LDA

    典型相关性分析(CCA) https://blog.csdn.net/Mbx8X9u/article/details/78824216 典型关联分析(Canonical Correlation Ana ...

  4. javascript之DOM(四其他类型)

    一.Text类型 文本节点由Text类型表示,指的是可以以字面意思解释的纯文本内容,其中包含HTML代码. nodeType=3 nodeName=#text nodeValue=文本内容 paren ...

  5. guava布隆过滤器

    pom引入依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava&l ...

  6. eslint的语法配置项

    其实我并不反对这些语法检测,但是像许多反个人意愿的那就真的不得不吐槽了,比如vue-cli脚手架创建的默认eslint规则: 代码末尾不能加分号 ; 代码中不能存在多行空行 tab键不能使用,必须换成 ...

  7. 关于python切片操作笔记

    一. Python可切片对象的索引方式 包括:正索引和负索引两部分,如下图所示,以a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:   python索引方式.jpg 二. P ...

  8. scapy构造数据包

    一.进入scapy交互界面 在终端下输入:scapy ,进入交互界面: 二.查看scapy已经实现的网络协议 ls() 列出scapy中已实现的网络协议 ls(协议类型) 查看某个协议头部字段格式 l ...

  9. VIJOS-P1294 拯救OIBH总部

    洛谷 P1506 拯救oibh总部 洛谷传送门 JDOJ:1405: VIJOS-P1294 拯救OIBH总部 JDOJ传送门 Description OIBH被突来的洪水淹没了> .< ...

  10. 洛谷P1894 [USACO4.2]完美的牛栏The Perfect Stall题解

    题目 二分图最大匹配问题 cow数组标现在牛栏里的牛是几号牛 每次寻找都要清空vis数组 如果可行有两种情况 1.这个牛栏里没有牛 2.这个牛栏里的牛可以到别的牛栏去 根据此递归即可 Code: #i ...