I am running Cassandra 1.2.1 on a remote Windows server. I set the yaml settings as following;
rpc_address: 0.0.0.0
start_native_transport: true
I can connect the remote Cassandra server from my laptop by typing the IP address and port number;
connect XXX.XX.XX.XX/9160;
on cassandra-cli.bat
But I can not connect the remote Cassandra server from my .Net Application. I use casssandra-sharp;
XmlConfigurator.Configure();
using (ICluster cluster = ClusterManager.GetCluster("main"))
Console.WriteLine("succeded");
ClusterManager.Shutdown();
Here is the App.config;
<configSections>
<section name="CassandraSharp" type="CassandraSharp.SectionHandler, CassandraSharp" />
</configSections>
<CassandraSharp>
<Cluster name="main">
<Endpoints>
<Server>XXX.XX.XX.XX</Server>
</Endpoints>
</Cluster>
</CassandraSharp>
The application throws "Can't find any valid endpoint" exception. When I run Cassandra locally and try to connect, this code block perfectly works.
On remote server 9160 and 7000 ports are allowed on firewall. Any idea about the problem?
#rs_atl is right, it is a connectivity issue.
If you are using a client library and going to execute CQL commands, you need to set;
start_native_transport: true
which you already did. Just two lines below, you will see;
native_transport_port: 9042
in yaml file. That means you need to allow port number 9042 on firewall.
If you also using a cloud service like Azure do not forget to add an End Point.
If your code works locally but does not work on another machine, the only logical conclusion is there must be a connectivity issue.
Related
I have a Hortonworks Hadoop cluster where the data nodes are on a separate network off of the master/head node. The only way to access the data nodes is through the master node or an edge node. From the edge node, I execute the hive command to connect into my hive database.
I cannot connect to the hive database from my desktop with DBeaver (4.3.0, 64-bit Windows) or the hive command line interface. Through DBeaver, I tried creating an SSH tunnel to my edge node and continually receive "Could not open client transport with JDBC Uri. jdbc:hive2://127.0.0.1:[port#]/[database].
Configuration for Hive/Apache Hive driver:
General Tab:
Host: dataNodeName
Port: 10000
Database/Schema: databaseName
User name: myUID
SSH Tunnel Tab (Network page):
Checked Use SSH Tunnel
Host/IP: edgeNodeServerName
Port: 22
User Name: myUID
Authentication Method: Password
Password: myPWD
Advanced
Local port: 0
Keep-Alive interval (ms): 0
When I select "Test Connection" with local port set to "0", I receive the above error message with random port numbers. If I set the local port to "10000", I receive the above error with port number "10000".
It looks like DBeaver is ignoring the generic JDBC connection settings--the host name in the created JDBC string is 127.0.0.1 instead of the data node name.
What am I missing? How do I setup DBeaver to access a Hive database located on a "hidden" network?
Is your hostname configured with the IP address mentioned in the jdbc connect syntax (127.0.0.1)?
Are you able to connect to beeline from your Unix shell?
Syntax to connect to beeline(hiveserver2):
beeline -u jdbc:hive2://<hostname>:<hive listener port>/<database> -n username> -p <password>
If you're able to connect to beeline, you should be able to connect to hive using same port number and host from DBeaver.
Hive listener port by default is configured on 10000, but there's a possibility that your admin can change the port number. Check the port number in hive-site.xml, or get it from admin.
Could you please uncheck the SSH tunnel and try?
This link has all the setup from scratch, please check if you have missed any step.
https://www.linkedin.com/pulse/query-hive-hiveserver2-from-windows-using-universal-database-nimmala
Not sure if your environment is Kerberized or not but assuming it is -
Following is what worked for me while connecting to Cloudera -
Fetch the krb5.conf or krb5.ini from your admins and place it in some directory. I normally put the file in a location where I put my keytabs.
Create jaas.conf file and place it at the same location(or the location of your choice)
jaas.conf must look like below(copy paste) -
Client {
com.sun.security.auth.module.Krb5LoginModule required
debug=true
doNotPrompt=true
useKeyTab=true
keyTab="C:\Users{user}\krb5cc_{user}"
useTicketCache=true
renewTGT=true
principal="{user}#DOMAIN.ORG" ;
};
Edit your dbeaver.ini file and provide the reference to both of this files(append the following lines to existing dbeaver.ini). Make sure you backup dbeaver.ini, with re installations or replacing with newer version, dbeaver.ini may get replaced, in that case you can copy the lines below from your backup dbeaver.ini file -
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.debug=true
-Dsun.security.krb5.debug=true
-Djava.security.krb5.conf=C:\Users{User}\Documents\Keytabs\krb5.conf
-Djava.security.auth.login.config=C:\Users{User}\Documents\Keytabs\jaas.conf
Last Step(You may need or may not)
I init my keytab before connecting. So I use Shell Commands -
Press F4 after creating the connection
Make sure in user you just put the user name for which you are initializing the keytab and nothing else. It should not be {user}#domain.org.
Use the shell commands to init the keytab
I also was having trouble configuring DBeaver to Hive, my solution was to use Cloudera's ODBC Driver. It worked a lot better then the JDBC drivers (auto-complete working, quicker, no need to run kinit), and I could automatize its creation.
The only problem is that you must be admin to install it.
I am trying to run Cassandra (CQL Shell) and I am receiving the following error, I have tried all the google responses to existing questions, nothing has fixed it so far.
Connection error: ('Unable to connect to any servers', {'127.0.0.1': error(10061, "Tried connecting to [('127.0.0.1', 9042)]. Last error: No connection could be made because the target machine actively refused it")})
Before installing Apache Cassandra, JDK must be installed.
Can you make sure the IP address is set correctly on your rpc_address setting in your cassandra.yaml file, on your cassandra server.
Also, you need to make sure port 9042 is open and available for incoming traffic (if your IT department is setting up servers, it is possible this port is blocked, unless otherwise specified...)
Hope it helps.
I also faced the same issue , but may be the below 2 way's can help :
Option 1 :
In my case i haven't started the Cassandra Server and was directly trying to connect to Cassandra.
(a) Firstly start the cassandra server via cmd --> \bin>cassandra.bat -f
and then
(b) Try to connect to it's node --> \bin>cqlsh.bat -u cassandra
Option 2:
Try changing the rpc_address in your cassandra.yaml file to eihter 127.0.0.1 instead of localhost
or to 0.0.0.0 instead of localhost
and then again start the server from new CMD.
Well, after looking for many solutions. I came here now.
I am setting up WHM/cPanel for hosting website. Everything was going smooth but I am stuck on FTP connection (Server sent passive reply with unroutable address. Using server address instead.)
Server Details:
CentOS Linux release 7.2.1511 (Core)
WHM/cPanel Version 11.58.0.13
FTP Server: PureFTPD
Acutal error while connecting
To fix this issue and get FTP working you need to open up more numbered ports so FTP can connect. I assume you are using CSF.
Login to WHM then go to CSF >> Firewall Configuration >>
allow TCP_In 30000:50000 and TCP_Out 30000:50000
Once you made the changes Restart the firewall
Now you need to make changes in FTP config file to use these ports, you will find this file to this location /etc/pure-ftpd.conf
Now you will see a line as follows and you will need to uncomment it
# Port range for passive connections replies. - for firewalling.
PassivePortRange 30000 50000
Restart FTP Service and should work.
I have created a DMGR profile in my host which is successs. On the same host i have created a managed node. Now when i am trying to federate the node to DMGR i am getting below error :
ADMU006E : Exception creating Deployment Manager Connection: com.ibm.websphere.management.exception.ConnectorException: ADMC0016E: The system cannot create a SOAP connector to connect to host **** at port 8879
Now to verify SOAP connection i have run the below command :
** wsadmin.sh -conntype SOAP -port -host **
Running this script from bin in dmgr profile.. it is connecting fine but failing with the same exception when running from bin directory of managed node profile.
To verify further i done the same setup in a different host by creating a dmgr and a node. It was all fine. DMGR profile created and node got federated in one go.
Not sure what exactly is the issue here.
Have verified that my port and hoat details are all correct. Also that my dmgr is running.
Thanks Michal, ephonk for your inputs.
Found the solution to above issue.
Issue was with the java.security file present in the WAS_HOME/java/jre/lib/security location.
In this file the SSL values were as below :
ssl.SocketFactory.provider=com.ibm.jsse2.SSLSocketFactoryImpl
ssl.ServerSocketFactory.provider=com.ibm.jsse2.SSLServerSocketFactoryImpl
We changed to below values and were successfully able to Federate the node to DMGR.
ssl.SocketFactory.provider=com.ibm.websphere.ssl.protocol.SSLSocketFactory
ssl.ServerSocketFactory.provider=com.ibm.websphere.ssl.protocol.SSLServerSocketFactory
May or may not be relevant, but I've seen this when the SOAP port isn't open in the firewall. Are you sure traffic on that port is allowed?
I have just started playing around with Oracle Weblogic. I am trying to do some scripting using WLST , a commandline tool. I have a test environment set up which has Weblogic 10.3 and Linux 2.6.18 on it. I have managed to log into wlst in the offline/interactive mode.
I now want to connect to the AdminServer in my domain. I am having issues doing so.
Following is the command that I am using:
wls:/offline> connect('username','password','localhost:7002')
Once the command is fired it just shows the cursor blinking and the operation does not timeout.
Using the console I have verified the state of the AdminServer , the user defined in security realm and the listen port of the server.
I am wondering why the above command did not work.
On the other hand I created a test managed server using the administration console and successfully made a connection through wlst using the same command.
Am I missing something ?
Thanks !!
I see two things.
On a default installation, port 7002 is a ssl port. It might not be configured and to use it you should specify the t3s protocol, instead of using default t3.
Also, the server is not listening on localhost. That server has an IP address, and chances are the admin server bound to it. It is not listening to 127.0.0.1.
To tell, issue this command (Linux):
#Linux
netstat -plan | grep 7001.*LISTEN
REM Windows
netstat -a -p tcp -n -o | findstr /R 7001.*LISTENING
You will see something like this (Linux):
tcp 0 0 ::ffff:192.168.1.11:7001 :::* LISTEN 20993/java
You can use the IP address, but might as well use the fully qualified name given by:
nslookup 192.168.1.11
Try again connecting :
connect('username','password','t3://myserver-fqdn.example.com:7001')
Or if SSL is configured, this should work:
connect('username','password','t3s://myserver-fqdn.example.com:7002')
Mohan there could be missing in /etc/hosts file. Please check that other reason could be firewall on the Linux box would making issue.
can you show your connect command for managed server? That may hint us to identify issue.
Did you tried with the 1p addresss as well with t3:// protocol?