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. 0,'0','\0',NULL的区别

    0,'0','\0',NULL的区别 1,0是一个值,可以是char ,int ,float,double等类型: 2,'0'是一个字符(char)类型,它的ASCII码值是48: 3,'\0'也是一 ...

  2. 使用docker搭建redis-cluster环境

    目录 基础环境信息 搭建步骤 搭建中遇到的问题 其他参考     临时接到一个测试任务,而测试需要用到redis-cluster环境,却没有现成的环境可用,于是只能自力更生搭建测试环境.一开始想采用在 ...

  3. Matplotlib 绘制定制的直方图

    1.普通风格 代码 import numpy as np import matplotlib.pyplot as plt rng = np.random.RandomState(27) x = rng ...

  4. VS2013 EF6连接MySQL步骤

    1.安装MySql的VS插件(版本请下载最新版)mysql-for-visualstudio-1.2.3.msihttp://cdn.mysql.com/Downloads/MySQL-for-Vis ...

  5. @TableName(mybatis-plus中的注解)

    @TableName 描述:表名注解 属性 类型 必须指定 默认值 描述 value String 否 "" 表名 schema String 否 "" sch ...

  6. Java多线程编程核心技术-第7章-拾遗增补-读书笔记

    第 7 章 拾遗增补 本章主要内容 线程组的使用. 如何切换线程状态. SimpleDataFormat 类与多线程的解决办法. 如何处理线程的异常. 7.1 线程的状态 线程对象在不同的运行时期有不 ...

  7. 201671010449 杨天超 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 1.掌握软件评审流程及内容 2.个人总结 实验一问题解答 实验一问题链接:https://ww ...

  8. python语言(七)面向对象、异常处理

    一.异常处理 python解释器检测到错误,触发异常(也允许程序员自己触发异常).程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关).如果捕捉成功则进入另外一个处理分 ...

  9. Numpy | 23 文件读写

    Numpy 可以读写磁盘上的文本数据或二进制数据. NumPy 为 ndarray 对象引入了一个简单的文件格式:npy. npy 文件用于存储重建 ndarray 所需的数据.图形.dtype 和其 ...

  10. 8259A的初始化(多片)

    1.主从式8259A的初始化设置: 初始化设置如下: (1)中断触发方式:边沿触发 (2)中断屏蔽方式:常规屏蔽方式,即使用OCW1向IMR写屏码 (3)中断优先级排队方式:固定优先级的完全嵌套方式 ...