以前的环境是单独下载的CDH组件包搭建的集群,可是由于hadoop版本太低致使漏洞没法修复,从新搭建高版本集群环境。java
新集群环境:shell
主要组件:hadoop,hbase,zookeeper,Key-Value Store Indexervim
1.建立hbase表:oop
hbase shell create 'users', { NAME => 'info', REPLICATION_SCOPE => '1' }
2.使用CDH建立solr集合并修改配置:ui
1)建立solr实体配置文件本地目录,tsolr会自动建立 # solrctl instancedir --generate /opt/tsolr 建立后会在tsolr目录下生成一个conf文件夹,里面是相关配置文件。 2)编辑conf文件夹里的managed-schema文件,hbase表中须要索引的列对应managed-schema的filed节点 例: <field name="firstname_s" type="string" indexed="true" stored="true" required="false" multiValued="false" /> <field name="lastname_s" type="string" indexed="true" stored="true" required="false" multiValued="false" /> <field name="age_i" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 注意:conf中的solrConfig.xml能够设置提交方式。设置方式参考:https://blog.csdn.net/qq_40570699/article/details/100560066 3)建立collection实例并配置文件上传到zookeeper # solrctl instancedir --create tsolr /opt/tsolr 注意:以前若是有建立过,须要先删除再建立,或者覆盖更新 (# solrctl instancedir --update tsolr /opt/tsolr) 4)上传到zookeeper以后,其余节点就能够从zookeeper下载配置文件。接着建立collection # solrctl collection --create tsolr -s 15 -r 2 -m 50 (红色参数表示s表示设置Shard数为15,-r表示设置的replica数为2,-m表示最大shards数目,collection名称是tsolr!)
3.建立indexer模板,而且执行indexer任务:.net
1.编辑 vim /opt/tsolr/users.xml <?xml version="1.0"?> <indexer table="indexdemo-user"> <field name="firstname_s" value="info:firstname"/> <field name="lastname_s" value="info:lastname"/> <field name="age_i" value="info:age" type="int"/> </indexer> 2.执行hbase-indexer cd /opt/cloudera/parcels/CDH-6.0.0-xxxxx/bin ../hbase-indexer add-indexer -n myindexer -c demo/user_indexer.xml -cp solr.zk=flzxldyjdata1:2181,flzxldyjdata2:2181,flzxldyjdata3:2181,flzxldyjdata4:2181,flzxldyjdata5:2181/solr -cp solr.collection=collection1