Sql 如何将Presto连接到Mongodb容器
问题:无法将presto容器连接到mongodb容器。 我有三个正在运行的容器:Sql 如何将Presto连接到Mongodb容器,sql,mongodb,containers,presto,Sql,Mongodb,Containers,Presto,问题:无法将presto容器连接到mongodb容器。 我有三个正在运行的容器: [root@localhost tmp]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8f6686547c55 mongo
[root@localhost tmp]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8f6686547c55 mongo "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:27017->27017/tcp tmp_mongo_1
0b639ef12c12 mongo-express "tini -- /docker-ent…" 6 minutes ago Up 6 minutes 0.0.0.0:8081->8081/tcp tmp_mongo-express_1
c51178e29a3e prestosql/presto "/usr/lib/presto/bin…" 4 days ago Up About an hour 0.0.0.0:8080->8080/tcp presto
presto容器可以访问mongo db(网络方面):
还配置了Presto属性(/usr/lib/Presto/default/etc/catalog/mongodb.properties):
“liran”集合存在:
尝试访问mongo的“liran”收藏时:
presto> SELECT COUNT(*) FROM mongodb.local.liran;
Query 20191216_154753_00000_sz73z failed: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=mongo:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='root', source='liran', password=<hidden>, mechanismProperties={}}}, caused by {com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server mongo:27017. The full response is { "ok" : 0.0, "errmsg" : "Authentication failed.", "code" : 18, "codeName" : "AuthenticationFailed" }}}]
更改mongodb.credentials=根目录:example@local只是用local而不是liran给出了相同的错误
最后一件事,当我运行mongo容器时,我使用了以下stack.yml:
[root@localhost tmp]# cat stack.yml
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
net.tls.mode: disabled
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
正在使用的码头工人:
,我们需要将“身份验证数据库”放在@之后,如下所示。docker映像中的默认名称为“admin”
有两个问题:
presto>从mongodb.admin.liran中选择COUNT(*) _可乐 29353 (1排) 查询20191219_125214_00000_6983x,已完成,1个节点 拆分:共18项,完成18项(100.00%)
0:02[29.4K行,681B][17.8K行/秒,411B/s]谢谢。现在“liran”集合在admin db下,但我得到了这个错误:presto>SELECT COUNT(*)FROM mongodb.admin.liran;查询20191218_155830_00007_us7wh失败:com.mongodb.MongoTimeoutException:等待连接时在30000毫秒后超时。群集状态的客户端视图为{type=UNKNOWN,servers=[{address=25a1ed6ef906:27017,type=UNKNOWN,state=CONNECTING,exception={com.mongodb.MongoSocketWriteException:exception sending message},由{javax.net.ssl.SSLHandshakeException:remotehost终止握手}引起,由{java.io.eofeexception:ssl peer关闭不正确}引起]与mongo相同,容器名称为:presto>SELECT COUNT(),来自mongodb.admin.liran;查询20191218_161403_00003_fh2vp失败:com.mongodb.MongoTimeoutException:等待连接时在30000毫秒后超时。群集状态的客户端视图为{type=UNKNOWN,服务器=[{address=**mongo**:27017,type=UNKNOWN,state=CONNECTING,exception={com.mongodb.MongoSocketWriteException:exception sending message},由{javax.net.ssl.SSLHandshakeException:Remote host终止握手}引起,由{java.io.eofeexception:ssl peer shutdown错误关闭}引起]你能确认Presto和MongoDB之间的网络连接吗?另外,我想邀请你加入我们的社区Slack(),这样我们就可以进行交互对话了。当然。两种方法都有效。1)[root@c51178e29a3e/]#ping-一个mongo ping mongo(172.21.0.3)56(84)字节的数据。docker_mongo_1.docker_默认值(172.21.0.3)中的64字节:icmp_seq=1 ttl=64时间=0.125毫秒2)[root@c51178e29a3e/]#ping-a 25a1ed6ef906 ping 25a1ed6ef906(172.21.0.3)56(84)字节数据。来自docker_mongo_1.docker_默认值(172.21.0.3)的64字节:icmp_seq=1 ttl=64 time=0.125毫秒相同docker网络下的两个容器(“名称”:“docker_默认值”)。这看起来更像是TLS问题。我将加入Slack。
presto> SELECT COUNT(*) FROM mongodb.local.liran;
Query 20191216_154753_00000_sz73z failed: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=mongo:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='root', source='liran', password=<hidden>, mechanismProperties={}}}, caused by {com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server mongo:27017. The full response is { "ok" : 0.0, "errmsg" : "Authentication failed.", "code" : 18, "codeName" : "AuthenticationFailed" }}}]
mongo_1 | 2019-12-16T15:51:00.795+0000 I NETWORK [conn322] end connection 172.20.0.4:34810 (4 connections now open)
mongo_1 | 2019-12-16T15:51:10.796+0000 I NETWORK [listener] connection accepted from 172.20.0.4:34812 #323 (5 connections now open)
mongo_1 | 2019-12-16T15:51:10.796+0000 I NETWORK [conn323] received client metadata from 172.20.0.4:34812 conn323: { driver: { name: "mongo-java-driver", version: "3.6.0" }, os: { type: "Linux", name: "Linux", architecture: "amd64", version: "3.10.0-862.11.6.el7.x86_64" }, platform: "Java/Oracle Corporation/11.0.4+11-LTS" }
mongo_1 | 2019-12-16T15:51:10.798+0000 I ACCESS [conn323] SASL SCRAM-SHA-1 authentication failed for root on liran from client 172.20.0.4:34812 ; UserNotFound: Could not find user "root" for db "liran"
mongo_1 | 2019-12-16T15:51:10.799+0000 I NETWORK [conn323] end connection 172.20.0.4:34812 (4 connections now open)
mongo_1 | 2019-12-16T15:51:20.800+0000 I NETWORK [listener] connection accepted from 172.20.0.4:34818 #324 (5 connections now open)
mongo_1 | 2019-12-16T15:51:20.801+0000 I NETWORK [conn324] received client metadata from 172.20.0.4:34818 conn324: { driver: { name: "mongo-java-driver", version: "3.6.0" }, os: { type: "Linux", name: "Linux", architecture: "amd64", version: "3.10.0-862.11.6.el7.x86_64" }, platform: "Java/Oracle Corporation/11.0.4+11-LTS" }
mongo_1 | 2019-12-16T15:51:20.803+0000 I ACCESS [conn324] SASL SCRAM-SHA-1 authentication failed for root on liran from client 172.20.0.4:34818 ; UserNotFound: Could not find user "root" for db "liran"
mongo_1 | 2019-12-16T15:51:20.804+0000 I NETWORK [conn324] end connection 172.20.0.4:34818 (4 connections now open)
mongo_1 | 2019-12-16T15:51:30.806+0000 I NETWORK [listener] connection accepted from 172.20.0.4:34820 #325 (5 connections now open)
mongo_1 | 2019-12-16T15:51:30.807+0000 I NETWORK [conn325] received client metadata from 172.20.0.4:34820 conn325: { driver: { name: "mongo-java-driver", version: "3.6.0" }, os: { type: "Linux", name: "Linux", architecture: "amd64", version: "3.10.0-862.11.6.el7.x86_64" }, platform: "Java/Oracle Corporation/11.0.4+11-LTS" }
mongo_1 | 2019-12-16T15:51:30.809+0000 I ACCESS [conn325] SASL SCRAM-SHA-1 authentication failed for root on liran from client 172.20.0.4:34820 ; UserNotFound: Could not find user "root" for db "liran"
mongo_1 | 2019-12-16T15:51:30.810+0000 I NETWORK [conn325] end connection 172.20.0.4:34820 (4 connections now open)
mongo_1 | 2019-12-16T15:51:40.811+0000 I NETWORK [listener] connection accepted from 172.20.0.4:34822 #326 (5 connections now open)
mongo_1 | 2019-12-16T15:51:40.812+0000 I NETWORK [conn326] received client metadata from 172.20.0.4:34822 conn326: { driver: { name: "mongo-java-driver", version: "3.6.0" }, os: { type: "Linux", name: "Linux", architecture: "amd64", version: "3.10.0-862.11.6.el7.x86_64" }, platform: "Java/Oracle Corporation/11.0.4+11-LTS" }
mongo_1 | 2019-12-16T15:51:40.814+0000 I ACCESS [conn326] SASL SCRAM-SHA-1 authentication failed for root on liran from client 172.20.0.4:34822 ; UserNotFound: Could not find user "root" for db "liran"
[root@localhost tmp]# cat stack.yml
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
net.tls.mode: disabled
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
connector.name=mongodb
mongodb.seeds=mongo:27017
mongodb.credentials=root:example@admin