在EC2上的局部应力卡桑德拉实例 [英] Stress Cassandra instance on EC2 from local

查看:189
本文介绍了在EC2上的局部应力卡桑德拉实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我会AP preciate如何强调从我的本地机器(使用卡桑德拉应力 UTIL)在EC2上运行的卡桑德拉比如一些帮助。

  • 在EC2集群:运行DSE 4.6五节点
  • 在本地计算机:卡桑德拉应力作为包含在卡桑德拉2.1.2

更改后的<一个href="http://stackoverflow.com/questions/5297752/how-to-connect-cassandra-from-local-to-ec2-instances">Security论坛 UTIL从我的本地机器上调用的应力能够连接到指定的实例在EC2上。

我允许的端口的入站TCP连接 9160 9042 从我的本地机器的IP。

  SH卡桑德拉应激写-node 54.xxx.197.xxx
 

输出是:

  ec0007:仓planger $ SH卡桑德拉应激写-node 54.xxx.197.xxx
无法创建压力密钥空间:密钥空间名称必须是不区分大小写唯一的(Keyspace1与Keyspace1冲突)
热身写有50000迭代...
WARN 13时45分52秒找到主机0.0.0.0作为rpc_address,使用listen_address(/172.31.33.33)来代替与我们联系。如果这是不正确,你应该避免使用0.0.0.0服务器端。
WARN 13时45分52秒找到主机0.0.0.0作为rpc_address,使用listen_address(/172.31.33.34)来代替与我们联系。如果这是不正确,你应该避免使用0.0.0.0服务器端。
WARN 13时45分52秒找到主机0.0.0.0作为rpc_address,使用listen_address(/172.31.33.35)来代替与我们联系。如果这是不正确,你应该避免使用0.0.0.0服务器端。
WARN 13时45分52秒找到主机0.0.0.0作为rpc_address,使用listen_address(/172.31.33.32)来代替与我们联系。如果这是不正确,你应该避免使用0.0.0.0服务器端。
WARN 13点45分53秒找到主机0.0.0.0作为rpc_address,使用listen_address(/172.31.33.33)来代替与我们联系。如果这是不正确,你应该避免使用0.0.0.0服务器端。
WARN 13点45分53秒找到主机0.0.0.0作为rpc_address,使用listen_address(/172.31.33.34)来代替与我们联系。如果这是不正确,你应该避免使用0.0.0.0服务器端。
WARN 13点45分53秒找到主机0.0.0.0作为rpc_address,使用listen_address(/172.31.33.35)来代替与我们联系。如果这是不正确,你应该避免使用0.0.0.0服务器端。
WARN 13点45分53秒找到主机0.0.0.0作为rpc_address,使用listen_address(/172.31.33.32)来代替与我们联系。如果这是不正确,你应该避免使用0.0.0.0服务器端。
INFO 13点45分53秒利用数据中心的名称'卡桑德拉'的DCAwareRoundRobinPolicy(如果这是不正确,请提供DCAwareRoundRobinPolicy构造正确的数据中心的名称)
INFO 13点45分53秒的新卡桑德拉主机/172.31.33.33:9042添加
INFO 13点45分53秒的新卡桑德拉主机/172.31.33.32:9042添加
连接到集群:esentriDSEcluster
Datatacenter:卡桑德拉;主持人:/54.xxx.197.xxx;机架:RACK1
INFO 13点45分53秒的新卡桑德拉主机/172.31.33.35:9042添加
Datatacenter:分析;主持人:/172.31.33.35;机架:RACK1
Datatacenter:Solr的;主持人:/172.31.33.34;机架:RACK1
Datatacenter:卡桑德拉;主持人:/172.31.33.33;机架:RACK1
Datatacenter:卡桑德拉;主持人:/172.31.33.32;机架:RACK1
INFO 13点45分53秒的新卡桑德拉主机/172.31.33.34:9042添加
INFO 13点45分53秒的新卡桑德拉主机/54.171.197.133:9042添加
ERROR十三点45分58秒错误创建池/172.31.33.33:9042
com.datastax.driver.core.TransportException:[/172.31.33.33:9042]无法连接
    。在com.datastax.driver.core.Connection&LT; INIT&GT;(Connection.java:104)〜[卡桑德拉驱动核-2.0.5.jar:NA]
    。在com.datastax.driver.core.PooledConnection&LT; INIT&GT;(PooledConnection.java:28)〜[卡桑德拉驱动核-2.0.5.jar:NA]
    在com.datastax.driver.core.Connection $ Factory.open(Connection.java:458)〜[卡桑德拉驱动核-2.0.5.jar:NA]
    。在com.datastax.driver.core.HostConnectionPool&LT; INIT&GT;(HostConnectionPool.java:85)〜[卡桑德拉驱动核-2.0.5.jar:NA]
    在com.datastax.driver.core.SessionManager.replacePool(SessionManager.java:241)〜[卡桑德拉驱动核-2.0.5.jar:NA]
    在com.datastax.driver.core.SessionManager.access $ 400(SessionManager.java:42)〜[卡桑德拉驱动核-2.0.5.jar:NA]
    在com.datastax.driver.core.SessionManager $ 3.call(SessionManager.java:273)卡桑德拉驱动核-2.0.5.jar:NA]
    在com.datastax.driver.core.SessionManager $ 3.call(SessionManager.java:265)卡桑德拉驱动核-2.0.5.jar:NA]
    在java.util.concurrent.FutureTask.run(FutureTask.java:262)NA:1.7.0_55]
    在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)NA:1.7.0_55]
    在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)NA:1.7.0_55]
    在java.lang.Thread.run(Thread.java:745)NA:1.7.0_55]
org.jboss.netty.channel.ConnectTimeoutException:通过导致连接超时:/172.31.33.33:9042
    在org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:137)〜[网状-3.9.0.Final.jar:NA]
    在org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83)〜[网状-3.9.0.Final.jar:NA]
    在org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)〜[网状-3.9.0.Final.jar:NA]
    在org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)〜[网状-3.9.0.Final.jar:NA]
    ... 3共同框架省略
 

这个问题似乎是,所接触的EC2实例返回其他四个实例的私有IP地址。如何改变这种状况?我认为它应该返回公网IP。

在EC2节点上的 cassandra.yaml 配置看起来像这样:

  seed_provider:
     - 将class_name:org.apache.cassandra.locator.SimpleSeedProvider
      参数:
           - 种子:172.31.33.33,172.31.33.35,172.31.33.34

listen_address:172.31.33.32#(每个节点上的不同)

#broadcast_address:

start_rpc:真
rpc_address:0.0.0.0
rpc_port:9160
 

更改种子或指定broadcast_address打破了集群。

感谢您的帮助提前。

更新1

我通过设置它的价值节点的公共IP地址改变了 rpc_address 的每个节点上。然后重新启动每个节点。

  sudo的服务DSE站
须藤服务DSE开始
 

但是,这打破了集群。 DSE启动后很短的时间,一个节点将再次关闭。

/var/log/cassandra/system.log

 信息[主] 2015年2月6日09:54:06128 CassandraDaemon.java(线135)记录初始化
 INFO [主] 2015年2月6日09:54:06156 DseDaemon.java(线382)DSE版本:4.6.0
 INFO [主] 2015年2月6日09:54:06157 DseDaemon.java(线383)的Hadoop版本:1.0.4.13
 INFO [主] 2015年2月6日09:54:06157 DseDaemon.java(线384)蜂巢版本:0.12.0.5
 INFO [主] 2015年2月6日09:54:06158 DseDaemon.java(线385)猪版本:0.10.1
 INFO [主] 2015年2月6日09:54:06159 DseDaemon.java(线386)的Solr版本:4.6.0.3.3
 INFO [主] 2015年2月6日09:54:06159 DseDaemon.java(线387)Sqoop版本:1.4.4.14.2
 INFO [主] 2015年2月6日09:54:06160 DseDaemon.java(线388)Mahout的版本:0.8
 INFO [主] 2015年2月6日09:54:06160 DseDaemon.java(线389),追加程序版本:3.1.0
 INFO [主] 2015年2月6日09:54:06161 DseDaemon.java(线390)星火版本:1.1.0.2
 INFO [主] 2015年2月6日09:54:06161 DseDaemon.java(线391)鲨鱼版本:1.1.0
 INFO [主] 2015年2月6日09:54:06416 DseConfig.java(线345)正在加载从文件设置:/etc/dse/dse.yaml
 INFO [主] 2015年2月6日09:54:06605 DseConfig.java(线385)设置负载完成。
 INFO [主] 2015年2月6日09:54:06611 DseConfig.java(线409)CQL慢日志已启用
 INFO [主] 2015年2月6日09:54:06611 DseConfig.java(线410)CQL系统信息表未启用
 INFO [主] 2015年2月6日09:54:06611 DseConfig.java(线411)资源水平延迟跟踪未启用
 INFO [主] 2015年2月6日09:54:06613 DseConfig.java(线412)数据库汇总统计数据未启用
 INFO [主] 2015年2月6日09:54:06614 DseConfig.java(线413)集群汇总统计数据未启用
 INFO [主] 2015年2月6日09:54:06614 DseConfig.java(线414)直方图数据表未启用
 INFO [主] 2015年2月6日09:54:06614 DseConfig.java(线415)用户级别的延迟跟踪未启用
 INFO [主] 2015年2月6日09:54:06614 DseConfig.java(线416)Solr的延迟快照未启用
 INFO [主] 2015年2月6日09:未启用06615 DseConfig.java(线417)的Solr缓慢子查询日志:54
 INFO [主] 2015年2月6日09:54:06615 DseConfig.java(线418)Solr的索引错误日志中未启用
 INFO [主] 2015年2月6日09:54:06615 DseConfig.java(线419)Solr的更新处理指标未启用
 INFO [主] 2015年2月6日09:54:06615 DseConfig.java(线420)的Solr请求处理指标未启用
 INFO [主] 2015年2月6日09:54:06615 DseConfig.java(线421)Solr的索引统计报告未启用
 INFO [主] 2015年2月6日09:54:06616 DseConfig.java(线422)的Solr缓存统计报告未启用
 INFO [主] 2015年2月6日09:54:06629 YamlConfigurationLoader.java(80线),从文件加载设置:/etc/dse/cassandra/cassandra.yaml
 INFO [主] 2015年2月6日09:54:06683 DatabaseDescriptor.java(143行)数据文件的目录:/ RAID0 /卡桑德拉/数据]
 INFO [主] 2015年2月6日09:54:06683 DatabaseDescriptor.java(行144)提交日志目录:/ RAID0 /卡桑德拉/ commitlog
 INFO [主] 2015年2月6日09:54:06683 DatabaseDescriptor.java(线184)DiskAccessMode自动确定为MMAP,indexAccessMode是MMAP
 INFO [主] 2015年2月6日09:54:06683 DatabaseDescriptor.java(线198)disk_failure_policy是停止
 INFO [主] 2015年2月6日09:54:06684 DatabaseDescriptor.java(线199)commit_failure_policy是停止
 INFO [主] 2015年2月6日09:54:06690 DatabaseDescriptor.java(线269),全球的memTable阈值在930MB启用
 INFO [主] 2015年2月6日09:54:06692 Workload.java(行80)设置我的工作量卡桑德拉
 INFO [主] 2015年2月6日09:54:06693 DseDelegateSnitch.java(43行)初始化DseDelegateSnitch工作量卡桑德拉,委托给com.datastax.bdp.snitch.DseSimpleSnitch
 INFO [主] 2015年2月6日09:54:06830 DatabaseDescriptor.java(线408)不使用多线程压缩
 INFO [主] 2015年2月6日09:54:07075 YamlConfigurationLoader.java(80线),从文件加载设置:/etc/dse/cassandra/cassandra.yaml
 INFO [主] 2015年2月6日09:54:07090 YamlConfigurationLoader.java(80线),从文件加载设置:/etc/dse/cassandra/cassandra.yaml
 INFO [主] 2015年2月6日09:54:07150 PerformanceObjectsController.java(线321)ClusterSummaryStats插件使用4异步作家
 INFO [主] 2015年2月6日09:54:07150 PerformanceObjectsController.java(线355)ClusterSummaryStats刷新率设置为10000(为0)
 INFO [主] 2015年2月6日09:54:07151 PerformanceObjectsController.java(线321)CqlSystemInfo插件使用1异步作家
 INFO [主] 2015年2月6日09:54:07151 PerformanceObjectsController.java(线355)CqlSystemInfo刷新设置为10000率(为0)
 INFO [主] 2015年2月6日09:54:07152 PerformanceObjectsController.java(线321)DbSummaryStats插件使用4异步作家
 INFO [主] 2015年2月6日09:54:07152 PerformanceObjectsController.java(线355)DbSummaryStats刷新率设置为10000(为0)
 INFO [主] 2015年2月6日09:54:07152 PerformanceObjectsController.java(线321)HistogramDataTables插件使用4异步作家
 INFO [主] 2015年2月6日09:54:07153 PerformanceObjectsController.java(线355)HistogramDataTables刷新率设置为10000(为0)
 INFO [主] 2015年2月6日09:54:07153 PerformanceObjectsController.java(321线),使用4异步作家ResourceLatencyTracking插件
 INFO [主] 2015年2月6日09:54:07153 PerformanceObjectsController.java(线355)ResourceLatencyTracking刷新率设置为10000(为0)
 INFO [主] 2015年2月6日09:54:07154 PerformanceObjectsController.java(321线),使用1异步作家UserLatencyTracking插件
 INFO [主] 2015年2月6日09:54:07154 PerformanceObjectsController.java(线355)UserLatencyTracking刷新率设置为10000(为0)
(...)
 INFO [主] 2015年2月6日09:54:14717 StorageService.java(线514)卡桑德拉版本:2.0.11.83
 INFO [主] 2015年2月6日09:54:14718 StorageService.java(线515)节俭API版本:19.39.0
 INFO [主] 2015年2月6日09:54:14722 StorageService.java(线516)CQL支持版本:2.0.0,3.1.7(默认值:3.1.7)
 INFO [主] 2015年2月6日09:54:14745 StorageService.java(线539)正在加载持续环状态
 INFO [主] 2015年2月6日09:54:14758 StorageService.java(线677)启动服务器八卦
(...)
 INFO [主] 2015年2月6日09:54:14,885 MessagingService.java(线473)在端口7000启动信息服务
 INFO [主] 2015年2月6日09:54:14,917 YamlConfigurationLoader.java(80线),从文件加载设置:/etc/dse/cassandra/cassandra.yaml
(...)
 INFO [主] 2015年2月6日09:54:14977 StorageService.java(1521线)节点/172.31.33.33状态跳转到正常
 INFO [主] 2015年2月6日09:54:14987 CassandraDaemon.java(线543),等待八卦接受客户端请求之前解决...
 INFO [主] 2015年2月6日09:54:22988 CassandraDaemon.java(线575)不说闲话积压;诉讼
 INFO [主] 2015年2月6日09:54:23011 AuditLogger.java(第32行)审计日志被禁用
 INFO [主] 2015年2月6日09:54:23031 EndpointStatePersister.java(56行)EndpointStatePersister开始
 警告[主] 2015年2月6日09:54:23031 Workload.java(线100)无法确定工作量/172.31.33.35从NULL值
 警告[主] 2015年2月6日09:54:23036 Workload.java(线100)无法确定工作量/172.31.33.32从NULL值
 警告[主] 2015年2月6日09:54:23036 Workload.java(线100)无法确定工作量/172.31.33.36从NULL值
 警告[主] 2015年2月6日09:54:23037 Workload.java(线100)无法确定工作量/172.31.33.34从NULL值
 INFO [主] 2015年2月6日09:54:23038 EndpointStateTracker.java(线80)EndpointStateTracker开始
 INFO [主] 2015年2月6日09:54:23041 DseDaemon.java(线441),等待其他节点变活...
 警告[主] 2015年2月6日09:54:33827 DseDaemon.java(线444)下面的节点似乎是下降:[/172.31.33.35,/172.31.33.32,/172.31.33.36,/172.31.33.34] 。一些Cassandra的操作可能会用UnavailableException失败。
 INFO [主] 2015年2月6日09:54:33827 DseDaemon.java(线454)等节点完成
 INFO [主] 2015年2月6日09:54:33836 PluginManager.java(线262)激活插件:com.datastax.bdp.plugin.DseSystemPlugin
 INFO [主] 2015年2月6日09:54:33837 PluginManager.java(线344)插件激活:com.datastax.bdp.plugin.DseSystemPlugin
 INFO [主] 2015年2月6日09:54:33837 PluginManager.java(线262)激活插件:com.datastax.bdp.leases.PeriodicTaskOwnershipPlugin
 INFO [主] 2015年2月6日09:54:33842 PluginManager.java(线344)插件激活:com.datastax.bdp.leases.PeriodicTaskOwnershipPlugin
 INFO [主] 2015年2月6日09:54:33919 Server.java(线156)开始在/54.xxx.180.xxx:9042监听CQL客户...
错误[主] 2015年2月6日09:54:33934 DseDaemon.java(线492)无法启动DSE服务器。
org.jboss.netty.channel.ChannelException:**未能绑定到**:/**54.xxx.180.xxx:9042**
    在org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
    在org.apache.cassandra.transport.Server.run(Server.java:157)
    在org.apache.cassandra.transport.Server.start(Server.java:108)
    在org.apache.cassandra.service.CassandraDaemon.start(CassandraDaemon.java:443)
    在com.datastax.bdp.server.DseDaemon.start(DseDaemon.java:486)
    在org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:509)
    在com.datastax.bdp.server.DseDaemon.main(DseDaemon.java:659)
java.net.BindException:产生的原因无法分配请求的地址
    在sun.nio.ch.Net.bind0(本机方法)
    在sun.nio.ch.Net.bind(Net.java:444)
    在sun.nio.ch.Net.bind(Net.java:436)
    在sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
    在sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    在org.jboss.netty.channel.socket.nio.NioServerBoss $ RegisterTask.run(NioServerBoss.java:193)
    在org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:366)
    在org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290)
    在org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42)
    在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)
    在java.lang.Thread.run(Thread.java:744)
 INFO [线程2] 2015年2月6日09:54:33937 DseDaemon.java(线505)DSE关停...
 INFO [StorageServiceShutdownHook] 2015年2月6日09:54:33941 Gossiper.java(行1307)宣布停产
 INFO [线程2] 2015年2月6日09:54:33954 PluginManager.java(线304)禁用插件:com.datastax.bdp.leases.PeriodicTaskOwnershipPlugin
 INFO [线程2] 2015年2月6日09:54:33954 PluginManager.java(线304)禁用插件:com.datastax.bdp.plugin.DseSystemPlugin
 INFO [线程2] 2015年2月6日09:54:33954 PluginManager.java(线356),所有的插件都停了下来。
 INFO [线程2] 2015年2月6日09:54:33954 CassandraDaemon.java(线463)卡桑德拉关停...
 INFO [StorageServiceShutdownHook] 2015年2月6日09:54:35945 MessagingService.java(线701)等待消息业务停顿
 INFO [ACCEPT- / 172.31.33.33] 2015年2月6日09:54:35945 MessagingService.java(线941)的MessagingService已终止接受()线程
 

解决方案

我相信压力就像任何DataStax驱动程序,并使用RPC地址的每个节点进行通信。目前已0.0.0.0配置这也许可以解释为什么它的采摘内部的AWS地址。

三个地址Cassandra.yaml

avaliable
  1. 监听地址 - 这是IP地址的其他卡桑德拉节点将使用去跟这个节点。你想这是你的内部AWS IP地址的表现。

  2. RPC地址 - 这是您的客户端连接到,可能要配置,以配合您的外部AWS地址,如果您的客户端不是坐在AWS或在同一AWS区域上的地址。也适用于压力。

  3. 广播地址 - 如果你正在使用多个数据中心或AWS地区,那里不是所有的节点都通过内部IP访问对方。您可以指定在不同的数据中心节点的外部IP地址仍然可以互相交谈。在很多情况下,你不需要这个设置的话,那将默认为您的监听地址。

让我知道,如果这有助于。

I would appreciate some help on how to stress a Cassandra instance running on EC2 from my local machine (using cassandra-stress util).

  • Cluster on EC2: Five nodes running DSE 4.6.
  • Local machine: cassandra-stress as included in Cassandra 2.1.2.

After changing the Security Group the stress util invoked from my local machine is able to connect to the given instance on EC2.

I allowed inbound TCP connections on Ports 9160 and 9042 from my local machine's IP.

sh cassandra-stress write -node 54.xxx.197.xxx

Output is:

ec0007:bin planger$ sh cassandra-stress write -node 54.xxx.197.xxx
Unable to create stress keyspace: Keyspace names must be case-insensitively unique ("Keyspace1" conflicts with "Keyspace1")
Warming up WRITE with 50000 iterations...
WARN  13:45:52 Found host with 0.0.0.0 as rpc_address, using listen_address (/172.31.33.33) to contact it instead. If this is incorrect you should avoid the use of 0.0.0.0 server side.
WARN  13:45:52 Found host with 0.0.0.0 as rpc_address, using listen_address (/172.31.33.34) to contact it instead. If this is incorrect you should avoid the use of 0.0.0.0 server side.
WARN  13:45:52 Found host with 0.0.0.0 as rpc_address, using listen_address (/172.31.33.35) to contact it instead. If this is incorrect you should avoid the use of 0.0.0.0 server side.
WARN  13:45:52 Found host with 0.0.0.0 as rpc_address, using listen_address (/172.31.33.32) to contact it instead. If this is incorrect you should avoid the use of 0.0.0.0 server side.
WARN  13:45:53 Found host with 0.0.0.0 as rpc_address, using listen_address (/172.31.33.33) to contact it instead. If this is incorrect you should avoid the use of 0.0.0.0 server side.
WARN  13:45:53 Found host with 0.0.0.0 as rpc_address, using listen_address (/172.31.33.34) to contact it instead. If this is incorrect you should avoid the use of 0.0.0.0 server side.
WARN  13:45:53 Found host with 0.0.0.0 as rpc_address, using listen_address (/172.31.33.35) to contact it instead. If this is incorrect you should avoid the use of 0.0.0.0 server side.
WARN  13:45:53 Found host with 0.0.0.0 as rpc_address, using listen_address (/172.31.33.32) to contact it instead. If this is incorrect you should avoid the use of 0.0.0.0 server side.
INFO  13:45:53 Using data-center name 'Cassandra' for DCAwareRoundRobinPolicy (if this is incorrect, please provide the correct datacenter name with DCAwareRoundRobinPolicy constructor)
INFO  13:45:53 New Cassandra host /172.31.33.33:9042 added
INFO  13:45:53 New Cassandra host /172.31.33.32:9042 added
Connected to cluster: esentriDSEcluster
Datatacenter: Cassandra; Host: /54.xxx.197.xxx; Rack: rack1
INFO  13:45:53 New Cassandra host /172.31.33.35:9042 added
Datatacenter: Analytics; Host: /172.31.33.35; Rack: rack1
Datatacenter: Solr; Host: /172.31.33.34; Rack: rack1
Datatacenter: Cassandra; Host: /172.31.33.33; Rack: rack1
Datatacenter: Cassandra; Host: /172.31.33.32; Rack: rack1
INFO  13:45:53 New Cassandra host /172.31.33.34:9042 added
INFO  13:45:53 New Cassandra host /54.171.197.133:9042 added
ERROR 13:45:58 Error creating pool to /172.31.33.33:9042
com.datastax.driver.core.TransportException: [/172.31.33.33:9042] Cannot connect
    at com.datastax.driver.core.Connection.<init>(Connection.java:104) ~[cassandra-driver-core-2.0.5.jar:na]
    at com.datastax.driver.core.PooledConnection.<init>(PooledConnection.java:28) ~[cassandra-driver-core-2.0.5.jar:na]
    at com.datastax.driver.core.Connection$Factory.open(Connection.java:458) ~[cassandra-driver-core-2.0.5.jar:na]
    at com.datastax.driver.core.HostConnectionPool.<init>(HostConnectionPool.java:85) ~[cassandra-driver-core-2.0.5.jar:na]
    at com.datastax.driver.core.SessionManager.replacePool(SessionManager.java:241) ~[cassandra-driver-core-2.0.5.jar:na]
    at com.datastax.driver.core.SessionManager.access$400(SessionManager.java:42) ~[cassandra-driver-core-2.0.5.jar:na]
    at com.datastax.driver.core.SessionManager$3.call(SessionManager.java:273) [cassandra-driver-core-2.0.5.jar:na]
    at com.datastax.driver.core.SessionManager$3.call(SessionManager.java:265) [cassandra-driver-core-2.0.5.jar:na]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
    at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55]
Caused by: org.jboss.netty.channel.ConnectTimeoutException: connection timed out: /172.31.33.33:9042
    at org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:137) ~[netty-3.9.0.Final.jar:na]
    at org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83) ~[netty-3.9.0.Final.jar:na]
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) ~[netty-3.9.0.Final.jar:na]
    at org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42) ~[netty-3.9.0.Final.jar:na]
    ... 3 common frames omitted

The problem seems to be that the contacted EC2 instance returns the private IPs of the other four instances. How to change that? I think it should return the public IPs.

The cassandra.yaml configuration on the EC2 nodes looks like that:

seed_provider:
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
      parameters:
          - seeds: "172.31.33.33,172.31.33.35,172.31.33.34"

listen_address: 172.31.33.32  # (different on every node)

# broadcast_address: 

start_rpc: true
rpc_address: 0.0.0.0
rpc_port: 9160

Changing seeds or specifying a broadcast_address breaks the cluster.

Thanks for help in advance.

Update 1

I changed the rpc_address on every node by setting it's value to the node's public IP address. Then restarted each node.

sudo service dse stop
sudo service dse start

But this breaks the cluster. Short time after DSE startup, a node will shut down again.

From /var/log/cassandra/system.log

 INFO [main] 2015-02-06 09:54:06,128 CassandraDaemon.java (line 135) Logging initialized
 INFO [main] 2015-02-06 09:54:06,156 DseDaemon.java (line 382) DSE version: 4.6.0
 INFO [main] 2015-02-06 09:54:06,157 DseDaemon.java (line 383) Hadoop version: 1.0.4.13
 INFO [main] 2015-02-06 09:54:06,157 DseDaemon.java (line 384) Hive version: 0.12.0.5
 INFO [main] 2015-02-06 09:54:06,158 DseDaemon.java (line 385) Pig version: 0.10.1
 INFO [main] 2015-02-06 09:54:06,159 DseDaemon.java (line 386) Solr version: 4.6.0.3.3
 INFO [main] 2015-02-06 09:54:06,159 DseDaemon.java (line 387) Sqoop version: 1.4.4.14.2
 INFO [main] 2015-02-06 09:54:06,160 DseDaemon.java (line 388) Mahout version: 0.8
 INFO [main] 2015-02-06 09:54:06,160 DseDaemon.java (line 389) Appender version: 3.1.0
 INFO [main] 2015-02-06 09:54:06,161 DseDaemon.java (line 390) Spark version: 1.1.0.2
 INFO [main] 2015-02-06 09:54:06,161 DseDaemon.java (line 391) Shark version: 1.1.0
 INFO [main] 2015-02-06 09:54:06,416 DseConfig.java (line 345) Loading settings from file:/etc/dse/dse.yaml
 INFO [main] 2015-02-06 09:54:06,605 DseConfig.java (line 385) Load of settings is done.
 INFO [main] 2015-02-06 09:54:06,611 DseConfig.java (line 409) CQL slow log is enabled
 INFO [main] 2015-02-06 09:54:06,611 DseConfig.java (line 410) CQL system info tables are not enabled
 INFO [main] 2015-02-06 09:54:06,611 DseConfig.java (line 411) Resource level latency tracking is not enabled
 INFO [main] 2015-02-06 09:54:06,613 DseConfig.java (line 412) Database summary stats are not enabled
 INFO [main] 2015-02-06 09:54:06,614 DseConfig.java (line 413) Cluster summary stats are not enabled
 INFO [main] 2015-02-06 09:54:06,614 DseConfig.java (line 414) Histogram data tables are not enabled
 INFO [main] 2015-02-06 09:54:06,614 DseConfig.java (line 415) User level latency tracking is not enabled
 INFO [main] 2015-02-06 09:54:06,614 DseConfig.java (line 416) Solr latency snapshots are not enabled
 INFO [main] 2015-02-06 09:54:06,615 DseConfig.java (line 417) Solr slow sub-query log is not enabled
 INFO [main] 2015-02-06 09:54:06,615 DseConfig.java (line 418) Solr indexing error log is not enabled
 INFO [main] 2015-02-06 09:54:06,615 DseConfig.java (line 419) Solr update handler metrics are not enabled
 INFO [main] 2015-02-06 09:54:06,615 DseConfig.java (line 420) Solr request handler metrics are not enabled
 INFO [main] 2015-02-06 09:54:06,615 DseConfig.java (line 421) Solr index statistics reporting is not enabled
 INFO [main] 2015-02-06 09:54:06,616 DseConfig.java (line 422) Solr cache statistics reporting is not enabled
 INFO [main] 2015-02-06 09:54:06,629 YamlConfigurationLoader.java (line 80) Loading settings from file:/etc/dse/cassandra/cassandra.yaml
 INFO [main] 2015-02-06 09:54:06,683 DatabaseDescriptor.java (line 143) Data files directories: [/raid0/cassandra/data]
 INFO [main] 2015-02-06 09:54:06,683 DatabaseDescriptor.java (line 144) Commit log directory: /raid0/cassandra/commitlog
 INFO [main] 2015-02-06 09:54:06,683 DatabaseDescriptor.java (line 184) DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap
 INFO [main] 2015-02-06 09:54:06,683 DatabaseDescriptor.java (line 198) disk_failure_policy is stop
 INFO [main] 2015-02-06 09:54:06,684 DatabaseDescriptor.java (line 199) commit_failure_policy is stop
 INFO [main] 2015-02-06 09:54:06,690 DatabaseDescriptor.java (line 269) Global memtable threshold is enabled at 930MB
 INFO [main] 2015-02-06 09:54:06,692 Workload.java (line 80) Setting my workload to Cassandra
 INFO [main] 2015-02-06 09:54:06,693 DseDelegateSnitch.java (line 43) Initialized DseDelegateSnitch with workload Cassandra, delegating to com.datastax.bdp.snitch.DseSimpleSnitch
 INFO [main] 2015-02-06 09:54:06,830 DatabaseDescriptor.java (line 408) Not using multi-threaded compaction
 INFO [main] 2015-02-06 09:54:07,075 YamlConfigurationLoader.java (line 80) Loading settings from file:/etc/dse/cassandra/cassandra.yaml
 INFO [main] 2015-02-06 09:54:07,090 YamlConfigurationLoader.java (line 80) Loading settings from file:/etc/dse/cassandra/cassandra.yaml
 INFO [main] 2015-02-06 09:54:07,150 PerformanceObjectsController.java (line 321) ClusterSummaryStats plugin using 4 async writers
 INFO [main] 2015-02-06 09:54:07,150 PerformanceObjectsController.java (line 355) ClusterSummaryStats refresh rate set to 10000 (was 0)
 INFO [main] 2015-02-06 09:54:07,151 PerformanceObjectsController.java (line 321) CqlSystemInfo plugin using 1 async writers
 INFO [main] 2015-02-06 09:54:07,151 PerformanceObjectsController.java (line 355) CqlSystemInfo refresh rate set to 10000 (was 0)
 INFO [main] 2015-02-06 09:54:07,152 PerformanceObjectsController.java (line 321) DbSummaryStats plugin using 4 async writers
 INFO [main] 2015-02-06 09:54:07,152 PerformanceObjectsController.java (line 355) DbSummaryStats refresh rate set to 10000 (was 0)
 INFO [main] 2015-02-06 09:54:07,152 PerformanceObjectsController.java (line 321) HistogramDataTables plugin using 4 async writers
 INFO [main] 2015-02-06 09:54:07,153 PerformanceObjectsController.java (line 355) HistogramDataTables refresh rate set to 10000 (was 0)
 INFO [main] 2015-02-06 09:54:07,153 PerformanceObjectsController.java (line 321) ResourceLatencyTracking plugin using 4 async writers
 INFO [main] 2015-02-06 09:54:07,153 PerformanceObjectsController.java (line 355) ResourceLatencyTracking refresh rate set to 10000 (was 0)
 INFO [main] 2015-02-06 09:54:07,154 PerformanceObjectsController.java (line 321) UserLatencyTracking plugin using 1 async writers
 INFO [main] 2015-02-06 09:54:07,154 PerformanceObjectsController.java (line 355) UserLatencyTracking refresh rate set to 10000 (was 0)
(…) 
 INFO [main] 2015-02-06 09:54:14,717 StorageService.java (line 514) Cassandra version: 2.0.11.83
 INFO [main] 2015-02-06 09:54:14,718 StorageService.java (line 515) Thrift API version: 19.39.0
 INFO [main] 2015-02-06 09:54:14,722 StorageService.java (line 516) CQL supported versions: 2.0.0,3.1.7 (default: 3.1.7)
 INFO [main] 2015-02-06 09:54:14,745 StorageService.java (line 539) Loading persisted ring state
 INFO [main] 2015-02-06 09:54:14,758 StorageService.java (line 677) Starting up server gossip
(…)
 INFO [main] 2015-02-06 09:54:14,885 MessagingService.java (line 473) Starting Messaging Service on port 7000
 INFO [main] 2015-02-06 09:54:14,917 YamlConfigurationLoader.java (line 80) Loading settings from file:/etc/dse/cassandra/cassandra.yaml
(…)
 INFO [main] 2015-02-06 09:54:14,977 StorageService.java (line 1521) Node /172.31.33.33 state jump to normal
 INFO [main] 2015-02-06 09:54:14,987 CassandraDaemon.java (line 543) Waiting for gossip to settle before accepting client requests...
 INFO [main] 2015-02-06 09:54:22,988 CassandraDaemon.java (line 575) No gossip backlog; proceeding
 INFO [main] 2015-02-06 09:54:23,011 AuditLogger.java (line 32) Audit logging is disabled
 INFO [main] 2015-02-06 09:54:23,031 EndpointStatePersister.java (line 56) EndpointStatePersister started
 WARN [main] 2015-02-06 09:54:23,031 Workload.java (line 100) Couldn't determine workload for /172.31.33.35 from value NULL
 WARN [main] 2015-02-06 09:54:23,036 Workload.java (line 100) Couldn't determine workload for /172.31.33.32 from value NULL
 WARN [main] 2015-02-06 09:54:23,036 Workload.java (line 100) Couldn't determine workload for /172.31.33.36 from value NULL
 WARN [main] 2015-02-06 09:54:23,037 Workload.java (line 100) Couldn't determine workload for /172.31.33.34 from value NULL
 INFO [main] 2015-02-06 09:54:23,038 EndpointStateTracker.java (line 80) EndpointStateTracker started
 INFO [main] 2015-02-06 09:54:23,041 DseDaemon.java (line 441) Waiting for other nodes to become alive...
 WARN [main] 2015-02-06 09:54:33,827 DseDaemon.java (line 444) The following nodes seems to be down: [/172.31.33.35, /172.31.33.32, /172.31.33.36, /172.31.33.34]. Some Cassandra operations may fail with UnavailableException.
 INFO [main] 2015-02-06 09:54:33,827 DseDaemon.java (line 454) Wait for nodes completed
 INFO [main] 2015-02-06 09:54:33,836 PluginManager.java (line 262) Activating plugin: com.datastax.bdp.plugin.DseSystemPlugin
 INFO [main] 2015-02-06 09:54:33,837 PluginManager.java (line 344) Plugin activated: com.datastax.bdp.plugin.DseSystemPlugin
 INFO [main] 2015-02-06 09:54:33,837 PluginManager.java (line 262) Activating plugin: com.datastax.bdp.leases.PeriodicTaskOwnershipPlugin
 INFO [main] 2015-02-06 09:54:33,842 PluginManager.java (line 344) Plugin activated: com.datastax.bdp.leases.PeriodicTaskOwnershipPlugin
 INFO [main] 2015-02-06 09:54:33,919 Server.java (line 156) Starting listening for CQL clients on /54.xxx.180.xxx:9042...
ERROR [main] 2015-02-06 09:54:33,934 DseDaemon.java (line 492) Unable to start DSE server.
org.jboss.netty.channel.ChannelException: **Failed to bind to**: /**54.xxx.180.xxx:9042**
    at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
    at org.apache.cassandra.transport.Server.run(Server.java:157)
    at org.apache.cassandra.transport.Server.start(Server.java:108)
    at org.apache.cassandra.service.CassandraDaemon.start(CassandraDaemon.java:443)
    at com.datastax.bdp.server.DseDaemon.start(DseDaemon.java:486)
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:509)
    at com.datastax.bdp.server.DseDaemon.main(DseDaemon.java:659)
Caused by: java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:444)
    at sun.nio.ch.Net.bind(Net.java:436)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:366)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290)
    at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
 INFO [Thread-2] 2015-02-06 09:54:33,937 DseDaemon.java (line 505) DSE shutting down...
 INFO [StorageServiceShutdownHook] 2015-02-06 09:54:33,941 Gossiper.java (line 1307) Announcing shutdown
 INFO [Thread-2] 2015-02-06 09:54:33,954 PluginManager.java (line 304) Deactivating plugin: com.datastax.bdp.leases.PeriodicTaskOwnershipPlugin
 INFO [Thread-2] 2015-02-06 09:54:33,954 PluginManager.java (line 304) Deactivating plugin: com.datastax.bdp.plugin.DseSystemPlugin
 INFO [Thread-2] 2015-02-06 09:54:33,954 PluginManager.java (line 356) All plugins are stopped.
 INFO [Thread-2] 2015-02-06 09:54:33,954 CassandraDaemon.java (line 463) Cassandra shutting down...
 INFO [StorageServiceShutdownHook] 2015-02-06 09:54:35,945 MessagingService.java (line 701) Waiting for messaging service to quiesce
 INFO [ACCEPT-/172.31.33.33] 2015-02-06 09:54:35,945 MessagingService.java (line 941) MessagingService has terminated the accept() thread

解决方案

I believe stress acts like any of the DataStax drivers and uses the RPC address for each node to communicate. Currently you have 0.0.0.0 configured which may be why its picking your internal aws address.

Three addresses avaliable in Cassandra.yaml

  1. Listen Address - This is the ip address other Cassandra nodes will use to talk to this node. You want this to be your internal AWS IP Address for performance.

  2. RPC Address - This is the address your client connects to, probably the one you want to configure to match your external AWS address if your client is not sitting in AWS or in the same AWS region. Also applies for stress.

  3. Broadcast Address - If you are using multiple data centers or AWS Regions, where not all the nodes have access to each other via internal IP. You can specify the external IP address for the nodes in different data centers can still talk to each other. In many cases you don't need this setting at all, it will default to your Listen Address.

Let me know if this helps.

这篇关于在EC2上的局部应力卡桑德拉实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆