你如何使用Cassandra工具sstableloader?

时间:2011-07-26 15:10:55

标签: cassandra

我正在尝试使用sstableloader将数据加载到现有的Cassandra环中,但无法弄清楚如何实际让它工作。我正在尝试在其上运行cassandra节点的计算机上运行它,但是当我运行它时,我得到一个错误,说端口7000已经在使用,这是正在运行的Cassandra节点用于八卦的端口。

这是否意味着我只能在与目标cassandra环在同一网络中的机器上使用sstableloader,但实际上并没有运行cassandra节点?

任何细节都会有用,谢谢。

6 个答案:

答案 0 :(得分:6)

使用sstableloader,阅读源代码,最后想出如何在托管正在运行的cassandra节点的同一台机器上运行sstableloader。让这个运行有两个关键点。首先,您需要为sstableloader创建cassandra安装文件夹的副本。这是因为sstableloader读取yaml文件以找出用于八卦的ipaddress,并且Cassandra正在使用现有的yaml文件。第二点是你需要在你的机器上创建一个新的loopback ipaddress(类似于127.0.0.2)。完成此操作后,更改复制的Cassandra安装文件夹中的yaml文件以收听此ipaddress。

我在这里写了一篇教程,详细介绍了如何执行此操作:http://geekswithblogs.net/johnsPerfBlog/archive/2011/07/26/how-to-use-cassandrs-sstableloader.aspx

答案 1 :(得分:1)

Austin Cassandra用户组刚刚对此进行了演示: http://www.slideshare.net/alex_araujo/etl-with-cassandra-streaming-bulk-loading/

答案 2 :(得分:0)

我已经使用cassandra-0.8.4中提供的sstableloader实用程序成功地将sstables加载到cassandra中。从我遇到的一些问题中我有以下提示

  1. 如果你在单机上运行它,你必须创建一个cassandra安装文件夹的副本,并且必须从这个文件夹运行sstable-loader。也改变监听地址,rpc地址也提供了ip地址在这个复制过的cassandra.yaml文件中运行cassandra作为种子。检查cassandra.yaml文件中的集群名称是否相同。

  2. 这些sstables必须位于名称为键空间名称的目录中

  3. 它需要一个包含类路径中的cassandra.yaml配置文件的目录。

  4. 请注意,应事先定义要加载的列族的架构

  5. 参考参考:Using Cassandra SStableloader

答案 3 :(得分:0)

参考参考:使用Cassandra SStableloader将数据批量加载到cassandra中 http://ramuprograms.blogspot.com/2014/07/bulk-loading-data-into-cassandra-using.html

答案 4 :(得分:0)

如果您希望在Java中执行此操作,请参阅以下实用程序类:

BulkWriterLoader

    List<String> argList = new ArrayList<>();
    argList.add("-v");
    argList.add("-d");
    argList.add(params.hosts);
    argList.add("-f");
    argList.add(params.cassYaml);
    argList.add(params.fullpath);
    LoaderOptions options = LoaderOptions.builder()
            .parseArgs(argList.stream().toArray(String[]::new))
            .build();
    try
    {
        BulkLoader.load(options);
    }
    catch (BulkLoadException e)
    {
        e.printStackTrace();
    }
    ...

代码还将使用CQLSSTableWriter类生成sstable文件。

答案 5 :(得分:0)

情况得到改善,并且使用sstableloader的整个过程更加容易,包括使用CQLSSTableWriter生成sstables的更简单方法。

有关所有详细信息: https://docs.datastax.com/en/archived/cassandra/3.0/cassandra/tools/toolsBulkloader.html