### hbase+solr创建二级索引完整操作 #### 一、概述 本文档详细介绍了如何利用HBase和Solr创建二级索引的过程。通过整合HBase与Solr的优势,可以构建高性能的数据存储与检索系统。HBase作为分布式列族数据库,能够处理海量数据,并提供快速随机读写能力。而Solr则是一款开源搜索平台,擅长全文检索及高级查询功能。结合这两者可以实现高效的数据管理和灵活的查询服务。 #### 二、环境准备与配置 1. **启动HBase表** - 对于新创建的表,可以通过`create 'table',{NAME=>'f1',REPLICATION_SCOPE=>1}`来指定启用或禁用复制功能。 - 对于已存在的表,可以通过`disable 'hcc_score'`、`alter 'hcc_score',{NAME=>'f1',REPLICATION_SCOPE=>1}`以及`enable 'hcc_score'`来调整配置。 2. **生成实体配置文件** - 使用`solrctlinstancedir --generate $HOME/hbase-indexer/hcc_score`生成配置文件。 3. **配置schema.xml** - 在`conf/schema.xml`中定义动态域。动态域是一种灵活性极高的字段类型,其名称由特定表达式组成,如`aa_i`、`bb_i`等,只要满足定义的规则即可使用。 - `name`: 域名(例如`*_i`)。 - `type`: 域的类型(例如`string`)。 - `indexed`: 是否索引。 - `stored`: 是否存储实际数据。 - `required`: 是否必填。 - `multiValued`: 是否支持多值。 4. **修改solrconfig.xml** - 配置`solrconfig.xml`文件,主要调整软提交(Soft Commit)和硬提交(Hard Commit)的参数。软提交关乎数据的实时可见性,而硬提交关乎数据的持久化。 5. **创建collection实例并上传配置文件** - 使用命令`solrctl --zk zkip01,zkip02,zkip03:2181/solr instancedir --create hcc_score $HOME/hbase-indexer/hcc_score`创建collection实例并将配置文件上传至Zookeeper。 - 如果需要数据分散存储和检索,可通过命令指定Shard数、Replica数和单节点最大Shard数目,例如`-s 11 -r 3 -m 10`。 6. **创建映射文件** - 创建`morphline-hbase-mapper.xml`文件,用于定义Lilykvstore与HBase表之间的映射关系,从而实现索引数据的自动维护。 7. **维护morphlines.conf** - 修改CM界面中的`morphlines.conf`文件,定义Solr中的索引字段与HBase字段之间的映射关系。 8. **注册LilyHBaseIndexerService** - 将LilyHBaseIndexer配置XML文件上传至ZooKeeper,实现索引器的注册。 9. **验证实时可见性** - 验证索引的实时可见性,确保在HBase中新增、更新或删除的数据能够在15秒内在Solr中可见。 #### 三、数据操作 1. **增加数据** - 向HBase表添加数据后,索引会自动更新。 2. **更新数据** - 更新HBase中的数据时,Solr中的索引也会相应更新。 3. **删除数据** - 删除HBase中的数据时,Solr中的索引会被同步删除。 #### 四、管理命令 1. **列出配置目录列表** - 查看所有配置目录。 2. **列出collection列表** - 显示当前存在的所有collection。 3. **更新coolection配置** - 修改现有collection的配置。 4. **删除instancedir** - 删除指定的instancedir。 5. **删除collection** - 删除指定的collection。 6. **删除collection所有doc** - 清空某个collection中的所有文档。 7. **删除User配置目录** - 删除用户自定义的配置目录。 8. **更新索引器** - 若修改了`morphline-hbase-mapper.xml`文件,需要更新索引器。 9. **删除索引** - 移除指定的索引。 10. **打印同步历史索引数据时的详细日志** - 创建`log4j.properties`文件并指定日志级别,通过命令行指定`--log4j`参数以输出详细日志。 11. **收集application log** - 收集与索引操作相关的日志信息。 #### 五、注意事项 - 在执行上述操作之前,请确保集群中的Zookeeper IP地址已被替换为您自己的集群IP地址。 - 在修改配置文件前做好备份工作,以防配置出错导致的数据丢失。 - 调整Shard数、Replica数时需考虑集群规模及性能需求,避免资源浪费或不足。 - 实验过程中建议在测试环境中先行尝试,确认无误后再应用到生产环境。 通过以上步骤,您可以成功地在HBase与Solr之间创建二级索引,提升数据检索效率,实现更高效的查询体验。
- 粉丝: 8
- 资源: 28
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MPU9250 九轴 EKF扩展卡尔曼滤波数据融合算法 短时间内我们相信陀螺仪,长时间内我们可以相信加速度计 使用扩展卡尔曼滤波(EKF)将数据融合 选取状态量为四元数和三轴陀螺仪的漂移
- MFC如何修改多文档视图的标签
- PFT100资料(1).zip
- 土地出让数据集(2000-2022.12)(104.8W+ 记录,48特征)CSV
- 国特程序,有单部六层,3部十层,两款6部十层程序 跑分如图,wincc组态完全按照今年要求
- 2_代码合集(3)(1).zip
- 排序算法中插入排序C++实现及其特性
- logd/logcat源码
- linux常用命令大全.txt
- linux常用命令大全.txt
- linux常用命令大全.txt
- mysql和sqlserver语法有什么区别.txt
- C++小游戏超大合集!!
- 生理响应受背包负载影响的实验室协议研究综述
- 一个基于递归下降解析算法的C++程序
- 【紫金天风期货-2024研报】苯乙烯周报:近端矛盾不大.pdf