GVKun编程网logo

php – MongoConnectionException – 找不到候选服务器(mongoimport 没找到)

8

最近很多小伙伴都在问php–MongoConnectionException–找不到候选服务器和mongoimport没找到这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展.con

最近很多小伙伴都在问php – MongoConnectionException – 找不到候选服务器mongoimport 没找到这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展.conn.ManagedClientConnectionImpl@604ed9f0 java.net.ConnectException: Connection refused: connect、:10000/hive: java.net.ConnectException: Connection refused: connect、Azure Cosmos DB - 间歇性 MongoConnectionException / IOException / SocketException、Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解决方案等相关知识,下面开始了哦!

本文目录一览:

php – MongoConnectionException – 找不到候选服务器(mongoimport 没找到)

php – MongoConnectionException – 找不到候选服务器(mongoimport 没找到)

我正在使用MongoDB复制集开发一个 PHP Web应用程序来存储我的数据.我偶尔会收到以下错误:

Fatal error: Uncaught exception ‘MongoConnectionException’ with message ‘No candidate servers found’

我有一个3成员Mongo副本集与1仲裁

rs0:PRIMARY> rs.status()
{
    "set" : "rs0","date" : ISODate("2013-01-30T01:04:04Z"),"myState" : 1,"members" : [
        {
            "_id" : 0,"name" : "JenEricsMacPro.local:27017","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 844478,"optime" : Timestamp(1359507378000,1),"optimeDate" : ISODate("2013-01-30T00:56:18Z"),"self" : true
        },{
            "_id" : 1,"name" : "ericsmacbookpro.local:27017","state" : 2,"stateStr" : "SECONDARY","uptime" : 10720,"lastHeartbeat" : ISODate("2013-01-30T01:04:04Z"),"pingMs" : 3
        },{
            "_id" : 2,"name" : "ericsmacbookair.local:27017","state" : 7,"stateStr" : "ARBITER","uptime" : 1206,"lastHeartbeat" : ISODate("2013-01-30T01:04:03Z"),"pingMs" : 4
        },{
            "_id" : 3,"name" : "ericsmacxps.local:27017","uptime" : 75204,"pingMs" : 1
        }
    ],"ok" : 1
}

下面是我偶尔会收到此错误的代码示例.

$mongoConfig = array (
    'uri' => 'mongodb://JenEricsMacPro.local:27017,ericsmacbookpro.local:27017,ericsmacxps.local:27017/','database' => 'myDatabase','replicasetArray' => array('replicaset' => 'rs0'));

$connection = new MongoClient(
    $mongoConfig['uri'],$mongoConfig['replicasetArray']);

$connection->setReadPreference(MongoClient::RP_SECONDARY_PREFERRED);

$db = $connection->selectDB($mongoConfig['database']);

任何人都知道可能导致“找不到候选服务器”的消息或者我如何确定问题根源的任何建议?

我的所有mongo.conf文件都使用每台服务器的静态IP,没有防火墙和DNS似乎正在正确解析到我网络上的.local域.

编辑:我在实例化MongoClient之前添加了Derick建议的日志记录.

error_reporting (E_NOTICE);

MonGolog::setModule( MonGolog::ALL );
MonGolog::setLevel( MonGolog::ALL );

启用日志记录后,我收到了以下通知.

Notice: PARSE INFO: Parsing mongodb://JenEricsMacPro.local:27017,ericsmacxps.local:27017/ in MonGologic.PHP on line 27
Notice: PARSE INFO: - Found node: JenEricsMacPro.local:27017 in MonGologic.PHP on line 27
Notice: PARSE INFO: - Found node: ericsmacbookpro.local:27017 in MonGologic.PHP on line 27
Notice: PARSE INFO: - Found node: ericsmacxps.local:27017 in MonGologic.PHP on line 27
Notice: PARSE INFO: - Connection type: MULTIPLE in MonGologic.PHP on line 27
Notice: PARSE INFO: - Found option 'replicaset': 'rs0' in MonGologic.PHP on line 27
Notice: PARSE INFO: - Switching connection type: REPLSET in MonGologic.PHP on line 27
Notice: CON INFO: mongo_get_read_write_connection: finding a REPLSET connection (read) in MonGologic.PHP on line 27
Notice: CON FINE: found connection JenEricsMacPro.local:27017;rs0;X;297 (looking for JenEricsMacPro.local:27017;rs0;X;297) in MonGologic.PHP on line 27
Notice: CON INFO: is_ping: pinging JenEricsMacPro.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON FINE: mongo_connection_destroy: Closing socket for JenEricsMacPro.local:27017;rs0;X;297. in MonGologic.PHP on line 27
Notice: CON INFO: freeing connection JenEricsMacPro.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON WARN: Couldn't connect to 'JenEricsMacPro.local:27017': send_package: error reading from socket: Operation timed out in MonGologic.PHP on line 27
Notice: CON FINE: found connection ericsmacbookpro.local:27017;rs0;X;297 (looking for ericsmacbookpro.local:27017;rs0;X;297) in MonGologic.PHP on line 27
Notice: CON INFO: is_ping: pinging ericsmacbookpro.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON FINE: mongo_connection_destroy: Closing socket for ericsmacbookpro.local:27017;rs0;X;297. in MonGologic.PHP on line 27
Notice: CON INFO: freeing connection ericsmacbookpro.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON WARN: Couldn't connect to 'ericsmacbookpro.local:27017': send_package: error reading from socket: Operation timed out in MonGologic.PHP on line 27
Notice: CON FINE: found connection ericsmacxps.local:27017;rs0;X;297 (looking for ericsmacxps.local:27017;rs0;X;297) in MonGologic.PHP on line 27
Notice: CON INFO: is_ping: pinging ericsmacxps.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON FINE: mongo_connection_destroy: Closing socket for ericsmacxps.local:27017;rs0;X;297. in MonGologic.PHP on line 27
Notice: CON INFO: freeing connection ericsmacxps.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON WARN: Couldn't connect to 'ericsmacxps.local:27017': send_package: error reading from socket: Operation timed out in MonGologic.PHP on line 27
Notice: CON FINE: discover_topology: checking ismaster for JenEricsMacPro.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON WARN: discover_topology: Couldn't create a connection for JenEricsMacPro.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON FINE: discover_topology: checking ismaster for ericsmacbookpro.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON WARN: discover_topology: Couldn't create a connection for ericsmacbookpro.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON FINE: discover_topology: checking ismaster for ericsmacxps.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: CON WARN: discover_topology: Couldn't create a connection for ericsmacxps.local:27017;rs0;X;297 in MonGologic.PHP on line 27
Notice: REPLSET FINE: finding candidate servers in MonGologic.PHP on line 27
Notice: REPLSET FINE: - all servers in MonGologic.PHP on line 27
Notice: REPLSET FINE: filter_connections: adding connections: in MonGologic.PHP on line 27
Notice: REPLSET FINE: filter_connections: done in MonGologic.PHP on line 27
Notice: REPLSET FINE: limiting to servers with same replicaset name in MonGologic.PHP on line 27
Notice: REPLSET FINE: limiting to servers with same replicaset name: done in MonGologic.PHP on line 27
Notice: REPLSET FINE: limiting by credentials in MonGologic.PHP on line 27
Notice: REPLSET FINE: limiting by credentials: done in MonGologic.PHP on line 27
我建议你添加日志记录以了解发生了什么. Mongo驱动程序(自1.3版本起)提供了大量日志记录来调试连接问题.在 http://derickrethans.nl/mongodb-debugging.html有一篇文章解释如何打开它.如果从日志信息中不清楚会发生什么,请使用日志更新您的问题,以便我可以更新我的答案.

从发布的日志中我可以看到您的客户端无法连接到您的连接字符串中的任何种子.如果您的机器/客户端无法连接,您当然无法与MongoDB通信.在这种情况下,可能有几种可能性:

>驱动程序无法将名称转换为IP地址.在这种情况下,您需要修复DNS设置,或将所有主机添加到/ etc / hosts>你真的无法连接到它们,这可能是防火墙.>在1.2系列驱动程序中存在一些问题,所以如果你还没有使用1.3.4或更高版本,我建议你升级.这应该是一个更顺畅的经历.>请记住,为了能够编写,您需要大多数节点.如果您没有,那么您将收到“无候选服务器”错误.

.conn.ManagedClientConnectionImpl@604ed9f0 java.net.ConnectException: Connection refused: connect

.conn.ManagedClientConnectionImpl@604ed9f0 java.net.ConnectException: Connection refused: connect

DEBUG 2016-11-07 14:32:47,518  Get connection for route {}->http://127.0.0.1:8087->http://rdsearch.zhaopin.com:80
DEBUG 2016-11-07 14:32:47,519  Connecting to 127.0.0.1:8087
DEBUG 2016-11-07 14:32:48,530  Connection org.apache.http.impl.conn.DefaultClientConnection@91161c7 closed
DEBUG 2016-11-07 14:32:48,531  Connection org.apache.http.impl.conn.DefaultClientConnection@91161c7 shut down
DEBUG 2016-11-07 14:32:48,532  Releasing connection org.apache.http.impl.conn.ManagedClientConnectionImpl@604ed9f0
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)

:10000/hive: java.net.ConnectException: Connection refused: connect

:10000/hive: java.net.ConnectException: Connection refused: connect

java.sql.SQLException: Could not establish connection to 192.168.2.100:10000/hive: java.net.ConnectException: Connection refused: connect
at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:116)
at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at cn.itcas.hive.udf.HiveJdbcClient2.main(HiveJdbcClient2.java:23)
15/09/15 10:52:18 ERROR udf.HiveJdbcClient: Connection error!

Azure Cosmos DB - 间歇性 MongoConnectionException / IOException / SocketException

Azure Cosmos DB - 间歇性 MongoConnectionException / IOException / SocketException

如何解决Azure Cosmos DB - 间歇性 MongoConnectionException / IOException / SocketException?

我将 Azure Cosmos DB 4.0 与 MongoDB C# 驱动程序 2.10.4 结合使用。

大多数时候查询工作正常,但我遇到了这样的间歇性错误:

MongoDB.Driver.MongoConnectionException:向服务器发送消息时发生异常。 System.IO.IOException:无法将数据写入传输连接:远程主机强行关闭了现有连接。 System.Net.sockets.socketException: 一个现有的连接被远程主机强行关闭 在 System.Net.sockets.socket.BeginSend(... 在 System.Net.sockets.NetworkStream.BeginWrite --- 内部异常堆栈跟踪结束 --- 在 System.Net.sockets.NetworkStream.BeginWrite 在 System.Net.Security._SslStream.StartWriting 在 System.Net.Security._SslStream.ProcessWrite 在 System.Net.Security._SslStream.BeginWrite

发生该错误时,调用需要 10-25 秒才能失败。

我正在使用 @H_301_9@new MongoClient(MongoClientSettings.FromConnectionString(cnstr)) 构建 MongoClient,并且我使用的是带有这些参数 @H_301_9@?ssl=true&replicaset=globaldb&retrywrites=false 的连接字符串。

我尝试使用 @H_301_9@retryWrites=true(根据 Azure 支持建议),但这没有帮助。

我尝试了不同的设置,但都不起作用(@H_301_9@connect=direct、@H_301_9@maxIdleTimeMS=30000、@H_301_9@serverSelectionTimeout=5000ms、@H_301_9@socketTimeout=10000ms)。

导致这些异常的原因是什么?

解决方法

修复是设置/强制使用 TLS 1.2(基于 this Microsoft document):

//return new MongoClient(connectionString);
var settings = MongoClientSettings.FromConnectionString(connectionString);
settings.SslSettings = new SslSettings()
{
    EnabledSslProtocols = System.Security.Authentication.SslProtocols.Tls12
};
return new MongoClient(settings);

看起来虽然我的连接字符串有 ssl=true,但在某些服务器上还不够(错误是间歇性的)。 forcing TLS 1.2 通常可以修复相同的潜在错误,因此我认为在 Mongo 中它可能是相同的问题 - 它确实解决了问题。

Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解决方案

Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解决方案

Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解决方案

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

在启动hadoop时,出现了如下错误:

Call From java.net.UnknownHostException: ubuntu-larntin: ubuntu-larntin to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused;

而且启动datanode、yarn都正常,只有namenode一直挂掉

解决方案如下:

wrr@ubuntu:~$ hadoop namenode -format

之后,重新启动所有的集群,即可

wrr@ubuntu:~$ cd /home/wrr/java/hadoop-2.7.6/sbin
wrr@ubuntu:~/java/hadoop-2.7.6/sbin$ ./hadoop-daemon.sh start namenode
starting namenode, logging to /home/wrr/java/hadoop-2.7.6/logs/hadoop-wrr-namenode-ubuntu.out
wrr@ubuntu:~/java/hadoop-2.7.6/sbin$ jps
8307 DataNode
9317 NameNode
7431 
9352 Jps
8476 ResourceManager

之后,再次在eclipse上运行程序,就没问题了。

新建了一个java文件

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HDFSFileIfExist {
    public static void main(String[] args){
        try{
            String fileName = "test";
            Configuration conf = new Configuration();
            conf.set("fs.defaultFS", "hdfs://localhost:9000");
            conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
            FileSystem fs = FileSystem.get(conf);
            if(fs.exists(new Path(fileName))){
                System.out.println("文件存在");
            }else{
                System.out.println("文件不存在");
            }
 
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

判断当前hadoop-2.7.6目录下是否存在test文件

如果想看更多关于java API的内容,可以看大数据技术原理与应用 第三章 分布式文件系统HDFS 学习指南_厦大数据库实验室博客

 

 

今天的关于php – MongoConnectionException – 找不到候选服务器mongoimport 没找到的分享已经结束,谢谢您的关注,如果想了解更多关于.conn.ManagedClientConnectionImpl@604ed9f0 java.net.ConnectException: Connection refused: connect、:10000/hive: java.net.ConnectException: Connection refused: connect、Azure Cosmos DB - 间歇性 MongoConnectionException / IOException / SocketException、Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解决方案的相关知识,请在本站进行查询。

本文标签: