学习笔记:从0开始学习大数据-28. solr存储数据在hdfs并从mysql导入数据

环境 centos7  hadoop2.6.0  solr-7.5.0

一、创建hdfs为存储的core

1.在hdfs创建索引数据目录
[root@centos7 bin]# hadoop fs -mkdir /user/solr/
[root@centos7 bin]# hadoop fs -chown linbin /user/solr

2. 创建core目录
mkdir solr-7.5.0/server/solr/hdfscore
cp -rf solr-7.5.0/example/files/conf  solr-7.5.0/server/solr/hdfscore

3. 修改文件 hdfscore/conf/solfconfig.xml
设置数据目录 注释原来的目录指定

  <!--  <directoryFactory name="DirectoryFactory"
                    class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
  -->
<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory">
  <str name="solr.hdfs.home">hdfs://centos7:8020/user/solr</str>
  <bool name="solr.hdfs.blockcache.enabled">true</bool>
  <int name="solr.hdfs.blockcache.slab.count">1</int>
  <bool name="solr.hdfs.blockcache.direct.memory.allocation">true</bool>
  <int name="solr.hdfs.blockcache.blocksperbank">16384</int>
  <int name="solr.hdfs.nrtcachingdirectory.maxcachedmb">192</int>
</directoryFactory>

找到 :

<lockType>${solr.lock.type:native}</lockType>

修改为:

<lockType>${solr.lock.type:hdfs}</lockType>

4.启动solr服务,并在web界面创建新的“Add Core”  名为 "hdfscore"

5. 可以看见按预期创建了hdfscore

二. 从mysql导入数据

1.在mysql创建需要导入的样例数据

2.相关驱动程序查找并复制到lib目录

mkdir  solr-7.5.0/server/solr/hdfscore/lib

3.修改配置文件,共三个 solrconfig.xml,   data-import.xml, managed-schema.xml,其中 data-config.xml是新建文件

(1) solrconfig.xml 后面增加

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
<lst name="defaults"> 
<str name="config">data-config.xml</str> 
</lst> 
</requestHandler>

(2)  data-config.xml 内容

<?xml  version="1.0"  encoding="UTF-8"?> 
<dataConfig> 
<dataSource type="JdbcDataSource"
    driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/test"
    user="root"
    password="123"/>
<document> 
<entity   name="product"  query="select pid,name,catalog_name,price,descrition,picture from products"> 
 <field column="pid" name="id"/> 
 <field column="name" name="product_name"/> 
 <field column="catalog_name" name="product_catalog_name"/> 
 <field column="price" name="product_price"/> 
 <field column="descrition" name="product_descrition"/> 
 <field column="picture" name="product_picture"/> </entity> 
</document> 
</dataConfig>

(3)  managed-schema.xml 增加

<field name="product_name" type="string" indexed="true" stored="true" /> 
<field name="product_catalog_name" type="string" indexed="true" stored="true" /> 
<field name="product_price" type="string" indexed="true" stored="true" /> 
<field name="product_descrition" type="string" indexed="true" stored="true" /> 
<field name="product_picture" type="string" indexed="true" stored="true" /> 

4. 重新启动solr执行导入数据

bin/solr stop

bin/solr/start

6.测试执行检索

7. 浏览器直接检索也可以: http://centos7:8983/solr/hdfscore/select?q=*:*

9. 在hadoop hdfs目录可以看到创建的索引文件

猜你喜欢

转载自blog.csdn.net/oLinBSoft/article/details/85001650