我已经构建并部署了以下docker-compose.yml文件:
services:
solr1:
container_name: solr1
image: solr:5-slim
ports:
- "9981:9983"
- "8981:8983"
volumes:
- data:/var/solr
- ./solr_configs/schema.xml:/opt/solr/server/solr/configsets/mri_config/schema.xml
- ./solr_configs/schema.xml:/opt/solr/server/solr/configsets/mri_config/conf/managed-schema
- ./solr_configs:/opt/solr/server/solr/configsets/mri_config/conf
environment:
- ZK_HOST=zoo1:2181,zoo2:2181,zoo3:2181
networks:
- solr
depends_on:
- zoo1
- zoo2
- zoo3
solr2:
image: solr:5-slim
container_name: solr2
ports:
- "9982:9983"
- "8982:8983"
volumes:
- data:/var/solr
- ./solr_configs/schema.xml:/opt/solr/server/solr/configsets/mri_config/schema.xml
- ./solr_configs/schema.xml:/opt/solr/server/solr/configsets/mri_config/conf/managed-schema
- ./solr_configs:/opt/solr/server/solr/configsets/mri_config/conf
environment:
- ZK_HOST=zoo1:2181,zoo2:2181,zoo3:2181
networks:
- solr
depends_on:
- zoo1
- zoo2
- zoo3
solr3:
image: solr:5-slim
container_name: solr3
ports:
- "9983:9983"
- "8983:8983"
volumes:
- data:/var/solr
- ./solr_configs/schema.xml:/opt/solr/server/solr/configsets/mri_config/schema.xml
- ./solr_configs/schema.xml:/opt/solr/server/solr/configsets/mri_config/conf/managed-schema
- ./solr_configs:/opt/solr/server/solr/configsets/mri_config/conf
environment:
- ZK_HOST=zoo1:2181,zoo2:2181,zoo3:2181
ports:
- 9983:9983
- 8983:8983
networks:
- solr
depends_on:
- zoo1
- zoo2
- zoo3
zoo1:
image: zookeeper:3.4
container_name: zoo1
restart: always
hostname: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
networks:
- solr
zoo2:
image: zookeeper:3.4
container_name: zoo2
restart: always
hostname: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
networks:
- solr
zoo3:
image: zookeeper:3.4
container_name: zoo3
restart: always
hostname: zoo3
ports:
- 2183:2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
networks:
- solr
sdc:
image: streamsets/datacollector
ports:
- 18630:18630
volumes:
- /local/directory/path/streamsets:/data:rw
networks:
- solr
networks:
solr:
volumes:
data:
然后我通过执行创建了一个名为collection1
的Solr集合。docker exec solr1 solr create -c collection1
在Streamsets中转换数据后,我通过从软件包管理器中添加Solr-6.1.0目标模块并随后重新启动sdc docker容器来安装并添加了Solr-6.1.0目标模块。这是我在流集中的SolrCloud设置和单节点设置的设置:
每次运行预览或管道时,都会出现错误,指出:
SOLR_3-无法连接到Solr实例:java.lang.ClassCastException:org.apache.solr.common.util.SimpleOrderedMap无法转换为java.util.Map
此错误是什么意思?我应该更改什么或添加到我的管道中,以便能够连接管道并将数据直接管道传输到Solr集合中?
这里也是该集合的Solr Admin UI state.json的附件图像。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLmltZ3VyLmNvbS9XYXhlWW5pLnBuZyJ9” alt =“ Solr Admin UI”>
SDC堆栈跟踪:
非常感谢您的帮助。
我最终从程序包管理器安装了CDH 5.15.0程序包。这使我们能够连接到Docker容器中的Solr 5.5-slim。然后,在Solr目标模块的常规选项卡中,我们在登台库字段中选择CDH 5.15.0软件包,然后定义单节点信息以允许我们连接到Solr数据库。