如何使用dsbulkloader将数据导入ec2上的cassandra

ybzsozfc  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(399)

我正在尝试使用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

我一直收到以下错误:
连接到节点时出错(endpoint=/172.31.23.23:9042,hostid=null,hashcode=b9b80b7)
无法联系到任何联系人,请确保您提供了有效的地址
我从集群外部运行import,但是在同一个ec2示例中。在每个节点上,我将listen\u地址和rpc\u地址设置为其privateip。端口9042是开放的-所有三个节点都在同一个区域内,我正在使用一个ec2snitch。每个节点都在ubuntuv18.04服务器上运行。
在运行命令之前,我已经确保每个节点都已启动,并且指向.csv文件的路径正确无误。似乎当我运行dsbulk命令时,我用-h标志指定的节点会立即关闭。我的配置有什么问题吗?dsbulk loader在本地工作得很好,但是有没有更理想的方法从ec2示例中的csv文件导入数据呢?谢谢您!
编辑:我已经能够使用dsbulk loader以块的形式加载数据,但是这个过程偶尔会被以下错误中断:
[s0 |/.xx.xx。:9042]打开新频道时出错
我目前的解释是,指定ip上的节点已耗尽存储空间并崩溃,导致任何后续dsbulk操作失败。到目前为止,解决方法是清除/var/log/cassandra中多余的日志文件并重新启动节点,但我认为更好的方法是增加每个示例上的ssd。

kkbh8khc

kkbh8khc1#

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

相关问题