关于Python连接Cassandra容器进行查询的问题

首先Cassandra是使用docker-swarm同微服务一同部署的。

问题的关键在于寻找到Cassandra的9042端口,从而获取数据。

问题一:在主节点Ping Cassandra容器的IP,由于利用docker-swarm网桥连接的容器,两者的IP不在同一网段,所以ping失败,无法获取9042端口。

问题二:在 Cassandra容器内输入ip addr,得到结果如下:

得到两个IP字段,其中下面的IP字段对应的是docker-swarm创建的网桥,在主节点尝试ping一下,竟然可以ping通。但访问IP:9042访问被拒绝。

问题三:进入到同网段下的容器内,ping两个IP字段都可以ping通,而且可以访问9042端口。但是在容器内操作较麻烦,我的目的是在节点中进行操作。

解决办法: 尝试在Cassandra容器所在的节点ping两者,虽然前者仍无法ping通,但后者可以ping通,进入容器执行

cqlsh 172.18.0.3 #网桥分配IP

发现可以进入数据库,应该是网桥分配的IP是可以连接的,但是在节点上没有打开9042端口,所以导致访问被拒绝。打开9042端口即可。由于时间问题,我直接在容器节点上进行测试。代码如下:

#!/usr/bin/env python3

from cassandra.cluster import Cluster
from cassandra.query import tuple_factory
from cassandra.policies import DCAwareRoundRobinPolicy
from cassandra.policies import DowngradingConsistencyRetryPolicy
from cassandra import ConsistencyLevel
from cassandra.query import dict_factory
import sys

def conn():

	cluster = Cluster(["172.18.0.3"])
	session=cluster.connect('jaeger_v1_dc1')
	return session

if __name__ == '__main__':

	session = conn()
	data = session.execute("select duration from traces limit 10;")
	for i in data:
		print (i)
	session.shutdown()

到此这篇关于关于Python连接Cassandra容器进行查询的问题的文章就介绍到这了,更多相关Python连接Cassandra内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详细探究Python中的字典容器

    dictionary 我们都曾经使用过语言词典来查找不认识的单词的定义.语言词典针对给定的单词(比如 python)提供一组标准的信息.这种系统将定义和其他信息与实际的单词关联(映射)起来.使用单词作为键定位器来寻找感兴趣的信息.这种概念延伸到 Python 编程语言中,就成了特殊的容器类型,称为 dictionary. dictionary 数据类型在许多语言中都存在.它有时候称为关联 数组(因为数据与一个键值相关联),或者作为散列表.但是在 Python 中,dictionary 是一个很好

  • Python中Collections模块的Counter容器类使用教程

    1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类:排序字典,是字典的子类.引入自2.7. namedtuple()函数:命名元组,是一个工厂函数.引入自2.6. Counter类:为hashable对象计数,是字典的子类.引入自2.7. deque:双向队列.引入自2.4. defaultdict:使用工厂函数创建字典,使不用考虑缺失的字典键.引

  • python 容器总结整理

    python 容器总结整理 list 可变数组 tuple 不可变数组 dict 键值对(key-value)的字典(dictionary) 初始化: a={'lyt':90} 添加: a['zxw']=91 访问: 1.a[key] 不存在会出错 2.a.get(key) 不存在返回None 3.a.get(key,val1) 不存在返回指定的val1 ####判断: >>>key in a True/False 删除: a.pop(key) 存在返回对应的val,不存在报错 注意,k

  • python脚本监控docker容器

    本文实例为大家分享了python脚本监控docker容器的方法,供大家参考,具体内容如下 脚本功能: 1.监控CPU使用率 2.监控内存使用状况 3.监控网络流量 具体代码: #!/usr/bin/env python # --*-- coding:UTF-8 --*-- import sys import tab import re import os import time from docker import Client import commands keys_container_st

  • 使用IPython来操作Docker容器的入门指引

    现在Docker是地球上最炙手可热的项目之一,就意味着人民实际上不仅仅是因为这个才喜欢它. 话虽如此,我非常喜欢使用容器,服务发现以及所有被创造出的新趣的点子和领域来切换工作作为范例. 这个文章中我会简要介绍使用python中的docker-py模块来操作Docker 容器,这里会使用我喜爱的编程工具IPython. 安装docker-py 首先需要docker-py.注意这里的案例中我将会使用Ubuntu Trusty 14.04版本. $ pip install docker-py IPyh

  • 关于Python连接Cassandra容器进行查询的问题

    首先Cassandra是使用docker-swarm同微服务一同部署的. 问题的关键在于寻找到Cassandra的9042端口,从而获取数据. 问题一:在主节点Ping Cassandra容器的IP,由于利用docker-swarm网桥连接的容器,两者的IP不在同一网段,所以ping失败,无法获取9042端口. 问题二:在 Cassandra容器内输入ip addr,得到结果如下: 得到两个IP字段,其中下面的IP字段对应的是docker-swarm创建的网桥,在主节点尝试ping一下,竟然可以

  • Python连接DB2数据库

    在工作中遇到了这样的情况,项目中需要连接IBM的关系型数据库(DB2),关于这方面的库比较稀少,其中 ibm_db 是比较好用的一个库,网上也有教程,但是好像不准确,也不太详细,错误百出,没办法只能拿到后自己分析源码,总算搞定. 安装 环境需求: 首先是数据库DB2,下载连接直接百度,我下载是这两个文件: 只下载箭头所指即可,我还没在linux上做测试. 数据库API(这个东西找了好久,终于找到了合适的)(找不到搜:SQLAPI.zip) Python2.7 VCForPython2.7 ibm

  • Windows平台Python连接sqlite3数据库的方法分析

    本文实例讲述了Windows平台Python连接sqlite3数据库的方法.分享给大家供大家参考,具体如下: 之前没有接触过sqlite数据库,只是听到同事聊起这个. 有一次,手机端同事让我帮着写个sql,后面说运行不了报错了,我问是什么数据库,同事说是sqlite,这才知道了还有sqlite这个数据库... 接下来说说Python连接sqlite数据库,非常简单,因为python中的sqlite模块也遵循了DB-API 2.0的规范,所以操作起来和sql server.MySQL.oracle

  • Python连接SQLServer2000的方法详解

    本文实例讲述了Python连接SQLServer2000的方法.分享给大家供大家参考,具体如下: http://pymssql.sourceforge.net/  介绍PYTHON 连接MSSQL的好地址的哦! Python好的一个方法就是能够在网上找到很多现成的模块然后直接下载拿过来用就可以了.具体快速开发的一个原因也就是这个了.现在就是主要来研究一个pymssql这个模块的操作功能了! 可以安装之后直接查询帮助文档进行查看到这个模块的一些功能帮助文档. 1.一个解决乱码问题的方法: s.de

  • Python连接mssql数据库编码问题解决方法

    python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合). (1).首先,要保证文件的开头要加上编码设置来说明文件的编码 复制代码 代码如下: #encoding=utf-8 (2).然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号 复制代码 代码如下: conn=p

  • python 连接sqlite及简单操作

    废话不多说了,直接给大家贴代码了,具体代码如下所示: import sqlite3 #查询 def load(table): #连接数据库 con = sqlite3.connect("E:/Datebase/SQLiteStudio/Park.db") #获得游标 cur = con.cursor() #查询整个表 cur.execute('select *from '+table) lists = ['name','password'] if table == 'login': #

  • 用 Python 连接 MySQL 的几种方式详解

    尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的几种方式,你可以在实际开发过程中根据实际情况合理选择. 1.MySQL-python MySQL-python 又叫 MySQLdb,是 Python 连接 M

  • 详解Python连接MySQL数据库的多种方式

    上篇文章分享了windows下载mysql5.7压缩包配置安装mysql 后续可以选择 ①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器的数据 ②连接测试服务器的数据库账号和密码,在测试服务器上操作,内部测试服务器的数据库账号和密码在分配时会给不同账号做权限限制,如不同账号允许登录的方式.开放的数据库范围.账号可读写操作的权限都会不一样,若出现一直使用代码登录不上远程数据库服务器,应检查下账号是否具有权限,可询问负责管理测试服务器数

  • 使用python连接mysql数据库之pymysql模块的使用

    安装pymysql pip install pymysql 2|0使用pymysql 2|1使用数据查询语句 查询一条数据fetchone() from pymysql import * conn = connect( host='127.0.0.1', port=3306, user='root', password='123456', database='itcast', charset='utf8') # 创建游标 c = conn.cursor() # 执行sql语句 c.execute

  • python连接、操作mongodb数据库的方法实例详解

    本文实例讲述了python连接.操作mongodb数据库的方法.分享给大家供大家参考,具体如下: 数据库连接 from pymongo import MongoClient import pandas as pd #建立MongoDB数据库连接 client = MongoClient('162.23.167.36',27101)#或MongoClient("mongodb://162.23.167.36:27101/") #连接所需数据库,testDatabase为数据库名: db=

随机推荐