【大数据开发运维解决方案】Linux Solr5.1安装及导入Oracle数据库表数据

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 在solr页面中点击core admin–>add core 增加一个core。和id字段如果不做主键,需要将required="true"去掉。配置文件介绍中已经说了问题的主要原因是schema配置文件中存在。2、取消ID的required=true,修改为指定的字段即可。保存退出,至于为什么这么改,看后面遇到的问题及解决方法。1、将uniqueKey修改为你导入solr的字段。能够正常查询出来数据,简单导入完成。最后结果如上截图及配置。

一、Solr5.1安装

1、官方下载链接

点此下载

2、下载上传压缩包到Linux服务器

[root@hadoop ~]# mkdir -p /hadoop/solr

通过sftp上传压缩包至此目录:

[root@hadoop solr]# ls
 solr-5.1.0.tgz
[root@hadoop solr]# tar -zxvf  solr-5.1.0.tgz
......
[root@hadoop solr]# mv  solr-5.1.0/* .
[root@hadoop solr]# ls
bin  CHANGES.txt  contrib  dist  docs  example  licenses  LICENSE.txt  LUCENE_CHANGES.txt  NOTICE.txt  README.txt  server  solr-5.1.0.tgz

3、接下来创建第一个core

[root@hadoop ~]# cd /hadoop/solr/server/
[root@hadoop server]# ls
contexts  etc  lib  logs  README.txt  resources  scripts  solr  solr-webapp  start.ini  start.jar  webapps
[root@hadoop server]# cd solr
[root@hadoop solr]# mkdir core_one
[root@hadoop solr]# ls
configsets  core_one  README.txt  solr.xml  zoo.cfg
复制一份官方基础配置到core_one下:
[root@hadoop core_one]# cp -r /hadoop/solr/server/solr/configsets/sample_techproducts_configs/conf /hadoop/solr/server/solr/core_one/

4、启动solr

[root@hadoop ~]# cd /hadoop/solr/
[root@hadoop solr]# ./bin/solr start -p 8983

启动后直接访问页面:
http://192.168.1.66:8983/solr/#/
--ip根据自己改
在solr页面中点击core admin-->add core 增加一个core
image.png
增加完毕,就有一个新的core了:
image.png

二、导入Oracle数据

0、要导入的Oracle库表结构:

image.png

1、在core_one目录下新建一个lib文件夹用于存放需要的相关jar包:

[root@hadoop solr]# cd /hadoop/solr/server/solr/core_one/
[root@hadoop core_one]# mkdir lib

将solr-dataimporthandler*包从dist目录复制过来:

[root@hadoop core_one]# cd /hadoop/solr/dist/
[root@hadoop dist]# cp solr-dataimporthandler-* /hadoop/solr/server/solr/core_one/lib/

2将Oracle驱动包从Oracle数据库所在服务器复制过来:

[oracle@source ~]$ cd $ORACLE_HOME
[oracle@source db_1]$ cd jdbc/
[oracle@source jdbc]$ ls
lib  Readme.txt
[oracle@source jdbc]$ cd lib/
[oracle@source lib]$ scp ojdbc6.jar root@192.168.1.66:/hadoop/solr/server/solr/core_one/lib/
root@192.168.1.66's password: 
ojdbc6.jar                                                            100% 2675KB   2.6MB/s   00:00

3、从/hadoop/solr/example/example-DIH/solr/solr/conf复制一份solr-data-config文件到core-one/conf下:

[root@hadoop dist]#  cp /hadoop/solr/example/example-DIH/solr/solr/conf/solr-data-config.xml /hadoop/solr/server/solr/core_one/conf/

4、开始编辑配置文件

先编辑solrconfig.xml文件:

[root@hadoop conf]# cd /hadoop/solr/server/solr/core_one/
[root@hadoop core_one]# vim conf/solrconfig.xml
添加如下代码:
<requestHandler name="/dataimport" class="solr.DataImportHandler">
      <lst name="defaults">
            <str name="config">solr-data-config.xml</str>
      </lst>
</requestHandler>

因为我们要导入oracle库,所以还要在配置文件中添加jar包路径:

 <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
  <lib dir="./lib/" regex="ojdbc6.jar" />

保存退出,接下来修改solr-data-config.xml文件:

[root@hadoop core_one]# vim conf/solr-data-config.xml
覆盖添加内容如下:
<dataConfig>
    <dataSource type="JdbcDataSource" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//192.168.1.6:1521/orcl" user="scott" password="tiger"/>
    <document name="Info" pk="empno">
        <entity name="zpxx" transformer="ClobTransformer" pk="empno" query="SELECT empno, ename from emp">
            <field column="empno" name="empno" />
            <field column="ename" name="ename" />
        </entity>
    </document>
</dataConfig>

保存退出,接下来修改schema.xml文件:

首先将id字段的配置改成下面:
 <field name="id" type="string" indexed="true" stored="true" multiValued="false" />
 其次加入我们需要查询的两个字段:
   <field name="ename" type="string" indexed="true" stored="true" />
   <field name="empno" type="string" indexed="true" stored="true" required="true" multiValued="false" />
然后将
 <uniqueKey>id</uniqueKey>
 改成
  <uniqueKey>empno</uniqueKey>

保存退出,至于为什么这么改,看后面遇到的问题及解决方法。

5、重启solr

cd /hadoop/solr
./bin/solr stop
./bin/solr start -p 8983

6、导入数据

进入solr的管理页面:
image.png
entity部分有我们设置的zpxx了,现在执行execute:
image.png
执行成功后右上角会显示执行的结果,导入完成,现在做查询测试:
image.png
能够正常查询出来数据,简单导入完成。

三、过程中遇到的问题

一开始导入的时候一直hang在那不动,后来通过查看logging页面报错:

org.apache.solr.common.SolrException: Document is missing mandatory uniqueKey field: id
    at org.springframework.data.solr.core.SolrTemplate.execute(SolrTemplate.java:145)
    at org.springframework.data.solr.core.SolrTemplate.saveBean(SolrTemplate.java:184)
    at org.springframework.data.solr.core.SolrTemplate.saveBean(SolrTemplate.java:178)
    at com.hbsi.TestSolrTemplate.testAddList(TestSolrTemplate.java:79)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    。。。。。。

于是翻了下schema.xml的配置文档:

image.png
image.png
配置文件介绍中已经说了问题的主要原因是schema配置文件中存在

  <uniqueKey>id</uniqueKey>

和id字段如果不做主键,需要将required="true"去掉。
所以修改方式为:
1、将uniqueKey修改为你导入solr的字段
2、取消ID的required=true,修改为指定的字段即可
最后结果如上截图及配置。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
2月前
|
安全 Linux iOS开发
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
311 0
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
|
2月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
385 7
|
3月前
|
安全 Linux iOS开发
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
446 0
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
|
Linux 数据库 iOS开发
CrossOver 25.1.0 for macOS & Linux - 领先的 Wine 解决方案
CrossOver 25.1.0 for macOS & Linux - 领先的 Wine 解决方案
246 0
|
3月前
|
人工智能 机器人 Linux
开源的基于RTOnBoot多核异构框架打造的低成本高性能Linux主控加Ethercat主站解决方案,同步周期可稳定达到125微秒
开源的基于RTOnBoot多核异构框架打造的低成本高性能Linux主控加Ethercat主站解决方案,同步周期可稳定达到125微秒
|
7月前
|
Ubuntu 关系型数据库 Linux
Linux数据库安装
本文介绍了在CentOS 8.0和Ubuntu 22.04系统上安装、配置和启动MariaDB数据库服务器的详细步骤。包括通过`yum`和`apt`包管理器安装MariaDB服务,启动并检查服务运行状态,设置root用户密码以及连接数据库的基本操作。此外,还展示了如何在Ubuntu上更新软件包列表、安装依赖项,并验证MariaDB的版本和运行状态。通过这些步骤,用户可以成功部署并初始化MariaDB环境,为后续数据库管理与应用开发奠定基础。
341 61
|
6月前
|
SQL 关系型数据库 MySQL
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
这是一份详细的MySQL安装与配置教程,适合初学者快速上手。内容涵盖从下载到安装的每一步操作,包括选择版本、设置路径、配置端口及密码等。同时提供基础操作指南,如数据库管理、数据表增删改查、用户权限设置等。还介绍了备份恢复、图形化工具使用和性能优化技巧,帮助用户全面掌握MySQL的使用方法。附带常见问题解决方法,保姆级教学让你无忧入门!
1047 21
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
|
7月前
|
存储 安全 Linux
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
170 0
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
|
7月前
|
监控 Java Shell
【YashanDB 知识库】ycm 托管数据库时,数据库非 OM 安装无法托管
本文主要介绍了因数据库未按规范使用 yasboot 安装导致的问题及解决方法。问题表现为无 yasom 和 yasagent 进程,且目录结构缺失,致使 ycm 无法托管与监控。分析发现可能是数据库版本旧或安装不规范引起。解决方法为先生成配置文件,安装 yasom 和 yasagent,再生成并修改托管配置模板,最终通过命令完成托管至 yasom 和 ycm。总结强调了按规范安装数据库的重要性以避免类似问题。