Amazon ec2 如何使用DSBulk Loader将数据导入EC2上的Cassandra

Amazon ec2 如何使用DSBulk Loader将数据导入EC2上的Cassandra,amazon-ec2,cassandra,dsbulk,Amazon Ec2,Cassandra,Dsbulk,我正在尝试使用dsbulk loader将数据导入EC2上的Cassandra。我有三个节点,配置和通信如下: UN 172.31.37.60 247.91 KiB 256 35.9% 7fdfe44d-ce42-45c5-bb6b-c3e8377b0eba 2a UN 172.31.12.203 195.17 KiB 256 34.1% 232f7d98-9cc2-44e5-b18f-f5210

我正在尝试使用dsbulk loader将数据导入EC2上的Cassandra。我有三个节点,配置和通信如下:

UN  172.31.37.60   247.91 KiB  256          35.9%             7fdfe44d-ce42-45c5-bb6b-c3e8377b0eba  2a
UN  172.31.12.203  195.17 KiB  256          34.1%             232f7d98-9cc2-44e5-b18f-f52107a6fe2c  2c
UN  172.31.23.23   291.99 KiB  256          30.0%             b5389bf8-c0e5-42be-a296-a35b0a3e68fb  2b
我正在尝试运行以下命令将csv文件导入我的数据库:

dsbulk load -url cassReviews/reviewsCass.csv -k bnbreviews -t reviews_by_place -h '172.31.23.23' -header true
我一直收到以下错误:

连接到节点时出错(端点=/172.31.23.23:9042,主机ID=null,hashCode=b9b80b7)

无法联系到任何联系人,请确保您提供了有效的地址

我在集群外部运行import,但在同一个EC2实例中。在每个节点上,我将listen_地址和rpc_地址设置为其privateIP。端口9042是开放的-所有三个节点都在同一个区域内,我使用的是Ec2Snitch。每个节点都在ubuntu v18.04服务器上运行

在运行命令之前,我已确保每个节点都已启动,并且指向.csv文件的路径正确。似乎当我运行dsbulk命令时,我用-h标志指定的节点立即关闭。我的配置可能有什么问题,我遗漏了吗?DSBulk loader在本地工作得很好,但是有没有更理想的方法从EC2实例中的csv文件导入数据?谢谢大家!

编辑:我已经能够使用dsbulk loader以块的形式加载数据,但该过程偶尔会被以下错误中断:

[s0 |/xxx.xx.xx.xxx:9042]打开新频道时出错


我目前的解释是,指定IP上的节点已耗尽存储空间并崩溃,导致任何后续的dsbulk操作失败。到目前为止,解决方法是清除/var/log/cassandra中多余的日志文件并重新启动节点,但我认为更好的方法是增加每个实例上的SSD。

正如我在编辑中提到的,通过增加每个节点实例上的卷量,问题得到了解决。DSBulk出现故障并导致节点崩溃的原因是EC2实例的存储空间不足,这是由导入的数据、日志记录和快照造成的。最后,我在一个带有30GB SSD的t2.medium实例上运行了主节点实例(其中运行了DSBulk命令),解决了这个问题。

正如我在编辑中提到的,通过增加每个节点实例上的卷,解决了这个问题。DSBulk出现故障并导致节点崩溃的原因是EC2实例的存储空间不足,这是由导入的数据、日志记录和快照造成的。最后,我在一个带有30GB SSD的t2.medium实例上运行了主节点实例(其中运行了DSBulk命令),解决了这个问题。

您是从集群内部运行导入,还是从集群外部运行导入?如果在外部,它是否也在EC2中?如何配置节点的侦听地址/广播地址?9042端口开着吗?从运行DSBulk的机器上检查nc-vz IP 9042。嘿,Alex,感谢您的快速回复。我在集群外部运行import,但在同一个EC2实例中。在每个节点上,我将listen_地址和rpc_地址设置为其privateIP。端口9042是开放的-我正在运行三个节点,都在同一个区域内,使用Ec2Snitch。我还没有配置我的广播_地址,因为节点应该能够通过它们的私有IP相互联系,因为它们在同一个区域内,我相信。nc vz是否显示连接成功?是的,连接成功忘记先询问-DSBulk和Cassandra的哪个版本?您是否从集群内部运行导入,还是在外面?如果在外部,它是否也在EC2中?如何配置节点的侦听地址/广播地址?9042端口开着吗?从运行DSBulk的机器上检查nc-vz IP 9042。嘿,Alex,感谢您的快速回复。我在集群外部运行import,但在同一个EC2实例中。在每个节点上,我将listen_地址和rpc_地址设置为其privateIP。端口9042是开放的-我正在运行三个节点,都在同一个区域内,使用Ec2Snitch。我还没有配置我的广播_地址,因为节点应该能够通过它们的私有IP相互联系,因为它们在同一个区域内,我相信。nc vz是否显示连接成功?是的,连接成功忘记了先询问-DSBulk和Cassandra的哪个版本?